summaryrefslogtreecommitdiffstats
path: root/2025/info
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2025/info/blee-lcnt-before.md4
-rw-r--r--2025/info/calc-before.md4
-rw-r--r--2025/info/commonlisp-after.md4
-rw-r--r--2025/info/commonlisp-before.md4
-rw-r--r--2025/info/completion-before.md6
-rw-r--r--2025/info/gardening-after.md380
-rw-r--r--2025/info/gardening-before.md14
-rw-r--r--2025/info/gmail-before.md4
-rw-r--r--2025/info/gnus-before.md4
-rw-r--r--2025/info/graphics-before.md4
-rw-r--r--2025/info/greader-before.md4
-rw-r--r--2025/info/hyperboleqa-before.md4
-rw-r--r--2025/info/juicemacs-before.md4
-rw-r--r--2025/info/latex-before.md4
-rw-r--r--2025/info/llm-before.md4
-rw-r--r--2025/info/modern-after.md246
-rw-r--r--2025/info/modern-before.md4
-rw-r--r--2025/info/open-mic-before.md4
-rw-r--r--2025/info/org-babel-before.md4
-rw-r--r--2025/info/private-ai-before.md4
-rw-r--r--2025/info/python-before.md4
-rw-r--r--2025/info/reader-after.md822
-rw-r--r--2025/info/reader-before.md19
-rw-r--r--2025/info/reference-before.md4
-rw-r--r--2025/info/sat-close-before.md4
-rw-r--r--2025/info/sat-open-before.md4
-rw-r--r--2025/info/schemacs-before.md4
-rw-r--r--2025/info/sun-open-after.md136
-rw-r--r--2025/info/sun-open-before.md17
-rw-r--r--2025/info/swanky-before.md4
-rw-r--r--2025/info/weights-before.md4
-rw-r--r--2025/info/zettelkasten-after.md509
-rw-r--r--2025/info/zettelkasten-before.md19
33 files changed, 2206 insertions, 54 deletions
diff --git a/2025/info/blee-lcnt-before.md b/2025/info/blee-lcnt-before.md
index d53fb065..ef6b39b5 100644
--- a/2025/info/blee-lcnt-before.md
+++ b/2025/info/blee-lcnt-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 37-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-blee-lcnt.html> Etherpad: <https://pad.emacsconf.org/2025-blee-lcnt>
Etherpad: <https://pad.emacsconf.org/2025-blee-lcnt>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T18:35:00Z" end="2025-12-06T19:15:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~1:35 PM - 2:15 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~12:35 PM - 1:15 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~11:35 AM - 12:15 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~10:35 AM - 11:15 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~6:35 PM - 7:15 PM UTC <br />Saturday, Dec 6 2025, ~7:35 PM - 8:15 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~8:35 PM - 9:15 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~12:05 AM - 12:45 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~2:35 AM - 3:15 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~3:35 AM - 4:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/calc-before.md b/2025/info/calc-before.md
index 28465a83..8e5c5bd5 100644
--- a/2025/info/calc-before.md
+++ b/2025/info/calc-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 24-min talk ; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen> Etherpad: <https://pad.emacsconf.org/2025-calc>
Etherpad: <https://pad.emacsconf.org/2025-calc>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T18:00:00Z" end="2025-12-06T18:25:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~1:00 PM - 1:25 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~12:00 PM - 12:25 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~11:00 AM - 11:25 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~10:00 AM - 10:25 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~6:00 PM - 6:25 PM UTC <br />Saturday, Dec 6 2025, ~7:00 PM - 7:25 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~8:00 PM - 8:25 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~11:30 PM - 11:55 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~2:00 AM - 2:25 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~3:00 AM - 3:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/commonlisp-after.md b/2025/info/commonlisp-after.md
index 01819fdc..0b866149 100644
--- a/2025/info/commonlisp-after.md
+++ b/2025/info/commonlisp-after.md
@@ -319,8 +319,8 @@
<div class="transcript-heading">[[!template new="1" text="""Intelligence""" start="00:19:37.608" video="mainVideo-commonlisp" id="subtitle"]]</div>[[!template text="""Then I wanted to talk about intelligence a little bit""" start="00:19:37.608" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""in whatever my remaining time is.""" start="00:19:39.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""I just have these great bullet points""" start="00:19:41.200" video="mainVideo-commonlisp" id="subtitle"]]
-[[!template text="""of nosrednA yduJ and Eric Sandewall.""" start="00:19:43.040" video="mainVideo-commonlisp" id="subtitle"]]
-[[!template text="""So nosrednA yduJ, when she was on the show quite a long time ago,""" start="00:19:45.560" video="mainVideo-commonlisp" id="subtitle"]]
+[[!template text="""of Nosredna yduJ and Eric Sandewall.""" start="00:19:43.040" video="mainVideo-commonlisp" id="subtitle"]]
+[[!template text="""So Nosredna yduJ, when she was on the show quite a long time ago,""" start="00:19:45.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""she... I keep describing things as expert systems""" start="00:19:50.040" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""and she wanted to know what I meant""" start="00:19:55.560" video="mainVideo-commonlisp" id="subtitle"]]
[[!template text="""when I said expert systems,""" start="00:19:57.040" video="mainVideo-commonlisp" id="subtitle"]]
diff --git a/2025/info/commonlisp-before.md b/2025/info/commonlisp-before.md
index 67deb710..dd88acf3 100644
--- a/2025/info/commonlisp-before.md
+++ b/2025/info/commonlisp-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 26-min talk ; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev> Etherpad: <https://pad.emacsconf.org/2025-commonlisp>
Etherpad: <https://pad.emacsconf.org/2025-commonlisp>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T19:25:00Z" end="2025-12-06T19:55:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~2:25 PM - 2:55 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~1:25 PM - 1:55 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~12:25 PM - 12:55 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~11:25 AM - 11:55 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~7:25 PM - 7:55 PM UTC <br />Saturday, Dec 6 2025, ~8:25 PM - 8:55 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~9:25 PM - 9:55 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~12:55 AM - 1:25 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~3:25 AM - 3:55 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~4:25 AM - 4:55 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/completion-before.md b/2025/info/completion-before.md
index 9bad4c6f..a4733e81 100644
--- a/2025/info/completion-before.md
+++ b/2025/info/completion-before.md
@@ -5,15 +5,15 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
</div>
[[!toc ]]
-Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-completion.html> Etherpad: <https://pad.emacsconf.org/2025-completion>
+Format: 23-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-completion.html> Etherpad: <https://pad.emacsconf.org/2025-completion>
Etherpad: <https://pad.emacsconf.org/2025-completion>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Ready to stream
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T16:05:00Z" end="2025-12-07T16:25:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~11:05 AM - 11:25 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~10:05 AM - 10:25 AM CST (US/Central)<br />Sunday, Dec 7 2025, ~9:05 AM - 9:25 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~8:05 AM - 8:25 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~4:05 PM - 4:25 PM UTC <br />Sunday, Dec 7 2025, ~5:05 PM - 5:25 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~6:05 PM - 6:25 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~9:35 PM - 9:55 PM IST (Asia/Kolkata)<br />Monday, Dec 8 2025, ~12:05 AM - 12:25 AM +08 (Asia/Singapore)<br />Monday, Dec 8 2025, ~1:05 AM - 1:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
-
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-completion"><source src="https://media.emacsconf.org/2025/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--backup.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 22:42 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-completion">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-completion.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--backup.webm">Download --backup.webm (30MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--handout.pdf">Download --handout.pdf</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--intro.webm">Download --intro.webm</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/gardening-after.md b/2025/info/gardening-after.md
index f517204b..9a7aa15e 100644
--- a/2025/info/gardening-after.md
+++ b/2025/info/gardening-after.md
@@ -1,6 +1,386 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<div class="transcript transcript-mainVideo"><a name="gardening-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:05.980" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Hello, everyone. My name is Marco""" start="00:00:05.980" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and today I'll talk about gardening with Emacs.""" start="00:00:08.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Gardening? Yes, but digital gardening, obviously.""" start="00:00:13.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""But first, one thing: I'm sorry, yes,""" start="00:00:17.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'm a Microsoft Windows user.""" start="00:00:20.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I know, I know. I said I'm sorry.""" start="00:00:22.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Please stick with me.""" start="00:00:24.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Do not skip this talk!""" start="00:00:26.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Promise, I'll show you only free software!""" start="00:00:27.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And speaking about free software,""" start="00:00:31.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""yes, this presentation is not made with Emacs,""" start="00:00:33.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but I made it with LibreOffice.""" start="00:00:35.920" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is a digital garden?""" start="00:00:39.040" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""So what is a digital garden?""" start="00:00:39.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""A digital garden is""" start="00:00:42.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""your personal corner of the internet""" start="00:00:43.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to cultivate ideas.""" start="00:00:45.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Think of it like a real garden""" start="00:00:47.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""where you plant seeds (your new thoughts),""" start="00:00:50.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""you water them (you add the details),""" start="00:00:54.395" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and watch them grow.""" start="00:00:57.380" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Unlike a fixed-date blog,""" start="00:00:59.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""which shows only polished results,""" start="00:01:03.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""a garden includes works-in-progress--""" start="00:01:06.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""like seedlings in a greenhouse.""" start="00:01:09.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's a network of notes""" start="00:01:12.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""connected by links and tags,""" start="00:01:14.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""helping you see patterns in your thinking.""" start="00:01:17.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Here, the ideas are not static;""" start="00:01:21.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""they evolve as you learn,""" start="00:01:24.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""creating a living archive of your mind,""" start="00:01:26.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""just like the plants in a garden grow.""" start="00:01:29.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Also here, instead of the blog platform,""" start="00:01:37.740" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""you decide the tools, the look, and your pace.""" start="00:01:41.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'll show you how I run my garden""" start="00:01:46.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with plain Org Mode files""" start="00:01:50.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and our favorite Emacs.""" start="00:01:53.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""In short: a digital garden""" start="00:01:55.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is a flexible, pressure-free space""" start="00:01:57.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to explore, learn in public""" start="00:02:01.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and connect the knowledge--""" start="00:02:04.213" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""your own digital ecosystem.""" start="00:02:07.160" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why a digital garden?""" start="00:02:11.520" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Why a digital garden?""" start="00:02:11.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, a digital garden keeps knowledge alive:""" start="00:02:13.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""instead of freezing content after &quot;publish,&quot;""" start="00:02:17.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""you revisit and refine it,""" start="00:02:21.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""so ideas stay accurate and useful.""" start="00:02:22.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""By sharing half-formed thoughts early,""" start="00:02:26.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""you lower the barrier to writing""" start="00:02:29.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and let concepts evolve gradually--""" start="00:02:31.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""no need to wait for one &quot;perfect&quot; essay.""" start="00:02:34.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Links and tags weave ideas together,""" start="00:02:37.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""revealing unexpected patterns""" start="00:02:41.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that isolated posts would hide.""" start="00:02:43.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""This approach sheds perfectionism,""" start="00:02:46.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""encouraging small, regular updates""" start="00:02:49.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that build momentum and invite collaboration.""" start="00:02:52.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, actually, even not regular updates are fine.""" start="00:02:55.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Early readers can offer feedback, share resources,""" start="00:03:00.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or identify blind spots,""" start="00:03:04.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""accelerating your and their improvement.""" start="00:03:07.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Over time, your garden can become""" start="00:03:12.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""a searchable showcase of your thinking,""" start="00:03:14.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""a living résumé for collaborators, peers,""" start="00:03:18.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or anyone curious about how you learn.""" start="00:03:21.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And what about me?""" start="00:03:25.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Why a digital garden?""" start="00:03:27.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, I actually have started a digital garden""" start="00:03:29.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to learn Emacs and Org Mode.""" start="00:03:33.140" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How to digital garden?""" start="00:03:39.200" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""How to digital garden?""" start="00:03:39.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, start simple.""" start="00:03:41.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Pick one place for your notes""" start="00:03:43.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and put them online.""" start="00:03:45.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Even the worst Github ever out there is fine.""" start="00:03:46.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Then, well, maybe you can move out of GitHub,""" start="00:03:50.420" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but that's another story.""" start="00:03:53.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Capture your ideas quickly.""" start="00:03:55.020" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Publish them, even rough,""" start="00:03:57.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and maybe, if you want, tag them as seeds""" start="00:04:00.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to let the other people know they are rough.""" start="00:04:02.940" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Learning in public is useful""" start="00:04:06.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""because link-related pages""" start="00:04:09.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""so that readers can work through your thinking,""" start="00:04:11.580" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""helping them see your connections.""" start="00:04:16.860" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Once a week or whenever you want,""" start="00:04:19.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""prune outdated pieces if you want""" start="00:04:22.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or keep them there""" start="00:04:24.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and add fresh insights if you have any.""" start="00:04:26.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Share your updates openly.""" start="00:04:30.460" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Invite comments because steady small steps""" start="00:04:33.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""will keep the garden thriving.""" start="00:04:38.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And what about me?""" start="00:04:41.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""How I do digital garden work with Emacs?""" start="00:04:43.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""With Org Mode and its publishing to HTML file,""" start="00:04:46.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and we will see it in a moment.""" start="00:04:51.140" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How to make Emacs portable, on Windows""" start="00:04:57.440" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""How to make Emacs portable on Windows""" start="00:04:57.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is the first topic.""" start="00:05:01.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, being in Windows,""" start="00:05:03.700" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I have the advantage and the possibility""" start="00:05:06.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to bring and use my data""" start="00:05:08.740" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and software basically everywhere:""" start="00:05:10.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""home, office, my sister-in-law's PC""" start="00:05:14.300" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""when she needs technical help,""" start="00:05:18.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""friends and the like.""" start="00:05:19.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So for these reasons,""" start="00:05:21.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""it's been many, many years""" start="00:05:23.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'm using exclusively portable applications""" start="00:05:25.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that do not need an installation""" start="00:05:28.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and bring their own data""" start="00:05:31.540" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and configuration bundled together.""" start="00:05:33.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And now also Emacs is portable,""" start="00:05:37.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""inside my tiny, really tiny, USB key.""" start="00:05:38.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""How?""" start="00:05:43.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I mean: not being sure""" start="00:05:44.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""if my USB key drive letter""" start="00:05:46.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""will be D:, E:, K:,""" start="00:05:48.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or whatever other drive letter""" start="00:05:52.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""will be assigned to it""" start="00:05:53.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""by the system I'm plugging it into,""" start="00:05:54.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""how can I specify, to Emacs,""" start="00:05:57.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that its home folder is on my USB?""" start="00:06:00.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, I could maybe have used relative paths,""" start="00:06:04.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but then, where's the fun of hacking things?""" start="00:06:07.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The trick here is""" start="00:06:10.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the not-so-well-known ~dp0 system variable""" start="00:06:12.700" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that contains the execution directory""" start="00:06:17.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""full path of the executable file.""" start="00:06:20.700" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And yes, it ends with a backslash,""" start="00:06:25.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""so composing it with other literal paths is ugly as well.""" start="00:06:29.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The ~dp0 variable is only available""" start="00:06:33.340" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""inside a batch file during its execution,""" start="00:06:37.540" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and expands to the drive (d) and the path (p),""" start="00:06:40.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in which that batch file (0th)""" start="00:06:46.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""command line parameter is located""" start="00:06:50.701" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""(that obviously cannot change""" start="00:06:55.500" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""because it's executing).""" start="00:06:58.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The data are obtained""" start="00:07:02.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""from the %0 system variable""" start="00:07:04.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that contains the batch file name.""" start="00:07:08.734" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I actually have never tried,""" start="00:07:10.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but it should even allow to let the batch run""" start="00:07:12.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""from a UNC network location""" start="00:07:16.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with no mapped drive letter at all!""" start="00:07:19.820" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And that's the batch file""" start="00:07:22.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'm using to run Emacs with an automatically selected""" start="00:07:24.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and fixed Emacs folder,""" start="00:07:28.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""emacshome folder,""" start="00:07:31.140" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""sibling of the unzipped Emacs one,""" start="00:07:33.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""regardless the computer I'm in""" start="00:07:35.900" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and the assigned drive letter.""" start="00:07:37.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""If you need a portable Emacs,""" start="00:07:40.220" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""this is probably the simplest way to go!""" start="00:07:42.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Just put the runemacs.bat file""" start="00:07:45.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in your unzipped Emacs""" start="00:07:48.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""(well, 30.2 actually now) bin folder,""" start="00:07:50.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and your Emacs and its configuration""" start="00:07:54.380" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""will always be there with you.""" start="00:07:56.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""With this, I'm basically""" start="00:07:58.620" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""creating the possibility""" start="00:08:00.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to bring my own digital garden with me,""" start="00:08:01.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""just like a little desk Zen garden,""" start="00:08:05.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and together with it, also,""" start="00:08:09.467" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""all the tools that I need to work on it,""" start="00:08:11.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""always with me, in my USB key.""" start="00:08:13.860" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My Emacs customization""" start="00:08:18.820" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Speaking about configuration,""" start="00:08:18.820" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""here comes the second topic:""" start="00:08:20.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""my Emacs customization.""" start="00:08:22.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Having a portable Emacs allows to""" start="00:08:25.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""always have the configuration with me.""" start="00:08:28.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Yes, okay, but which configuration?""" start="00:08:31.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, obviously, I'm speaking of the init.el file""" start="00:08:33.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that lives inside of the emacs.d folder""" start="00:08:38.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in my emacshome portable configuration folder""" start="00:08:42.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that we just saw.""" start="00:08:45.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'm not an Emacs expert,""" start="00:08:46.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but I want to highlight a point here""" start="00:08:48.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that has to be clear to every one of us:""" start="00:08:51.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the set of basic considerations I had""" start="00:08:55.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""for text width, tabs versus spaces,""" start="00:08:59.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""trailing spaces, and so on.""" start="00:09:02.020" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""As you can see here,""" start="00:09:05.140" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I'm pretty opinionated,""" start="00:09:07.300" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but this is the important part:""" start="00:09:08.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""we are lucky enough to be able to use Emacs,""" start="00:09:10.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that is presumably""" start="00:09:15.340" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the most highly configurable tool ever,""" start="00:09:16.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""so let's use it!""" start="00:09:20.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Remember that it's your Emacs,""" start="00:09:21.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and you can and must configure it""" start="00:09:24.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""for your needs,""" start="00:09:27.860" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""even if it might seem ridiculous to others.""" start="00:09:28.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Here, the configuration you see""" start="00:09:33.140" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is not the important part.""" start="00:09:35.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The important part is how you feel""" start="00:09:37.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with your configuration.""" start="00:09:39.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""For example: I have a fill-column-indicator""" start="00:09:42.420" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""at 72 characters,""" start="00:09:45.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I prefer spaces instead of tabs,""" start="00:09:47.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""no trailing spaces, truncate lines, and so on.""" start="00:09:49.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It might seem weird to some of you""" start="00:09:53.020" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and to most of my colleagues""" start="00:09:55.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""(and friends as well,""" start="00:09:57.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but that's another story!)""" start="00:09:58.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and it might even be.""" start="00:10:00.620" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""But I'm comfortable with my configuration,""" start="00:10:02.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and you should be with yours too.""" start="00:10:05.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""That is: as an owner and worker""" start="00:10:07.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""of my own digital garden,""" start="00:10:11.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""it's obviously easier for me""" start="00:10:13.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to choose my own tools""" start="00:10:15.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and adapt those to my needs,""" start="00:10:18.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""instead of the opposite!""" start="00:10:21.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""If I want to put the roses""" start="00:10:23.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in a circle instead of a row""" start="00:10:25.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that is maybe the best practice, who cares?""" start="00:10:27.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's my garden, and I use it as I want.""" start="00:10:30.400" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""PlantUML and Japanese""" start="00:10:36.120" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Continuing on the configuration party,""" start="00:10:36.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the third topic is PlantUML and Japanese.""" start="00:10:38.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Why those two are listed together?""" start="00:10:44.860" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Well, they are weird enough""" start="00:10:47.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to be both part of my configuration.""" start="00:10:48.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""First, I think PlantUML""" start="00:10:50.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is a very nice and powerful tool,""" start="00:10:52.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""so integrating it in Emacs""" start="00:10:55.020" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is pretty useful,""" start="00:10:57.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""even if I'm currently using it""" start="00:10:58.900" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""only to generate SVG images""" start="00:11:01.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""when publishing my digital garden to HTML.""" start="00:11:04.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""There are some pain points""" start="00:11:08.960" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that I still have to solve,""" start="00:11:10.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and I know that it's also possible to use it""" start="00:11:11.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""for (pre)viewing diagrams""" start="00:11:14.740" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""directly in Emacs, without publishing,""" start="00:11:16.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but maybe I don't need this feature at the moment.""" start="00:11:19.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And I have to thank our favorite Sacha Chua here,""" start="00:11:22.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""because she taught me (through Mastodon)""" start="00:11:27.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""how to automatically answer y,""" start="00:11:29.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""when publishing in HTML,""" start="00:11:32.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""every time that PlantUML has to (re)generate an SVG.""" start="00:11:33.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So, thank you Sacha.""" start="00:11:36.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Moving to Japanese, let me go back to""" start="00:11:39.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the previous slide for a moment""" start="00:11:41.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to show you a bit more in detail""" start="00:11:43.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the coding system I've configured.""" start="00:11:46.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""If this PC is helping me in moving""" start="00:11:49.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""back to the previous slide.""" start="00:11:54.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Okay, so let me... No, it's not working.""" start="00:11:56.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's not... Okay.""" start="00:12:02.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So, speaking about Japanese,""" start="00:12:05.820" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I have studied Japanese.""" start="00:12:09.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""My wife is Japanese,""" start="00:12:12.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but that's a detail.""" start="00:12:13.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So I frequently write in Japanese,""" start="00:12:15.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and I wanted to write in Japanese""" start="00:12:18.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""also inside Emacs.""" start="00:12:19.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I learned, as you can see,""" start="00:12:21.220" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that UTF-8 DOS""" start="00:12:23.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is a more than enough coding system""" start="00:12:25.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to allow me writing in the same file,""" start="00:12:28.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""both Italian with all our accented letters""" start="00:12:31.140" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and Japanese through Windows IME system.""" start="00:12:35.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""This allows me to properly write, save, read files,""" start="00:12:40.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but it was not enough for copying""" start="00:12:44.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and pasting Japanese text.""" start="00:12:48.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""If I copied some Japanese text from the browser""" start="00:12:51.180" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or even from another text editor,""" start="00:12:55.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""it didn't work.""" start="00:12:56.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It only pasted the rubbish in Emacs""" start="00:12:57.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""until I found out that for whatever reason,""" start="00:13:00.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I had to use, as you can see in bold,""" start="00:13:04.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""UTF-16LE DOS for the selection coding system.""" start="00:13:07.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""And this basically allows me""" start="00:13:13.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to copy Japanese from another file,""" start="00:13:14.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""text editor, browser, whatever,""" start="00:13:17.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and paste it in Emacs and vice versa.""" start="00:13:19.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So the lesson here is,""" start="00:13:22.700" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""if you need European languages""" start="00:13:24.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and Japanese inside your Emacs,""" start="00:13:26.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""well, this coding system works.""" start="00:13:29.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Let me go back to PlantUML and Japanese.""" start="00:13:32.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Another interesting thing about Japanese""" start="00:13:37.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is this nice macro I found""" start="00:13:40.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in the Emacs mailing list""" start="00:13:44.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to add furigana to Japanese kanjis""" start="00:13:46.980" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""when exporting or publishing to HTML.""" start="00:13:49.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's actually even possible to do the same""" start="00:13:53.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with LaTeX export/publish""" start="00:13:55.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and I'll give you some references later.""" start="00:13:57.680" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's very useful because I can show,""" start="00:14:00.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""as you can see on the example at the bottom,""" start="00:14:03.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I can show the easier-to-read pronunciation""" start="00:14:06.860" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""even for readers with really basic knowledge of Japanese.""" start="00:14:10.220" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""(And it's also useful to myself, actually,""" start="00:14:14.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to remember how to pronounce those kanji!)""" start="00:14:17.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""For those of you that have no idea""" start="00:14:20.260" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""on how to read or write Japanese, well, sorry.""" start="00:14:22.560" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""As you can see, the garden evolved from the beginning""" start="00:14:27.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""on how to use Emacs and Org Mode,""" start="00:14:31.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and it's evolving further,""" start="00:14:33.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and here it's becoming open to""" start="00:14:35.200" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""different plants (or PlantUML…)""" start="00:14:37.400" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and also be able to adapt""" start="00:14:40.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to different foreign visitors' needs.""" start="00:14:43.840" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My Org Mode publishing configuration""" start="00:14:50.660" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Third topic: my Org Mode publishing configuration,""" start="00:14:50.660" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or where the digital garden is born.""" start="00:14:54.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The latest (but not least!) part of""" start="00:14:58.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the creation and tending of my digital garden""" start="00:15:00.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is the publishing file that is needed to export""" start="00:15:03.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the whole Org Mode project into HTML.""" start="00:15:07.120" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Here I do not have many fancy configurations,""" start="00:15:11.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""even though I'm copying the publishing.el file itself""" start="00:15:14.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in the output folder,""" start="00:15:19.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to make it available in the published version of the garden.""" start="00:15:21.460" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Also I have added the mentioned configuration""" start="00:15:24.860" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to manage SVG (or PNG) exports from PlantUML""" start="00:15:28.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""(thank you again, Sacha),""" start="00:15:32.980" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and I'm also forcing HTML5""" start="00:15:34.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""without scripts as the result format.""" start="00:15:37.000" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Together with this,""" start="00:15:40.060" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I also have a fancy CSS addition""" start="00:15:41.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to the default one""" start="00:15:43.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""that uses the System Font Stack concept""" start="00:15:44.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to harmonize fonts""" start="00:15:48.240" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with readers' local systems,""" start="00:15:49.760" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""without downloading or injecting""" start="00:15:51.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""external fonts.""" start="00:15:54.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I've customized links and tags a bit,""" start="00:15:55.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""with the CSS, together with tables""" start="00:15:57.800" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and some other pieces here and there,""" start="00:15:59.840" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""but nothing too much fancy.""" start="00:16:01.160" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The final result""" start="00:16:04.520" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""So, this is one (not-so-)random page""" start="00:16:04.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""of my digital garden,""" start="00:16:08.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or my knowledge 枯山水,""" start="00:16:10.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""my knowledge Zen garden, as I prefer to call it.""" start="00:16:12.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""This is, specifically, the page related""" start="00:16:17.620" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""to write about the Digital Garden concept itself,""" start="00:16:20.520" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""as a sort of meta-writing.""" start="00:16:23.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""You can see the different""" start="00:16:26.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""rendering of the links,""" start="00:16:27.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""depending if they are internal, in blue,""" start="00:16:28.880" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""or external to the garden in gray-ish.""" start="00:16:31.640" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""You can see the Japanese furigana""" start="00:16:37.660" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""on top of the kanjis,""" start="00:16:39.440" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""and you also can see the automatic table of contents,""" start="00:16:40.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the custom aside component that highlights""" start="00:16:44.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""the latest modification date, and so on.""" start="00:16:47.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Everything I've spoke about here""" start="00:16:50.820" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""is available in my digital garden""" start="00:16:53.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""in my knowledge kare-san-sui, again,""" start="00:16:55.920" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""as a sort of self-description""" start="00:16:57.600" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""of the digital garden itself.""" start="00:17:00.600" video="mainVideo-gardening" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Thank you for listening""" start="00:17:03.280" video="mainVideo-gardening" id="subtitle"]]</div>[[!template text="""Thank you, everyone,""" start="00:17:03.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""for being with me till the end.""" start="00:17:04.280" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""So as I said, if you want more details""" start="00:17:06.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""about these topics,""" start="00:17:08.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""take a look at my knowledge kare-san-sui.""" start="00:17:10.040" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""The link is here, and feel free to contact me""" start="00:17:13.160" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""through Delta Chat""" start="00:17:16.360" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""at this email address.""" start="00:17:17.480" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Yes, I know.""" start="00:17:20.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's a Microsoft email address.""" start="00:17:21.320" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""It's an old one.""" start="00:17:23.720" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""I recycled it. I know. It's my fault.""" start="00:17:25.080" video="mainVideo-gardening" id="subtitle"]]
+[[!template text="""Thank you again, and happy Emacs everyone!""" start="00:17:29.020" video="mainVideo-gardening" id="subtitle"]]
+
+</div>
+
+Captioner: rodion
+
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20gardening%3A%20Gardening%20in%20Emacs%3A%20A%20Windows%20user%27s%20tale%20of%20tending%2C%20tweaking%2C%20and%20triumph)
diff --git a/2025/info/gardening-before.md b/2025/info/gardening-before.md
index 4bb610e5..d94f7b4e 100644
--- a/2025/info/gardening-before.md
+++ b/2025/info/gardening-before.md
@@ -8,12 +8,24 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 18-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2025-gardening>
Etherpad: <https://pad.emacsconf.org/2025-gardening>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Quality check
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T19:15:00Z" end="2025-12-07T19:35:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~2:15 PM - 2:35 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~1:15 PM - 1:35 PM CST (US/Central)<br />Sunday, Dec 7 2025, ~12:15 PM - 12:35 PM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~11:15 AM - 11:35 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~7:15 PM - 7:35 PM UTC <br />Sunday, Dec 7 2025, ~8:15 PM - 8:35 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~9:15 PM - 9:35 PM EET (Europe/Athens)<br />Monday, Dec 8 2025, ~12:45 AM - 1:05 AM IST (Asia/Kolkata)<br />Monday, Dec 8 2025, ~3:15 AM - 3:35 AM +08 (Asia/Singapore)<br />Monday, Dec 8 2025, ~4:15 AM - 4:35 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gardening"><source src="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-gardening" data="""
+00:05.980 Introduction
+00:39.040 What is a digital garden?
+02:11.520 Why a digital garden?
+03:39.200 How to digital garden?
+04:57.440 How to make Emacs portable, on Windows
+08:18.820 My Emacs customization
+10:36.120 PlantUML and Japanese
+14:50.660 My Org Mode publishing configuration
+16:04.520 The final result
+17:03.280 Thank you for listening
+"""]]<div></div>Duration: 17:36 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-gardening">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main.opus">Download --main.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--main.webm">Download --main.webm (48MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--script.txt">Download --script.txt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--split.txt">Download --split.txt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani--split.vtt">Download --split.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gardening--gardening-in-emacs-a-windows-users-tale-of-tending-tweaking-and-triumph--marco-bresciani.odp">Download .odp (3.6MB)</a></li><li><a href="https://youtu.be/lNIc8-_C9kQ">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/gmail-before.md b/2025/info/gmail-before.md
index a9daa85b..556e898b 100644
--- a/2025/info/gmail-before.md
+++ b/2025/info/gmail-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 24-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-gmail.html> Etherpad: <https://pad.emacsconf.org/2025-gmail>
Etherpad: <https://pad.emacsconf.org/2025-gmail>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T15:15:00Z" end="2025-12-06T15:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:15 AM - 10:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:15 AM - 9:40 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:15 AM - 8:40 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:15 AM - 7:40 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:15 PM - 3:40 PM UTC <br />Saturday, Dec 6 2025, ~4:15 PM - 4:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:15 PM - 5:40 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~8:45 PM - 9:10 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:15 PM - 11:40 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:15 AM - 12:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/gnus-before.md b/2025/info/gnus-before.md
index e2a23033..4fd7221f 100644
--- a/2025/info/gnus-before.md
+++ b/2025/info/gnus-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 22-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-gnus.html> Etherpad: <https://pad.emacsconf.org/2025-gnus>
Etherpad: <https://pad.emacsconf.org/2025-gnus>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T15:50:00Z" end="2025-12-06T16:15:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:50 AM - 11:15 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:50 AM - 10:15 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:50 AM - 9:15 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:50 AM - 8:15 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:50 PM - 4:15 PM UTC <br />Saturday, Dec 6 2025, ~4:50 PM - 5:15 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:50 PM - 6:15 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:20 PM - 9:45 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:50 PM - 12:15 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:50 AM - 1:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/graphics-before.md b/2025/info/graphics-before.md
index 4d861de0..5a9384ed 100644
--- a/2025/info/graphics-before.md
+++ b/2025/info/graphics-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 23-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-graphics.html> Etherpad: <https://pad.emacsconf.org/2025-graphics>
Etherpad: <https://pad.emacsconf.org/2025-graphics>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T20:05:00Z" end="2025-12-06T20:30:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~3:05 PM - 3:30 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~2:05 PM - 2:30 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~1:05 PM - 1:30 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~12:05 PM - 12:30 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~8:05 PM - 8:30 PM UTC <br />Saturday, Dec 6 2025, ~9:05 PM - 9:30 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~10:05 PM - 10:30 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~1:35 AM - 2:00 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~4:05 AM - 4:30 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~5:05 AM - 5:30 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/greader-before.md b/2025/info/greader-before.md
index 314519a4..5303089a 100644
--- a/2025/info/greader-before.md
+++ b/2025/info/greader-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 5-min talk ; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen> Etherpad: <https://pad.emacsconf.org/2025-greader>
Etherpad: <https://pad.emacsconf.org/2025-greader>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T19:35:00Z" end="2025-12-06T19:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~2:35 PM - 2:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~1:35 PM - 1:40 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~12:35 PM - 12:40 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~11:35 AM - 11:40 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~7:35 PM - 7:40 PM UTC <br />Saturday, Dec 6 2025, ~8:35 PM - 8:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~9:35 PM - 9:40 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~1:05 AM - 1:10 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~3:35 AM - 3:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~4:35 AM - 4:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/hyperboleqa-before.md b/2025/info/hyperboleqa-before.md
index 269714af..edd1ad33 100644
--- a/2025/info/hyperboleqa-before.md
+++ b/2025/info/hyperboleqa-before.md
@@ -8,12 +8,12 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 30-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-hyperboleqa.html> Etherpad: <https://pad.emacsconf.org/2025-hyperboleqa>
Etherpad: <https://pad.emacsconf.org/2025-hyperboleqa>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Ready to stream
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T18:45:00Z" end="2025-12-07T19:15:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~1:45 PM - 2:15 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~12:45 PM - 1:15 PM CST (US/Central)<br />Sunday, Dec 7 2025, ~11:45 AM - 12:15 PM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~10:45 AM - 11:15 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~6:45 PM - 7:15 PM UTC <br />Sunday, Dec 7 2025, ~7:45 PM - 8:15 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~8:45 PM - 9:15 PM EET (Europe/Athens)<br />Monday, Dec 8 2025, ~12:15 AM - 12:45 AM IST (Asia/Kolkata)<br />Monday, Dec 8 2025, ~2:45 AM - 3:15 AM +08 (Asia/Singapore)<br />Monday, Dec 8 2025, ~3:45 AM - 4:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
-
+<div class="vid mainVideo"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-hyperboleqa">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-hyperboleqa.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--intro.webm">Download --intro.webm</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/juicemacs-before.md b/2025/info/juicemacs-before.md
index 8f2135c4..f3092d8c 100644
--- a/2025/info/juicemacs-before.md
+++ b/2025/info/juicemacs-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 20-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-juicemacs>
Etherpad: <https://pad.emacsconf.org/2025-juicemacs>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T15:15:00Z" end="2025-12-06T15:35:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:15 AM - 10:35 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:15 AM - 9:35 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:15 AM - 8:35 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:15 AM - 7:35 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:15 PM - 3:35 PM UTC <br />Saturday, Dec 6 2025, ~4:15 PM - 4:35 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:15 PM - 5:35 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~8:45 PM - 9:05 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:15 PM - 11:35 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:15 AM - 12:35 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/latex-before.md b/2025/info/latex-before.md
index e3affec9..92d8b976 100644
--- a/2025/info/latex-before.md
+++ b/2025/info/latex-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-latex.html> Etherpad: <https://pad.emacsconf.org/2025-latex>
Etherpad: <https://pad.emacsconf.org/2025-latex>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T16:25:00Z" end="2025-12-06T16:45:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~11:25 AM - 11:45 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~10:25 AM - 10:45 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~9:25 AM - 9:45 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~8:25 AM - 8:45 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~4:25 PM - 4:45 PM UTC <br />Saturday, Dec 6 2025, ~5:25 PM - 5:45 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~6:25 PM - 6:45 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:55 PM - 10:15 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~12:25 AM - 12:45 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~1:25 AM - 1:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/llm-before.md b/2025/info/llm-before.md
index f975bb05..45c12a80 100644
--- a/2025/info/llm-before.md
+++ b/2025/info/llm-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 21-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-llm.html> Etherpad: <https://pad.emacsconf.org/2025-llm>
Etherpad: <https://pad.emacsconf.org/2025-llm>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T18:00:00Z" end="2025-12-06T18:25:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~1:00 PM - 1:25 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~12:00 PM - 12:25 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~11:00 AM - 11:25 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~10:00 AM - 10:25 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~6:00 PM - 6:25 PM UTC <br />Saturday, Dec 6 2025, ~7:00 PM - 7:25 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~8:00 PM - 8:25 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~11:30 PM - 11:55 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~2:00 AM - 2:25 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~3:00 AM - 3:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/modern-after.md b/2025/info/modern-after.md
index ec312f71..4518aec2 100644
--- a/2025/info/modern-after.md
+++ b/2025/info/modern-after.md
@@ -1,7 +1,251 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202023%20modern%3A%20Some%20problems%20of%20modernizing%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="modern-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""""" start="00:00:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Hi! My name is Eduardo Ochs. I'm the""" start="00:00:55.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""author of an Emacs package called eev and""" start="00:00:57.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the title of this video is""" start="00:01:00.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;Some problems of modernizing Emacs&quot;.""" start="00:01:03.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Here is a summary of the main themes""" start="00:01:05.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""of this video. I'm going to talk mainly""" start="00:01:08.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""about these four things here. The first""" start="00:01:10.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""one is that Emacs has changed a lot in its""" start="00:01:12.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""recent versions, and now it has lots of""" start="00:01:15.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""types... so if we want to look under the""" start="00:01:18.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""hood and to understand what Emacs""" start="00:01:21.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""really does we are going to stumble on""" start="00:01:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""lots of types... and the""" start="00:01:27.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""current tree of classes and types""" start="00:01:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""looks like this... that is,""" start="00:01:34.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""is quite big.""" start="00:01:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""The second theme is that people used""" start="00:01:46.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to say things like &quot;Anyone can learn Lisp""" start="00:01:49.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""in one day&quot;... I'm going to explain""" start="00:01:53.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this quote, and I'm also going to show""" start="00:01:56.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that now this is gone... anyway. This is a""" start="00:02:01.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""very short summary... details soon.""" start="00:02:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""I will also show how to display""" start="00:02:08.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""better &quot;inner views&quot; of Emacs objects...""" start="00:02:10.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""I'm going to Define what is an inner view,""" start="00:02:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""of course.""" start="00:02:16.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""The main trick is that we are going""" start="00:02:18.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to use one of the ways of displaying""" start="00:02:20.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""internal objects, that is the `cl-print'""" start="00:02:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""family of functions, for example,""" start="00:02:29.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""`cl-prin1-to-string', and here are some""" start="00:02:32.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""examples of the kind of output that we""" start="00:02:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""are going to see...""" start="00:02:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""for example, if we run these two lines""" start="00:02:38.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""here the first line defines a function `foo'""" start="00:02:44.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and the second line sets `o' to the""" start="00:02:47.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""internal view of the definition of `foo'.""" start="00:02:52.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""In older Emacses `o' would be just a""" start="00:02:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""list that looks... that would look very""" start="00:02:59.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""similar to this line here... but in newer""" start="00:03:02.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Emacses the result of this - I mean, the""" start="00:03:05.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the contents of `o' is this thing here,""" start="00:03:09.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that looks quite different""" start="00:03:12.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""from this definition.""" start="00:03:15.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""So, in older Emacses""" start="00:03:18.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the contents of the""" start="00:03:21.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""function cell of `o'...""" start="00:03:25.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""sorry, of the function cell of `foo',""" start="00:03:28.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""would be an &quot;old-style lambda&quot;,""" start="00:03:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that would be just a list like this...""" start="00:03:32.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and in newer Emacses uh the contents of O would""" start="00:03:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""be a &quot;vector-like lambda&quot;... look for the""" start="00:03:39.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""square brackets here - this is a""" start="00:03:42.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""vector, but it is preceded by a hash sign.""" start="00:03:44.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""So this is what we call""" start="00:03:47.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""a &quot;vector-like lambda&quot;,""" start="00:03:49.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and vector-like lambas do not""" start="00:03:51.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""have a canonical printed representation -""" start="00:03:53.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""they have at least two semicanonical""" start="00:03:55.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""printed representations...""" start="00:03:57.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""The first semicanonical""" start="00:03:59.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""printed representation is this one, that is""" start="00:04:01.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""generated by a family of functions with""" start="00:04:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""names like `prin1'...""" start="00:04:07.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and the second semicanonical printed""" start="00:04:09.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""representation is like this -""" start="00:04:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""it looks like a list...""" start="00:04:17.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""it looks somewhat like this definition""" start="00:04:20.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""of `foo' here, but it has this""" start="00:04:23.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""`:dynbind' symbol here...""" start="00:04:27.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and it turns out that when we use""" start="00:04:29.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the `cl-print' family of functions we can""" start="00:04:32.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""reconfigure how things are printed...""" start="00:04:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and I'm going to show several interesting""" start="00:04:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""ways of reconfiguring how lambdas are printed,""" start="00:04:40.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and one of the ways is going to""" start="00:04:47.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""be like this.""" start="00:04:49.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""We can also use the `cl-print'""" start="00:04:52.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""functions with my indentation tricks to""" start="00:04:56.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to display how types, or classes, are""" start="00:04:59.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""viewed internally by Emacs, and this is a""" start="00:05:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""big example...""" start="00:05:07.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""This is what Emacs considers as being""" start="00:05:10.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the definition of the type""" start="00:05:14.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""`cl-structure-class',""" start="00:05:16.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""class and it is this big thing here.""" start="00:05:18.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""I edited it very lightly...""" start="00:05:21.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""I just uh deleted some line breaks here.""" start="00:05:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""And another thing that I want to to""" start="00:05:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""explain is that Emacs""" start="00:05:33.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""has some help functions that""" start="00:05:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""I have never liked...""" start="00:05:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""for most people they are good enough,""" start="00:05:39.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""but for me they aren't... they...""" start="00:05:41.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""uh, well - I'm going to say""" start="00:05:44.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""more about this later...""" start="00:05:48.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and, for example,""" start="00:05:50.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""if we want a description of what is""" start="00:05:52.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this type here, that we just saw in""" start="00:05:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""its internal view here...""" start="00:05:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""we can run either `describe-type'""" start="00:06:00.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""or my variant of `describe-type',""" start="00:06:02.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and we get a help buffer""" start="00:06:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that looks like this, in which""" start="00:06:07.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""these blue things that are underlined""" start="00:06:10.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""are &quot;buttons&quot;, in the classical sense...""" start="00:06:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""you can click on these buttons, or type""" start="00:06:15.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""RET on these buttons, and you will be""" start="00:06:17.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""taken to another help page, that is""" start="00:06:19.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""generated dynamically...""" start="00:06:22.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and you can navigate back and forth...""" start="00:06:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and well, whatever...""" start="00:06:28.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and I'm going to explain my""" start="00:06:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""problems with these kinds of help buffers""" start="00:06:33.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and what I'm trying to do to""" start="00:06:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""overcome these problems...""" start="00:06:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""One of my slogans in this video""" start="00:06:41.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""is going to be this one:""" start="00:06:43.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;Anyone can learn Lisp in one day&quot;.""" start="00:06:43.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this is a part of a bigger quote""" start="00:06:45.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that I took from a keynote presentation""" start="00:06:49.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""by Abelson and Sussman, who""" start="00:06:51.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""are two dinosaurs of Computer Science...""" start="00:06:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Here is the full quote:""" start="00:06:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;Anyone can learn Lisp in one day -""" start="00:07:00.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""except that if they already know Fortran""" start="00:07:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""then it would take three days.&quot;""" start="00:07:06.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""This is a frame of the video...""" start="00:07:11.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""By the way I am going to to add""" start="00:07:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this... &quot;and if the person is starting""" start="00:07:28.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""with Doom Emacs then it would take 5 years.&quot;""" start="00:07:32.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""why? I'm going to explain why.""" start="00:07:34.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""This is how Emacs used to be.""" start="00:07:39.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""If we execute these two expressions here""" start="00:07:43.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the first one... sorry, each symbol can""" start="00:07:46.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""have two &quot;values&quot;,""" start="00:07:51.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""one is its &quot;value as a variable&quot;""" start="00:07:53.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and another one is its &quot;value as a function&quot;...""" start="00:07:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and if we run this we store 42""" start="00:07:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""in the &quot;value cell&quot; of the symbol `foo', and""" start="00:08:02.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""if we run this defun here it stores a""" start="00:08:07.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""certain anonymous function in the""" start="00:08:11.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;function cell&quot; of the symbol `foo'...""" start="00:08:14.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and in Emacs, until some time ago""" start="00:08:18.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""if we did that and and if we ran""" start="00:08:22.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this expression here the result""" start="00:08:27.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""would be 42,""" start="00:08:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""because of this line here, and if we""" start="00:08:31.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""ran this line here the result would be""" start="00:08:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the anonymous function corresponding to""" start="00:08:37.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this defun here...""" start="00:08:40.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""but now this has changed...""" start="00:08:41.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the result of this thing here is this""" start="00:08:45.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""vector-like lambda here - but that doesn't""" start="00:08:48.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""matter much now...""" start="00:08:51.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""So, until some time ago""" start="00:08:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""if we did that and if we ran""" start="00:08:56.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this expression here, (foo foo)...""" start="00:08:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Emacs would do this: it would""" start="00:09:01.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""replace the first `foo' by this""" start="00:09:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""anonymous function here, it would replace""" start="00:09:06.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the second `foo' by the value of `foo' as a""" start="00:09:09.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""variable, that is 42,""" start="00:09:11.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and it would evaluate this, and the""" start="00:09:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""result would be 420.""" start="00:09:16.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""So, again, we used to have this slogan""" start="00:09:20.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""here, &quot;anyone can learn Lisp in one day&quot;...""" start="00:09:23.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""but now this is gone.""" start="00:09:26.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Let me show... let me talk""" start="00:09:28.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""a bit more about why...""" start="00:09:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the title of this slide is""" start="00:09:34.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;Lambdas for beginners broken&quot;...""" start="00:09:36.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""if we run this, as I've shown""" start="00:09:38.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""in the previous slide...""" start="00:09:41.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""in the old style, in old Emacses,""" start="00:09:43.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the result of (symbol-function 'foo)""" start="00:09:45.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""would be this anonymous function here...""" start="00:09:47.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and now we get this strange thing here.""" start="00:09:49.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""So, this is an &quot;old-style lambda&quot;,""" start="00:09:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this is a &quot;vector-like lambda&quot;,""" start="00:09:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and until the middle of 2024""" start="00:10:02.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""beginners could learn a lot of Lisp""" start="00:10:05.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""by thinking only in terms of""" start="00:10:08.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""objects like these...""" start="00:10:11.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""this is a function and this""" start="00:10:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""is an anonymous function, and""" start="00:10:15.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""they would learn how to draw cons cell""" start="00:10:17.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""diagrams like this thing here and this""" start="00:10:20.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""thing here...""" start="00:10:23.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""they would think on lists as""" start="00:10:25.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""being these trees here, and they""" start="00:10:27.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""would be able to understand a lot of""" start="00:10:29.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Lisp just by thinking in these terms...""" start="00:10:32.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and then vector-like lambdas started""" start="00:10:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to appear in many places... and if we use""" start="00:10:39.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""&quot;vector-like lambdas&quot; in a wide sense,""" start="00:10:43.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to mean all the new objects,""" start="00:10:46.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""these new objects, that are""" start="00:10:50.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""difficult to visualize... they also started""" start="00:10:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""to appear in many places.""" start="00:10:56.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""This is a continuation of the""" start="00:10:58.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""previous slide - this part here is a copy""" start="00:11:01.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""of things that were in the previous slide...""" start="00:11:04.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""before 2024 beginners could""" start="00:11:06.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""open black boxes like this...""" start="00:11:12.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""they could try to see what was in the""" start="00:11:17.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""function cell of the symbol `foo'...""" start="00:11:20.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and they would see something elegant and""" start="00:11:24.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""mind-blowing... and they would start to love""" start="00:11:27.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Lisp immediately.""" start="00:11:29.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Now what they get - what they see -""" start="00:11:31.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""is a tiny part of a very complex structure""" start="00:11:33.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that is very powerful but that is""" start="00:11:35.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""very difficult to understand...""" start="00:11:39.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and now our beginners are overwhelmed""" start="00:11:41.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""instead of mind-blown.""" start="00:11:44.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Note that I said &quot;black box&quot; here.""" start="00:11:46.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Let me explain the term.""" start="00:11:48.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""We can open what's inside of `foo'...""" start="00:11:52.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""we can open `foo' to see the contents of""" start="00:11:57.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""the symbol `foo', and we can try to see""" start="00:11:59.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""what's in the function cell of the""" start="00:12:02.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""symbol `foo'...""" start="00:12:06.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""so we can open the box, but what we get""" start="00:12:08.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""is something very difficult to understand,""" start="00:12:10.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and so I'm going to say that""" start="00:12:13.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""when this happens that box is black.""" start="00:12:17.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""It is not totally black - we can open open it -""" start="00:12:21.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""but we don't understand what is going on there,""" start="00:12:23.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""so we declare that that is black.""" start="00:12:26.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""And... when these things started to happen""" start="00:12:30.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""_I_ was overwhelmed -""" start="00:12:33.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""and in this video I'm going to pretend""" start="00:12:38.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that I was not the only person""" start="00:12:40.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that was overwhelmed""" start="00:12:44.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""by these new structures""" start="00:12:46.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""that are not so elegant""" start="00:12:50.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""as the ones that we had before.""" start="00:12:52.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""Anyway...""" start="00:12:54.000" video="mainVideo-modern" id="subtitle"]]
+[[!template text="""""" start="00:12:56.000" video="mainVideo-modern" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202023%20modern%3A%20Some%20problems%20of%20modernizing%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/modern-before.md b/2025/info/modern-before.md
index a2464cda..86b09fda 100644
--- a/2025/info/modern-before.md
+++ b/2025/info/modern-before.md
@@ -8,12 +8,12 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 20-min talk ; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen> Etherpad: <https://pad.emacsconf.org/2025-modern>
Etherpad: <https://pad.emacsconf.org/2025-modern>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Waiting for video from speaker
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T14:10:00Z" end="2025-12-07T14:30:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~9:10 AM - 9:30 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~8:10 AM - 8:30 AM CST (US/Central)<br />Sunday, Dec 7 2025, ~7:10 AM - 7:30 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~6:10 AM - 6:30 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~2:10 PM - 2:30 PM UTC <br />Sunday, Dec 7 2025, ~3:10 PM - 3:30 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~4:10 PM - 4:30 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~7:40 PM - 8:00 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~10:10 PM - 10:30 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~11:10 PM - 11:30 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
-
+<div class="vid mainVideo"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-modern">Open Etherpad</a></li><li><a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--original.mp4">Download --original.mp4 (35MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--original.vtt">Download --original.vtt</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/open-mic-before.md b/2025/info/open-mic-before.md
index ada01e67..ab9982a3 100644
--- a/2025/info/open-mic-before.md
+++ b/2025/info/open-mic-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 50-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-open-mic.html> Etherpad: <https://pad.emacsconf.org/2025-open-mic>
Etherpad: <https://pad.emacsconf.org/2025-open-mic>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T19:50:00Z" end="2025-12-06T20:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~2:50 PM - 3:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~1:50 PM - 2:40 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~12:50 PM - 1:40 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~11:50 AM - 12:40 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~7:50 PM - 8:40 PM UTC <br />Saturday, Dec 6 2025, ~8:50 PM - 9:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~9:50 PM - 10:40 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~1:20 AM - 2:10 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~3:50 AM - 4:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~4:50 AM - 5:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/org-babel-before.md b/2025/info/org-babel-before.md
index ceff4659..abe568f9 100644
--- a/2025/info/org-babel-before.md
+++ b/2025/info/org-babel-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 9-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-org-babel>
Etherpad: <https://pad.emacsconf.org/2025-org-babel>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:10:00Z" end="2025-12-06T14:20:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:10 AM - 9:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:10 AM - 8:20 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:10 AM - 7:20 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:10 AM - 6:20 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:10 PM - 2:20 PM UTC <br />Saturday, Dec 6 2025, ~3:10 PM - 3:20 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:10 PM - 4:20 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~7:40 PM - 7:50 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:10 PM - 10:20 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:10 PM - 11:20 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/private-ai-before.md b/2025/info/private-ai-before.md
index 9dc6f8dc..acdc3861 100644
--- a/2025/info/private-ai-before.md
+++ b/2025/info/private-ai-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-private-ai.html> Etherpad: <https://pad.emacsconf.org/2025-private-ai>
Etherpad: <https://pad.emacsconf.org/2025-private-ai>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T18:45:00Z" end="2025-12-06T19:05:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~1:45 PM - 2:05 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~12:45 PM - 1:05 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~11:45 AM - 12:05 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~10:45 AM - 11:05 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~6:45 PM - 7:05 PM UTC <br />Saturday, Dec 6 2025, ~7:45 PM - 8:05 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~8:45 PM - 9:05 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~12:15 AM - 12:35 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~2:45 AM - 3:05 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~3:45 AM - 4:05 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/python-before.md b/2025/info/python-before.md
index d2eb7152..bf3dfc48 100644
--- a/2025/info/python-before.md
+++ b/2025/info/python-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-python.html> Etherpad: <https://pad.emacsconf.org/2025-python>
Etherpad: <https://pad.emacsconf.org/2025-python>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T16:20:00Z" end="2025-12-06T16:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~11:20 AM - 11:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~10:20 AM - 10:40 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~9:20 AM - 9:40 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~8:20 AM - 8:40 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~4:20 PM - 4:40 PM UTC <br />Saturday, Dec 6 2025, ~5:20 PM - 5:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~6:20 PM - 6:40 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:50 PM - 10:10 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~12:20 AM - 12:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~1:20 AM - 1:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/reader-after.md b/2025/info/reader-after.md
index b0f4bf51..de969ba2 100644
--- a/2025/info/reader-after.md
+++ b/2025/info/reader-after.md
@@ -1,6 +1,828 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<div class="transcript transcript-mainVideo"><a name="reader-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""An introduction to the Emacs reader""" start="00:00:00.720" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Hello EmacsConf!""" start="00:00:00.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Today I'm here to introduce you to the Emacs Reader.""" start="00:00:02.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It is a general-purpose document viewer""" start="00:00:06.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that lives inside our beloved Emacs.""" start="00:00:08.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It tries to prioritize memory""" start="00:00:12.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and performance efficiency as much as possible""" start="00:00:14.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""even when you're using a lower-end hardware.""" start="00:00:17.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And, most importantly,""" start="00:00:20.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it tries to do things in an Emacs manner.""" start="00:00:22.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That is, it tries to integrate""" start="00:00:25.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""with existing packages as much as possible""" start="00:00:27.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""instead of reinventing the wheel.""" start="00:00:29.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And architecturally, it tries to take the advantage""" start="00:00:32.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of dynamic or native modules""" start="00:00:36.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which were introduced back in 2015 into Emacs.""" start="00:00:38.480" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Yet another document viewer in Emacs?""" start="00:00:44.760" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""You would ask, why exactly do we need""" start="00:00:44.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""another document viewer in Emacs?""" start="00:00:46.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Don't we already have the built-in DocView""" start="00:00:49.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and the notorious pdf-tools?""" start="00:00:51.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Well, the built-in DocView has unusable latency,""" start="00:00:55.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and I'm going to show you this later""" start="00:00:59.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""when I compare this with Emacs Reader.""" start="00:01:01.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The famous pdf-tools has actually multiple issues.""" start="00:01:04.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""One, it is extremely memory-hungry""" start="00:01:08.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""regardless of what kind of PDFs you're reading.""" start="00:01:10.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And, well, it can only read PDFs.""" start="00:01:14.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Poppler, the library which pdf-tools uses,""" start="00:01:17.940" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is actually sub-optimal,""" start="00:01:22.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""especially relative to MuPDF,""" start="00:01:23.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which is what Emacs Reader is based on.""" start="00:01:25.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-tools is also extremely painful to install.""" start="00:01:28.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If you've ever installed pdf-tools,""" start="00:01:31.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you know that it has a bunch of dependencies,""" start="00:01:34.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""including a server that is supposedly packaged.""" start="00:01:38.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""across package managers, system package managers.""" start="00:01:42.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's extremely difficult to install""" start="00:01:45.062" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and painful to install.""" start="00:01:47.738" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And of course, pdf-tools""" start="00:01:50.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""since the last couple of years""" start="00:01:52.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""has not been maintained as much.""" start="00:01:54.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""There's huge PRs that have been unnoticed and unmerged.""" start="00:01:56.560" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Architecture of Emacs Reader""" start="00:02:05.760" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Architecturally, Emacs Reader takes a distance""" start="00:02:05.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""from both DocView and pdf-tools.""" start="00:02:09.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So how DocView works is that""" start="00:02:12.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it basically wraps around""" start="00:02:15.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a tool called mutool.""" start="00:02:18.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""mutool is actually""" start="00:02:20.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a command line tool from MuPDF itself.""" start="00:02:22.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It relies on mutool and a bunch""" start="00:02:26.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of other similar command line tools,""" start="00:02:28.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and basically makes process calls""" start="00:02:30.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""from Elisp to the CLI tools.""" start="00:02:34.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's how DocView works,""" start="00:02:36.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and that's why it sort of has latency issues""" start="00:02:38.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because that's the best you can do""" start="00:02:41.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""by literally calling CLI tools""" start="00:02:42.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and outputting the images into Emacs.""" start="00:02:45.020" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""How pdf-tools works is that it tries""" start="00:02:50.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to have a server-client model.""" start="00:02:55.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So the client is Emacs""" start="00:02:57.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and the server is basically""" start="00:02:59.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""something they call epdfinfo.""" start="00:03:00.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's supposed to render the images using Poppler""" start="00:03:03.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then send the images to Emacs""" start="00:03:07.241" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which then tries to display.""" start="00:03:10.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I think the server client model is terrible.""" start="00:03:13.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""One, for latency purposes,""" start="00:03:16.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and two, it makes things""" start="00:03:18.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""unnecessarily more complicated.""" start="00:03:19.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Here is where we come""" start="00:03:21.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and introduce dynamic modules.""" start="00:03:24.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So Emacs Reader is based on""" start="00:03:26.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the concept of dynamic modules""" start="00:03:30.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which I'm going to talk about in a bit.""" start="00:03:32.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But how it works is that we have C modules.""" start="00:03:34.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we have the emacs-module.h,""" start="00:03:37.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that's the dynamic module header""" start="00:03:39.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which every dynamic module package must have.""" start="00:03:40.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And then we have our C files.""" start="00:03:43.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And these C files essentially define functions""" start="00:03:45.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that are going to be used in Emacs but in C.""" start="00:03:52.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We then load these C modules""" start="00:03:56.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""using simple (require ...) in our Elisp modules.""" start="00:03:59.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And then whenever we call""" start="00:04:03.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""something in the Emacs runtime,""" start="00:04:05.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""say I'm going to open""" start="00:04:07.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""PDF files in (find-file) or (reader-open-doc),""" start="00:04:09.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""what it does is that""" start="00:04:13.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it tries to use one of the functions""" start="00:04:15.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is wrapped in Elisp,""" start="00:04:19.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but actually tries to call a function in C.""" start="00:04:21.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And then the C module is actually""" start="00:04:24.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""going to make calls to the MuPDF.""" start="00:04:26.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Here the MuPDF system package,""" start="00:04:29.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""this is actually a system package""" start="00:04:31.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is dynamically linked to the C modules.""" start="00:04:33.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we're basically""" start="00:04:35.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just using it as a shared library.""" start="00:04:36.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you have the fz_load_page, for example,""" start="00:04:39.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it's a MuPDF function""" start="00:04:43.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that we're going to be using in the C modules.""" start="00:04:44.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So it's going to make""" start="00:04:47.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a shared dynamic call to MuPDF""" start="00:04:50.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then render the page""" start="00:04:53.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then show this to Emacs.""" start="00:04:55.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This pipeline, I argue,""" start="00:04:59.180" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is much better and leaner and efficient""" start="00:05:01.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""than a server-client model.""" start="00:05:05.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""One, because we don't really need""" start="00:05:07.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the server-client model.""" start="00:05:09.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So back when Politza""" start="00:05:10.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""first introduced pdf-tools,""" start="00:05:12.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that was like 10 years ago in 2015,""" start="00:05:14.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the concept of dynamic modules""" start="00:05:19.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""were not integrated into Emacs.""" start="00:05:21.241" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I think they came around""" start="00:05:23.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""like one or two years late, 2017.""" start="00:05:24.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's the best he could go with.""" start="00:05:28.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We don't really have to, today,""" start="00:05:31.220" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because, since we can use MuPDF""" start="00:05:33.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as a shared library""" start="00:05:35.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which can render things in real-time""" start="00:05:37.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and just give us the rendered images""" start="00:05:39.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which we can then display,""" start="00:05:41.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""there's no reason for a server to do things for us.""" start="00:05:43.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's the main architectural difference""" start="00:05:49.660" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that Emacs Reader introduces""" start="00:05:53.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""compared to pdf-tools and DocView.""" start="00:05:55.480" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""A word on dynamic modules""" start="00:06:00.280" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""What exactly are dynamic modules?""" start="00:06:00.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Well, I can't really give you""" start="00:06:02.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a full-fledged explanation,""" start="00:06:04.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but essentially dynamic modules""" start="00:06:06.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""let you evaluate""" start="00:06:08.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""native compiled code""" start="00:06:10.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in other languages like C, C++, Rust""" start="00:06:12.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that behaves like regular Emacs Lisp.""" start="00:06:15.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So when our Emacs C modules,""" start="00:06:18.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the render-core.c or render-theme.c,""" start="00:06:23.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""when all of these are compiled,""" start="00:06:26.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and they're called from the Elisp modules.""" start="00:06:28.300" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They behave like Elisp even though""" start="00:06:30.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""they're as fast as a C function""" start="00:06:34.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because they're compiled C code.""" start="00:06:37.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But you essentially call them""" start="00:06:39.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just like Elisp functions.""" start="00:06:41.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can find them using C-h f and so on.""" start="00:06:42.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you can call any function""" start="00:06:47.820" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""from any language that supports""" start="00:06:49.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the C ABI, which is virtually everything,""" start="00:06:51.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""without leaving Emacs""" start="00:06:53.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and without losing any performance.""" start="00:06:54.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is extremely helpful""" start="00:06:56.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""when you want to use""" start="00:06:58.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""existing libraries like MuPDF""" start="00:06:59.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""or any other cryptographic library""" start="00:07:02.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is written in C""" start="00:07:04.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and you don't want to rewrite""" start="00:07:06.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the entire thing in Elisp,""" start="00:07:07.038" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but you can just use it as a native library.""" start="00:07:08.538" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can read more""" start="00:07:11.740" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""on how dynamic modules work""" start="00:07:13.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and how you can write one in this blog.""" start="00:07:14.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is something that I wrote myself""" start="00:07:17.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just after starting this package""" start="00:07:19.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it will give you a bit more guidance""" start="00:07:22.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""on how to use dynamic modules more efficiently.""" start="00:07:25.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I think dynamic modules""" start="00:07:27.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""should be used more and more in Emacs""" start="00:07:28.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and I think their advantages""" start="00:07:32.300" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""have not been exploited""" start="00:07:34.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as much as they should.""" start="00:07:36.080" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Features of Emacs Reader""" start="00:07:39.560" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Now we're going to talk a bit about""" start="00:07:39.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the core features of Emacs Reader.""" start="00:07:42.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And these are the following features""" start="00:07:46.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that we're going to talk about.""" start="00:07:48.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And finally, to talk about""" start="00:07:50.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""some challenges that we faced.""" start="00:07:51.960" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Memory efficiency""" start="00:07:56.760" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""First is memory efficiency.""" start="00:07:56.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I already told you that""" start="00:07:58.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs Reader's first priority""" start="00:08:00.820" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is to make sure that we are not slow""" start="00:08:03.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and we are not taking""" start="00:08:06.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a bunch of memory unnecessarily.""" start="00:08:07.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So here's a graph of the heap memory size""" start="00:08:10.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as it grows for DocView.""" start="00:08:14.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this is again in emacs -Q.""" start="00:08:17.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this is a fresh Emacs session""" start="00:08:20.638" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""with just DocView.""" start="00:08:22.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It grows up to 900MB""" start="00:08:25.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for a very small PDF that is a LaTeX PDF.""" start="00:08:27.820" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""No scanned huge PDF. It's a 2MB PDF.""" start="00:08:31.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But when I scrolled from the beginning""" start="00:08:36.780" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of the PDF to the end,""" start="00:08:39.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it went up to 900MB.""" start="00:08:41.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's the memory heap size.""" start="00:08:43.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Does pdf-tools make this any better?""" start="00:08:46.820" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It actually doesn't.""" start="00:08:49.700" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, pdf-tools pretty much""" start="00:08:51.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""does the same thing.""" start="00:08:55.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""if you look at it here""" start="00:08:57.220" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just so if you're going to ask me""" start="00:08:58.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""are they two different graphs,""" start="00:09:01.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""or are you just showing me the same graph,""" start="00:09:02.940" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""they're actually two different graphs,""" start="00:09:04.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because if you look at the DocView graph""" start="00:09:06.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it uses cairo and it uses librsvg""" start="00:09:08.780" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because docview by default""" start="00:09:11.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""converts the images into SVG.""" start="00:09:13.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The rendered images are SVGs.""" start="00:09:16.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-tools doesn't, so you don't see""" start="00:09:18.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""any librsvg calls here or anything""" start="00:09:20.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this is pdf-tools""" start="00:09:24.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it basically takes up""" start="00:09:25.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the same amount of memory, 900MB,""" start="00:09:27.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and exactly the same operation,""" start="00:09:29.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""exactly the same PDF,""" start="00:09:30.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""exactly scrolling from first to the last.""" start="00:09:32.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Where do we stand?""" start="00:09:36.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Well, we actually do much better.""" start="00:09:37.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So let me zoom in this.""" start="00:09:40.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if you see, we stand within""" start="00:09:42.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""at a peak of 72MB.""" start="00:09:46.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Exactly the same PDF,""" start="00:09:49.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""exactly the same operation""" start="00:09:51.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""from the beginning to the end,""" start="00:09:53.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""around 285 pages scrolled.""" start="00:09:54.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We take much less than 80 MB.""" start="00:09:57.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And actually, to be very frank,""" start="00:10:03.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the only memory that we're storing in Emacs,""" start="00:10:05.072" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""oh, sorry, not in Emacs,""" start="00:10:09.205" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the MuPDF heap is just about 30 MB.""" start="00:10:12.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's this dark red one.""" start="00:10:16.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's the cache that we're storing.""" start="00:10:19.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's the memory that we're interacting with""" start="00:10:22.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in real time.""" start="00:10:24.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is stuff that Emacs adds on top of it""" start="00:10:25.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and a bit of libmupdf.""" start="00:10:29.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you can see, in terms of memory,""" start="00:10:32.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we're saving...""" start="00:10:35.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we're literally down,""" start="00:10:37.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""what, a fraction of 10!""" start="00:10:41.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This was a priority for us""" start="00:10:45.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""since the beginning,""" start="00:10:48.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because when I was starting to use pdf-tools,""" start="00:10:49.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it was unusable for me""" start="00:10:52.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because I was on a lower-end hardware""" start="00:10:53.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and I thought it should not be""" start="00:10:55.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""really that difficult""" start="00:10:57.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for a document reader""" start="00:10:58.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to not take a gigabyte of memory.""" start="00:11:00.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It really shouldn't because""" start="00:11:04.100" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you're not really doing that much,""" start="00:11:05.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you're just displaying images.""" start="00:11:07.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's how efficient""" start="00:11:10.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we are in terms of memory.""" start="00:11:12.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Let's see how efficient""" start="00:11:13.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we are in terms of speed.""" start="00:11:15.372" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Performance and speed""" start="00:11:18.720" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""So Emacs Reader is actually""" start="00:11:18.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as fast as pdf-tools,""" start="00:11:21.100" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it is actually""" start="00:11:23.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""way more faster than DocView.""" start="00:11:24.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""In some cases,""" start="00:11:27.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it actually beats existing""" start="00:11:28.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""standalone document readers and browsers.""" start="00:11:31.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So let's actually see this in action.""" start="00:11:34.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So here we are with""" start="00:11:41.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a few emacs -Q sessions.""" start="00:11:42.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm using emacs -Q so as to give you...""" start="00:11:46.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that this is actually""" start="00:11:50.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as less overhead possible.""" start="00:11:52.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we have first DocView.""" start="00:11:55.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""All of these tests""" start="00:11:57.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""are going to be done on the same PDF.""" start="00:12:01.138" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's the documentation manual from MuPDF.""" start="00:12:03.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if I scroll, this is fine.""" start="00:12:07.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm just pressing n""" start="00:12:10.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it seems to work fine.""" start="00:12:12.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If I press and hold n,""" start="00:12:15.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I have pressed n and I'm holding.""" start="00:12:19.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And Emacs is stuck.""" start="00:12:21.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And it's going to stay stuck""" start="00:12:26.420" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because it's making calls""" start="00:12:27.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to the CLI tool that I said, mutool.""" start="00:12:28.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And after it's done getting stuck,""" start="00:12:31.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it is going to get back.""" start="00:12:35.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""As you can see, if you go back,""" start="00:12:40.180" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you're able to go back fine.""" start="00:12:43.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It does not get stuck""" start="00:12:45.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because what Emacs does""" start="00:12:46.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is it basically calls mutool,""" start="00:12:48.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""like fetches a bunch of pages,""" start="00:12:51.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""essentially all the pages""" start="00:12:53.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that you asked for it,""" start="00:12:54.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it puts them into the memory.""" start="00:12:56.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And that's it.""" start="00:12:59.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It puts them into the memory""" start="00:12:59.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then scrolls through it.""" start="00:13:01.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So going back, you will most likely""" start="00:13:03.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""not have any stuck issues.""" start="00:13:05.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Sometimes you do""" start="00:13:07.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because some images do get GC'd.""" start="00:13:07.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But that's the idea.""" start="00:13:10.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Whenever there's no image in memory,""" start="00:13:13.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it gets stuck.""" start="00:13:16.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And it gets stuck good.""" start="00:13:18.740" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's DocView.""" start="00:13:21.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-tools is actually""" start="00:13:23.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""not problematic here.""" start="00:13:25.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-tools is extremely efficient""" start="00:13:27.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and extremely fast.""" start="00:13:29.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we can go through the pages""" start="00:13:30.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""without any issues.""" start="00:13:32.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We can zoom.""" start="00:13:34.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The zoom did get stuck a bit,""" start="00:13:37.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but that's relatively fine.""" start="00:13:39.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs Reader is exactly as fast""" start="00:13:44.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as pdf-tools here.""" start="00:13:46.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this is pdf-view,""" start="00:13:49.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""this is Emacs Reader.""" start="00:13:50.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Let's scroll through the pages.""" start="00:13:51.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""As you can see, nothing is getting stuck""" start="00:13:55.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because we're not really waiting""" start="00:13:59.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for any tool to send us any images.""" start="00:14:00.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We just have a little cache""" start="00:14:06.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and we're scrolling through them""" start="00:14:08.300" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and rendering images in real time.""" start="00:14:09.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Zooming also works fine.""" start="00:14:13.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, with regards to this,""" start="00:14:17.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we're in parity with pdf-tools.""" start="00:14:19.520" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Scanned PDFs""" start="00:14:23.680" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Now, where pdf-tools and actually""" start="00:14:23.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a lot of readers have issues""" start="00:14:26.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is when they're dealing with scanned PDF.""" start="00:14:28.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, we have this PDF which is notorious""" start="00:14:32.500" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for being really difficult to render""" start="00:14:36.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because this is entirely built""" start="00:14:40.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""with scanned images.""" start="00:14:42.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is the kind of PDF""" start="00:14:43.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that you get from Internet Archive.""" start="00:14:44.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is essentially someone""" start="00:14:46.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""took photos of the book in a camera""" start="00:14:47.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and literally turned them into a PDF.""" start="00:14:50.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs Reader actually does not have""" start="00:14:56.660" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""any issues rendering this.""" start="00:14:58.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""As you can see, it renders it smoothly""" start="00:15:01.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and fine without any halts.""" start="00:15:05.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I can change Emacs even while it's doing so,""" start="00:15:09.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it does not have any issues.""" start="00:15:13.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-tools are the same.""" start="00:15:17.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""PDF also does not have any issues.""" start="00:15:20.072" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Sorry. Click pdf-view-mode.""" start="00:15:21.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""pdf-view (pdf-tools) is a bit slower""" start="00:15:26.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but does not have any issues. It works.""" start="00:15:29.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Here, actually, pdf-tools and Emacs Reader""" start="00:15:35.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""are more efficient than even browsers.""" start="00:15:40.701" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, if I try to open""" start="00:15:46.100" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the same page in a browser,""" start="00:15:47.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm trying to scroll.""" start="00:15:50.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And after I've scrolled and I leave,""" start="00:15:52.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""scrolling is going to load""" start="00:15:54.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for a bunch of seconds""" start="00:15:58.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to give me the page.""" start="00:15:59.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's more than five seconds,""" start="00:16:03.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as you can see,""" start="00:16:04.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and this is actually totally not usable.""" start="00:16:05.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If you're going to read this book,""" start="00:16:08.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""an electromagnetics book,""" start="00:16:10.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you're going to have a terrible time""" start="00:16:12.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""reading this in a browser,""" start="00:16:13.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which is supposed to be""" start="00:16:14.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the fastest thing alive.""" start="00:16:15.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You sort of have the same experience""" start="00:16:17.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in Okular. So this is Okular.""" start="00:16:19.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If I try to scroll through this,""" start="00:16:20.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it will do the same thing.""" start="00:16:22.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And while it is better than the browser,""" start="00:16:25.420" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it still takes a while""" start="00:16:28.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it still has, like, if you zoom,""" start="00:16:31.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you're going to have a bit of a delay.""" start="00:16:34.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You don't really face that in Emacs Reader.""" start="00:16:36.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We zoom in and out just fine.""" start="00:16:41.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And even with using mouse,""" start="00:16:45.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you can zoom in and out just fine.""" start="00:16:47.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this is how Emacs Reader performs""" start="00:16:51.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in terms of speed with these other tools.""" start="00:16:54.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now we will go back to the original presentation.""" start="00:17:01.120" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""System-level multi-threading""" start="00:17:08.960" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Now, how exactly is Emacs Reader""" start="00:17:08.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""able to do a lot of this?""" start="00:17:11.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I wish I could sort of spend""" start="00:17:14.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""an entire session""" start="00:17:17.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just talking about this, but I can't.""" start="00:17:19.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So I'm just going to make this short.""" start="00:17:21.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""When you load Emacs Reader,""" start="00:17:22.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the standard output,""" start="00:17:24.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it's going to say this:""" start="00:17:26.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that eight threads have been initialized.""" start="00:17:27.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now, what we did with Emacs here""" start="00:17:29.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is that we enabled""" start="00:17:32.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""system-level multithreading.""" start="00:17:33.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now, Emacs is not multithreaded.""" start="00:17:35.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We all know that notoriously.""" start="00:17:36.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It is single-threaded.""" start="00:17:38.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But we don't really""" start="00:17:39.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""need Emacs to be multithreaded, though.""" start="00:17:41.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs does not need to be multithreaded.""" start="00:17:43.820" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""What needs to be multithreaded""" start="00:17:45.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is the rendering part""" start="00:17:47.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because that's the most expensive part.""" start="00:17:48.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""In Emacs, we're only just displaying images.""" start="00:17:50.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs itself does not have a PDF engine""" start="00:17:53.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is rendering stuff.""" start="00:17:56.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""MuPDF is supposed to take care of that.""" start="00:17:57.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if I can do multithreading""" start="00:18:00.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the rendering pipeline,""" start="00:18:03.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is when I'm rendering pages""" start="00:18:05.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""instead of displaying them,""" start="00:18:07.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that's fine for me because""" start="00:18:08.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the rendering part most of the time,""" start="00:18:10.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""especially in scanned PDFs,""" start="00:18:11.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is the most expensive part.""" start="00:18:12.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if you look at this graph,""" start="00:18:14.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we have two parts here.""" start="00:18:16.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We have the display pipeline""" start="00:18:17.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and we have the rendering pipeline.""" start="00:18:19.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""In the display pipeline,""" start="00:18:22.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we have just the Emacs session""" start="00:18:23.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which has the reader loaded""" start="00:18:26.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and that's the main thread.""" start="00:18:29.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Then we have the rendering pipeline""" start="00:18:31.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which has the MuPDF system package""" start="00:18:33.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""dynamically linked.""" start="00:18:35.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So when you load Emacs Reader,""" start="00:18:38.460" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we initialize a thread pool with eight threads.""" start="00:18:40.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now what you do is let's say we are at page 50.""" start="00:18:45.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""At page 50, the Emacs Reader""" start="00:18:48.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""maintains a cache.""" start="00:18:51.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's like a stack of pages""" start="00:18:54.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that we keep in memory all the time.""" start="00:18:56.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This cache is entirely outside of Emacs.""" start="00:18:58.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It is not inside Emacs environment.""" start="00:19:02.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It is in the C memory heap,""" start="00:19:04.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the MuPDF memory heap""" start="00:19:07.571" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that is outside of Emacs environment.""" start="00:19:09.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It does not make any calls to Emacs anything.""" start="00:19:11.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It does not have a single Elisp line.""" start="00:19:13.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this cache is stored outside.""" start="00:19:15.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now when I want to retrieve""" start="00:19:20.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""anything from this cache,""" start="00:19:22.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""let's say, so I have cached""" start="00:19:23.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""up until 55, from 45 to 55.""" start="00:19:26.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So what happens is that""" start="00:19:29.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""when you're at page 50,""" start="00:19:31.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you always have a cache""" start="00:19:32.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that's n + 5 and n - 5.""" start="00:19:34.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you have cache of 5 pages forward""" start="00:19:36.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and 5 pages backward.""" start="00:19:39.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But let's say I want to go to page 56.""" start="00:19:41.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So I will ask an Emacs render page 56.""" start="00:19:45.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And I'm not going to ask it""" start="00:19:50.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to MuPDF directly.""" start="00:19:51.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm going to ask it""" start="00:19:53.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to the thread pool that do this job.""" start="00:19:54.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And thread pool is going to""" start="00:19:56.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""assign one thread to it.""" start="00:19:58.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Let's say the thread 1""" start="00:19:59.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which is going to render page 56.""" start="00:20:00.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So this thread is going to make calls to MuPDF""" start="00:20:03.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""through our code dynamic module.""" start="00:20:06.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And MuPDF after rendering it""" start="00:20:08.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is going to store it in the cache.""" start="00:20:11.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we're going to add another 56 page to this.""" start="00:20:13.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now, while this is happening,""" start="00:20:18.060" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs Reader does not, like Emacs itself,""" start="00:20:21.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the session is not going to be stuck""" start="00:20:24.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because we just made a call to the thread.""" start="00:20:27.380" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We just asked the thread.""" start="00:20:30.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So like this, this call, like it's done.""" start="00:20:32.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you just assign something to a thread""" start="00:20:35.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then this is fine.""" start="00:20:38.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Like, you're not waiting for the thread""" start="00:20:40.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to complete or anything.""" start="00:20:42.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs is not waiting for the thread to complete.""" start="00:20:43.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The dynamic module or the C side""" start="00:20:46.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""might wait to complete""" start="00:20:48.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but that is entirely different from""" start="00:20:49.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the Emacs session.""" start="00:20:51.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So Emacs viewer can continue to""" start="00:20:52.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""display the page 50""" start="00:20:54.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""while the rendering pipeline""" start="00:20:56.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is still rendering the 56th page.""" start="00:20:58.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And when Emacs asks to display page 56,""" start="00:21:01.980" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it's going to ask it to a thread pool.""" start="00:21:05.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Then thread pool is going to assign""" start="00:21:09.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""another thread, let's say this one,""" start="00:21:11.537" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to retrieve page 56 from the memory cache.""" start="00:21:13.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And then the 56 page is going to be sent""" start="00:21:17.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to the Emacs to be displayed.""" start="00:21:20.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Again, the retrieval part""" start="00:21:24.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is entirely independent of Emacs.""" start="00:21:26.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs does not have to wait for it.""" start="00:21:28.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs only needs to wait to display it.""" start="00:21:30.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, the displaying part""" start="00:21:34.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and the rendering pipeline""" start="00:21:36.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""are entirely asynchronous, so to speak.""" start="00:21:37.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And in the diagram, if you see,""" start="00:21:41.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""all the arrows that are""" start="00:21:43.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""magenta in color,""" start="00:21:46.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""they are native to the Emacs runtime.""" start="00:21:48.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That is, they are single-threaded.""" start="00:21:51.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They are connected to Emacs.""" start="00:21:53.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And all the arrows that are red in color,""" start="00:21:55.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""they are totally asynchronous.""" start="00:21:58.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They can be multi-threaded if you want.""" start="00:22:01.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They are multi-threaded by default""" start="00:22:03.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because they interact""" start="00:22:05.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""only with the MuPDF shared library""" start="00:22:07.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and the C heap.""" start="00:22:09.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They do not touch anything""" start="00:22:11.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the Emacs runtime.""" start="00:22:12.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is how we're able to switch quickly""" start="00:22:14.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""between these huge scanned PDFs""" start="00:22:18.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that have huge images""" start="00:22:22.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in each of their pages""" start="00:22:23.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because we don't really wait for""" start="00:22:25.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""each page to be rendered.""" start="00:22:28.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And Emacs does not wait for that.""" start="00:22:31.380" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's another architectural feature""" start="00:22:35.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of Emacs Reader""" start="00:22:39.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that we are system-level multithreaded.""" start="00:22:40.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now Emacs viewer also supports""" start="00:22:43.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""almost all document formats.""" start="00:22:47.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It supports PDF, EPUB, MOBI, XPS, CPZ comics,""" start="00:22:49.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it even supports""" start="00:22:54.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""other non-ebook formats""" start="00:22:56.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""like document format,""" start="00:22:59.971" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so you can open""" start="00:23:00.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""LibreOffice documents in it,""" start="00:23:01.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and even stuff like PPT and Excel in it,""" start="00:23:04.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""even though they're not going to be""" start="00:23:07.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""supported in a as nice manner.""" start="00:23:08.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And we can do that because MuPDF does this.""" start="00:23:13.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""MuPDF has support for all of this""" start="00:23:16.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it treats them just as it treats PDF.""" start="00:23:18.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Nothing special.""" start="00:23:22.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The only thing that we don't support right now""" start="00:23:24.540" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is DejaVu, so that is not supported right now.""" start="00:23:26.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm going to work on making it supported""" start="00:23:30.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""at the upstream MuPDF.""" start="00:23:33.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's going to take a long time,""" start="00:23:36.020" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but it's in the plans.""" start="00:23:38.440" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Native Emacs integrations""" start="00:23:44.240" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Now with Emacs Reader,""" start="00:23:44.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we also integrate""" start="00:23:45.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""with existing Emacs packages""" start="00:23:46.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as much as possible.""" start="00:23:48.620" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So bookmarks, C-x r b,""" start="00:23:50.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you can do it natively.""" start="00:23:53.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you can save a page as a bookmark""" start="00:23:54.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just as you save anything else in Emacs""" start="00:23:57.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as a bookmark.""" start="00:23:59.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""There's also saveplace integration.""" start="00:24:00.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you can scroll a PDF, close it,""" start="00:24:02.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then come back to it""" start="00:24:06.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""at the same page that you saved it at.""" start="00:24:07.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Sorry, that you closed it at.""" start="00:24:10.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And it's going to work just out of the box""" start="00:24:12.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because of the saveplace""" start="00:24:14.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""package in Emacs that is built in.""" start="00:24:16.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We also have imenu integration""" start="00:24:19.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for table of contents.""" start="00:24:20.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if you see this, this is imenu""" start="00:24:22.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and you can scroll through the contents""" start="00:24:26.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just like you scroll through any imenu.""" start="00:24:28.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can also do it in the menu bar by clicking.""" start="00:24:30.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It works just as nice.""" start="00:24:39.500" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We also have something like""" start="00:24:40.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the outline mode that pdf-tools has.""" start="00:24:42.740" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So if you press O in a document,""" start="00:24:44.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it's going to give you this outline.""" start="00:24:48.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And these are buttons that are clickable.""" start="00:24:49.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can click them.""" start="00:24:53.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can press Enter at them.""" start="00:24:54.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And this is the menu bar item that I was looking at.""" start="00:24:56.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If you click here, index,""" start="00:25:00.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it's going to show you""" start="00:25:02.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the exact same thing""" start="00:25:03.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but in a different interface.""" start="00:25:05.340" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""(Naive) dark mode""" start="00:25:10.340" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""We also have a naive dark mode,""" start="00:25:10.340" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which is not really as nice as""" start="00:25:15.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we would like it to be,""" start="00:25:17.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and dark mode fanatics""" start="00:25:18.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I'm sure will have issues with it,""" start="00:25:20.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but we're going to improve it in time.""" start="00:25:22.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""For now, this is what we have.""" start="00:25:24.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And it can be enabled per document,""" start="00:25:27.380" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so you can have one, like,""" start="00:25:30.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""one document that is in dark mode,""" start="00:25:33.100" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but another one that is not.""" start="00:25:34.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That is nice to have.""" start="00:25:36.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Eventually we're going to work on more themes.""" start="00:25:39.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You should be able to actually integrate it""" start="00:25:42.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""with Emacs themes as much as possible.""" start="00:25:46.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can make it default so that""" start="00:25:49.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it inherits colors from the Emacs theme.""" start="00:25:52.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That is one of the things""" start="00:25:54.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that we also have planned.""" start="00:25:56.360" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Challenges and further improvements""" start="00:26:01.140" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""We did face a bunch of challenges""" start="00:26:01.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""while trying to implement these features.""" start="00:26:03.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""One of the initial challenges was that""" start="00:26:05.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""SVGs were actually a bad idea.""" start="00:26:07.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""They're huge, especially in scanned PDFs,""" start="00:26:09.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and they make things much slower.""" start="00:26:12.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we chose to actually have PPMs,""" start="00:26:14.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which is the simplest image format ever possible.""" start="00:26:18.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Now, it was also very difficult""" start="00:26:24.100" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to make reader-mode be window-specific.""" start="00:26:26.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So, you know, while you're scrolling""" start="00:26:29.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the same document in one window,""" start="00:26:31.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the other window with the same document""" start="00:26:34.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""should not change.""" start="00:26:36.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We should be able to have multiple pages""" start="00:26:37.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in different windows of the same document.""" start="00:26:39.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That was very difficult""" start="00:26:42.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because as I told you about the cache,""" start="00:26:44.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the cache works in an idiosyncratic manner""" start="00:26:46.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and we needed to make it so that each window""" start="00:26:50.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""will have its own cache""" start="00:26:54.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""instead of having a global cache for each file.""" start="00:26:56.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That took some rewrite.""" start="00:27:01.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And now, because we needed to do""" start="00:27:03.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""this sort of multithreading,""" start="00:27:06.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""system-level multithreading,""" start="00:27:07.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we needed to use""" start="00:27:09.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a specific package of MuPDF""" start="00:27:10.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that had a bug for this which got fixed.""" start="00:27:13.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And that's 1.26.0.""" start="00:27:16.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Because we did that,""" start="00:27:20.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a lot of the GNU/Linux distributions did not""" start="00:27:23.337" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""really have this latest package.""" start="00:27:26.463" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we had to actually""" start="00:27:28.872" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""package it in-tree.""" start="00:27:30.772" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""as a git sub-module.""" start="00:27:33.805" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That was a horror! But eventually... now""" start="00:27:36.972" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I think most GNU/Linux distributions""" start="00:27:40.738" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""already have this [version].""" start="00:27:43.605" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The upcoming features that we have planned""" start="00:27:46.341" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""are the first one is that we need to rewrite""" start="00:27:48.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the display mechanism entirely from scratch""" start="00:27:52.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to use a tiled rendering approach.""" start="00:27:55.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So right now we just take an image""" start="00:27:57.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and display it inside an Emacs buffer""" start="00:28:00.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""just like that.""" start="00:28:02.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""But it will be changed so that the image""" start="00:28:03.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""will be displayed in the tiled manner""" start="00:28:08.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so there will be multiple tiles""" start="00:28:10.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but it'll be pixel perfect""" start="00:28:12.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so you won't really see a difference.""" start="00:28:14.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The reason to do this is to implement features""" start="00:28:16.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for text selection, actually.""" start="00:28:19.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we can't really do text selection""" start="00:28:21.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""without running into a bunch of memory""" start="00:28:24.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and other issues latency issues""" start="00:28:27.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""if we don't do tiling.""" start="00:28:30.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So we need to do those two things,""" start="00:28:33.020" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""they are at the highest priority right now.""" start="00:28:35.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And then, once we're done with that,""" start="00:28:38.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we're going to support annotations,""" start="00:28:40.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""highlighting, everything that you're used to""" start="00:28:42.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in pdf-tools and org-noter.""" start="00:28:45.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And once we're done with that,""" start="00:28:47.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we're going to also integrate with AucTeX and SyncTeX.""" start="00:28:50.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Because right now, when a PDF gets updated,""" start="00:28:55.020" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""especially a LaTeX PDF,""" start="00:28:58.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""since there is no SyncTeX integration,""" start="00:29:00.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it can't really do it nicely""" start="00:29:03.438" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it sometimes even crashes Emacs.""" start="00:29:05.772" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's something that""" start="00:29:08.661" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we will be planning to implement.""" start="00:29:11.538" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What Emacs can learn?""" start="00:29:14.272" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Now, from this experiment,""" start="00:29:14.272" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""what exactly can Emacs,""" start="00:29:16.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the Emacs core devs and others""" start="00:29:17.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who are building packages can learn?""" start="00:29:20.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Well, the first thing is that all of this""" start="00:29:22.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""should not be really this difficult""" start="00:29:24.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because all we're asking from Emacs""" start="00:29:27.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is to display images in real-time""" start="00:29:30.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and update them in real-time.""" start="00:29:32.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That should not be that difficult""" start="00:29:36.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of a thing to do, but apparently it is.""" start="00:29:37.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And that's why Emacs's graphical interface""" start="00:29:40.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""needs to be more modular, more composable,""" start="00:29:43.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and flexible for real-time graphics.""" start="00:29:47.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""If it is supposed to have things like,""" start="00:29:51.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""again, a document reader,""" start="00:29:54.220" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""something like a video editor,""" start="00:29:56.180" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and something like that,""" start="00:29:57.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs's graphical interface""" start="00:29:58.980" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""needs to grow and be more mature.""" start="00:30:00.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""One of the things""" start="00:30:05.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that's stopping it from doing that""" start="00:30:06.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is actually Emacs's overlay functionality.""" start="00:30:08.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So right now, the way we display""" start="00:30:10.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""an image in a buffer""" start="00:30:13.940" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is using an overlay,""" start="00:30:16.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""actually multiple overlays.""" start="00:30:18.901" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Overlays are static in the sense that""" start="00:30:22.020" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""if I attach to one image to one overlay,""" start="00:30:25.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I need to have an entirely different image""" start="00:30:29.740" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""updated for that overlay.""" start="00:30:34.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So I need to create another different image,""" start="00:30:37.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""change it in the memory,""" start="00:30:39.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and then display it to update it.""" start="00:30:41.180" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I can't change the image data""" start="00:30:43.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in real time of the overlay.""" start="00:30:46.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And that is a big issue.""" start="00:30:49.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I've actually made an emacs-devel""" start="00:30:54.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""mailing list thread about it.""" start="00:30:56.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I talked to Eli about it as well.""" start="00:30:58.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And he said there's a possibility""" start="00:31:01.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that this can be changed,""" start="00:31:04.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but it's going to take""" start="00:31:05.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a certain amount of rewrite.""" start="00:31:06.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""There's also issues with Emacs GC.""" start="00:31:09.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs GC sometimes leaks memory""" start="00:31:12.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""when you update images too quickly.""" start="00:31:14.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That is, when you have a bunch of images""" start="00:31:16.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that are getting churned out too quickly,""" start="00:31:18.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs GC starts leaking""" start="00:31:21.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and it just goes up to""" start="00:31:23.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""a huge number of gigabytes in RAM.""" start="00:31:25.160" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""That's also a huge problem.""" start="00:31:29.680" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The dynamic module API,""" start="00:31:32.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the emacs-module.h header,""" start="00:31:33.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""needs to have more helpers.""" start="00:31:37.140" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""It's really bare bones,""" start="00:31:38.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and I like that it is bare bones""" start="00:31:41.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so that other languages can use it,""" start="00:31:43.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""but at the same time, I think""" start="00:31:45.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""it'll be really good""" start="00:31:46.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""if we can have some helpers""" start="00:31:47.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that can do better memory interaction,""" start="00:31:49.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""like strings and so on,""" start="00:31:53.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""which we also faced some issues with.""" start="00:31:57.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Emacs's fractional scaling system""" start="00:32:00.380" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""seems to be broken across different toolkits.""" start="00:32:02.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We have bug reports that say in pgtk in Wayland,""" start="00:32:05.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""something seems to render differently""" start="00:32:11.000" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because they have fractional scaling enabled.""" start="00:32:13.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So that's something""" start="00:32:17.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""that I think Emacs, overall,""" start="00:32:18.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I think Emacs needs to focus on improving""" start="00:32:21.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""the graphical interface pipeline""" start="00:32:24.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to be a much more mature one.""" start="00:32:28.240" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Contributing to the development""" start="00:32:32.300" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""And finally, how can you contribute""" start="00:32:32.300" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to the development of Emacs Reader?""" start="00:32:34.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Well, we are on Codeberg.""" start="00:32:35.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""We are not on GitHub, sorry.""" start="00:32:37.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can go there,""" start="00:32:40.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you can look through the issues""" start="00:32:41.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and send us a PR if you're interested.""" start="00:32:43.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""The next major release""" start="00:32:45.280" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""is going to go to GNU ELPA.""" start="00:32:46.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Finally, we are not yet at GNU ELPA,""" start="00:32:49.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so you can't really do M-x package-install""" start="00:32:52.260" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and install our package.""" start="00:32:54.440" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""you would need to install it""" start="00:32:56.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""through use-package :vc.""" start="00:32:58.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And since we're going to go to GNU ELPA,""" start="00:33:04.940" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""we request you to assign""" start="00:33:07.500" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""your copyright to Emacs""" start="00:33:09.120" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""because GNU ELPA is essentially part of GNU Emacs.""" start="00:33:10.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So you would need to do copyright assignment""" start="00:33:13.960" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""if you make non-trivial contribution.""" start="00:33:16.720" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""You can join us at IRC""" start="00:33:20.580" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""at #phi-mu-lambda.""" start="00:33:22.480" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And I also stream the development""" start="00:33:24.360" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""of this package""" start="00:33:27.200" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""bi-weekly on Sundays""" start="00:33:28.040" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""at PeerTube at the following channel.""" start="00:33:29.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Feel free to join us.""" start="00:33:31.640" video="mainVideo-reader" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Acknowledgements""" start="00:33:35.520" video="mainVideo-reader" id="subtitle"]]</div>[[!template text="""Finally, I want to thank Tushar,""" start="00:33:35.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who has been persistently contributing""" start="00:33:38.500" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""to the project since 0.1.0,""" start="00:33:40.640" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and I'm very, very thankful for him,""" start="00:33:42.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""for his suggestions,""" start="00:33:46.520" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and for his code contributions as well.""" start="00:33:47.760" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I would also like to thank Prom,""" start="00:33:50.880" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who fixed a major bug""" start="00:33:53.320" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""in the Windows build,""" start="00:33:55.800" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""since I don't really use Windows anymore,""" start="00:33:56.860" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""so that was really nice,""" start="00:33:58.840" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and for Teeoius, for fixing a pthread bug.""" start="00:33:59.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""I would also like to thank others""" start="00:34:05.460" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who helped fix little things,""" start="00:34:06.920" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who come to the stream to chat,""" start="00:34:09.560" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""who sort of see me bang my head""" start="00:34:13.180" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""across these C memory bugs.""" start="00:34:16.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""So thank you to all of those.""" start="00:34:19.240" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""And thank you finally to the viewers""" start="00:34:21.600" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""and to EmacsConf organizers as well.""" start="00:34:24.400" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""This is a splendid opportunity.""" start="00:34:28.080" video="mainVideo-reader" id="subtitle"]]
+[[!template text="""Thank you.""" start="00:34:31.940" video="mainVideo-reader" id="subtitle"]]
+
+</div>
+
+Captioner: jay_bird
+
Questions or comments? Please e-mail [divya@subvertising.org](mailto:divya@subvertising.org?subject=Comment%20for%20EmacsConf%202023%20reader%3A%20An%20introduction%20to%20the%20Emacs%20Reader)
diff --git a/2025/info/reader-before.md b/2025/info/reader-before.md
index e2036a3a..5721f1b0 100644
--- a/2025/info/reader-before.md
+++ b/2025/info/reader-before.md
@@ -8,12 +8,29 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 35-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-reader.html> Etherpad: <https://pad.emacsconf.org/2025-reader>
Etherpad: <https://pad.emacsconf.org/2025-reader>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Processing uploaded video
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T14:40:00Z" end="2025-12-07T15:15:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~9:40 AM - 10:15 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~8:40 AM - 9:15 AM CST (US/Central)<br />Sunday, Dec 7 2025, ~7:40 AM - 8:15 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~6:40 AM - 7:15 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~2:40 PM - 3:15 PM UTC <br />Sunday, Dec 7 2025, ~3:40 PM - 4:15 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~4:40 PM - 5:15 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~8:10 PM - 8:45 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~10:40 PM - 11:15 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~11:40 PM - 12:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-reader"><source src="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-reader" data="""
+00:00:00.720 An introduction to the Emacs reader
+00:44.760 Yet another document viewer in Emacs?
+02:05.760 Architecture of Emacs Reader
+06:00.280 A word on dynamic modules
+07:39.560 Features of Emacs Reader
+07:56.760 Memory efficiency
+11:18.720 Performance and speed
+14:23.680 Scanned PDFs
+17:08.960 System-level multi-threading
+23:44.240 Native Emacs integrations
+25:10.340 (Naive) dark mode
+26:01.140 Challenges and further improvements
+29:14.272 What Emacs can learn?
+32:32.300 Contributing to the development
+33:35.520 Acknowledgements
+"""]]<div></div>Duration: 34:37 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-reader">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-reader.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.opus">Download --main.opus (30MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.png">Download --main.png</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-reader--an-introduction-to-the-emacs-reader--divy--main.webm">Download --main.webm (101MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/reference-before.md b/2025/info/reference-before.md
index 24211d1d..713e80d7 100644
--- a/2025/info/reference-before.md
+++ b/2025/info/reference-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 21-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-reference.html> Etherpad: <https://pad.emacsconf.org/2025-reference>
Etherpad: <https://pad.emacsconf.org/2025-reference>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:30:00Z" end="2025-12-06T14:55:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:30 AM - 9:55 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:30 AM - 8:55 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:30 AM - 7:55 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:30 AM - 6:55 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:30 PM - 2:55 PM UTC <br />Saturday, Dec 6 2025, ~3:30 PM - 3:55 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:30 PM - 4:55 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~8:00 PM - 8:25 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:30 PM - 10:55 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:30 PM - 11:55 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/sat-close-before.md b/2025/info/sat-close-before.md
index cffb29ff..7633a02e 100644
--- a/2025/info/sat-close-before.md
+++ b/2025/info/sat-close-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-sat-close.html> Etherpad: <https://pad.emacsconf.org/2025-sat-close>
Etherpad: <https://pad.emacsconf.org/2025-sat-close>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T21:00:00Z" end="2025-12-06T21:10:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~4:00 PM - 4:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~3:00 PM - 3:10 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~2:00 PM - 2:10 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~1:00 PM - 1:10 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~9:00 PM - 9:10 PM UTC <br />Saturday, Dec 6 2025, ~10:00 PM - 10:10 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~11:00 PM - 11:10 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~2:30 AM - 2:40 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~5:00 AM - 5:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~6:00 AM - 6:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md
index d5db33ba..178d7516 100644
--- a/2025/info/sat-open-before.md
+++ b/2025/info/sat-open-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 5-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-sat-open>
Etherpad: <https://pad.emacsconf.org/2025-sat-open>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:00:00Z" end="2025-12-06T14:10:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:00 AM - 9:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:00 AM - 8:10 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:00 AM - 7:10 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:00 AM - 6:10 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:00 PM - 2:10 PM UTC <br />Saturday, Dec 6 2025, ~3:00 PM - 3:10 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:00 PM - 4:10 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~7:30 PM - 7:40 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:00 PM - 10:10 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:00 PM - 11:10 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/schemacs-before.md b/2025/info/schemacs-before.md
index 530b1797..acdbb81c 100644
--- a/2025/info/schemacs-before.md
+++ b/2025/info/schemacs-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 24-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-schemacs.html> Etherpad: <https://pad.emacsconf.org/2025-schemacs>
Etherpad: <https://pad.emacsconf.org/2025-schemacs>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:30:00Z" end="2025-12-06T14:55:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:30 AM - 9:55 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:30 AM - 8:55 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:30 AM - 7:55 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:30 AM - 6:55 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:30 PM - 2:55 PM UTC <br />Saturday, Dec 6 2025, ~3:30 PM - 3:55 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:30 PM - 4:55 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~8:00 PM - 8:25 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:30 PM - 10:55 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:30 PM - 11:55 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/sun-open-after.md b/2025/info/sun-open-after.md
index 35dc6a0a..d30936b4 100644
--- a/2025/info/sun-open-after.md
+++ b/2025/info/sun-open-after.md
@@ -1,6 +1,142 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<div class="transcript transcript-mainVideo"><a name="sun-open-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Tracks""" start="00:00:00.000" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""Welcome to EmacsConf, where we have fun""" start="00:00:00.000" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""exploring just how much we can do with a text editor.""" start="00:00:02.247" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""There's a General track and a Development track,""" start="00:00:05.485" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""but really, you'll probably find""" start="00:00:07.925" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""interesting things on both tracks""" start="00:00:09.484" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""no matter what your level of experience is,""" start="00:00:11.079" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so don't feel limited to one or the other.""" start="00:00:13.216" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Watching and participating""" start="00:00:16.000" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""The best parts of EmacsConf are the conversations.""" start="00:00:16.000" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The wiki has a page on how to watch and participate,""" start="00:00:19.393" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and I'll give you a quick overview as well.""" start="00:00:22.486" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can watch both streams at live.emacsconf.org""" start="00:00:24.910" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""using free and open source software.""" start="00:00:28.885" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Using a streaming media player like mpv""" start="00:00:31.186" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""seems to be the best way to watch in terms of performance""" start="00:00:34.388" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""but there are also web-based players""" start="00:00:37.275" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""just in case that's all you've got.""" start="00:00:39.241" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The schedule shows the General track on top""" start="00:00:41.378" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and the Development track on the bottom,""" start="00:00:44.064" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so you can see what else is going on.""" start="00:00:45.603" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""As you're watching the talks,""" start="00:00:47.820" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""you can refer to the schedule in another window.""" start="00:00:49.819" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Hover over the boxes to see the times and titles,""" start="00:00:52.355" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and click on the boxes in the schedule""" start="00:00:55.601" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""to jump to the talk's page for more details.""" start="00:00:57.614" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Other schedule formats""" start="00:01:00.607" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""You can also get the schedule as an iCalendar file""" start="00:01:00.607" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or as an Org file in different time zones.""" start="00:01:03.587" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The Org file has some links to talk resources""" start="00:01:05.621" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and might be handy as a starting point for your notes.""" start="00:01:08.255" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""BigBlueButton""" start="00:01:10.601" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""Many talks will be followed by""" start="00:01:10.601" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""live Q&A web conferences with the speaker,""" start="00:01:12.145" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""which will be done in BigBlueButton or BBB.""" start="00:01:14.572" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""These are indicated with a solid border on the schedule""" start="00:01:17.734" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and by Q&A: BBB on the schedule page.""" start="00:01:20.819" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can join the web conference room""" start="00:01:24.001" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""by clicking on the BBB link""" start="00:01:25.901" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on the schedule page or the talk's webpage.""" start="00:01:27.467" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Then you can ask your questions yourself when the Q&A starts.""" start="00:01:30.176" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""To improve performance, please keep your webcam off""" start="00:01:34.215" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and stay muted until it's your turn to talk.""" start="00:01:37.211" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you don't like Javascript,""" start="00:01:39.890" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""you can still ask questions via IRC""" start="00:01:41.692" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and the hosts can read them out for you.""" start="00:01:43.643" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""On and off the stream""" start="00:01:46.036" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""We're probably going to automatically switch""" start="00:01:46.036" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""between talks and Q&A sessions,""" start="00:01:47.895" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so the transitions on the stream might be a little sudden.""" start="00:01:49.483" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""People in the BigBlueButton room""" start="00:01:52.897" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""can continue the conversation""" start="00:01:54.439" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""even after the talk moves off-stream,""" start="00:01:55.862" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and you can also reach out to the speakers""" start="00:01:58.220" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""using the contact information on the talk page.""" start="00:02:00.271" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Etherpad and IRC""" start="00:02:03.217" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""Other talks will have Q&A via Etherpad or IRC,""" start="00:02:03.217" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""depending on what the speakers prefer.""" start="00:02:06.302" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""This is indicated in the schedule with a dashed border""" start="00:02:08.542" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and on the schedule page as well.""" start="00:02:11.380" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The schedule pages have quick shortcuts so that you can""" start="00:02:13.510" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""find out more about talks, open the Etherpads,""" start="00:02:16.543" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and join the Q&A sessions.""" start="00:02:19.053" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The watch page has more tips""" start="00:02:21.204" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on how to make the most of Q&A.""" start="00:02:23.366" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Etherpad""" start="00:02:25.456" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""If you can, please add notes and ask questions""" start="00:02:25.456" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""in the Etherpad for the talk.""" start="00:02:28.330" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""That makes it easier""" start="00:02:30.133" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for everyone to share their notes,""" start="00:02:31.598" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and speakers and hosts can read the questions from there.""" start="00:02:33.130" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We'll copy the notes to the talk pages afterwards.""" start="00:02:36.355" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We have one pad for each talk,""" start="00:02:39.622" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so you can follow the links to get to the next one""" start="00:02:41.497" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or go back to the schedule and get the link from there.""" start="00:02:43.773" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you have general feedback about""" start="00:02:46.828" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""the conference itself, please put it in""" start="00:02:48.423" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""pad.emacsconf.org/emacsconf.""" start="00:02:50.668" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can also use this as a community message board""" start="00:02:54.593" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for things like Help Wanted.""" start="00:02:57.550" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""IRC""" start="00:02:59.440" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""Internet Relay Chat or IRC can be another great way""" start="00:02:59.440" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""to be part of lots of conversations.""" start="00:03:02.800" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can use chat.emacsconf.org to join the IRC channels""" start="00:03:05.176" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""through your web browser.""" start="00:03:09.451" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The tabs on the left can help you""" start="00:03:11.046" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""switch between the different channels.""" start="00:03:12.857" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""There's #emacsconf-gen for the General track""" start="00:03:14.892" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and #emacsconf-dev for the Development track.""" start="00:03:17.611" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you need to reach us, you can join #emacsconf-org""" start="00:03:20.490" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or e-mail emacsconf-org-private@gnu.org.""" start="00:03:23.957" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can use #emacsconf for hallway conversations.""" start="00:03:29.475" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Captions""" start="00:03:32.778" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""Once again, we're going to be streaming with open captions""" start="00:03:32.778" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for most of the talks this year, thanks to our speakers and""" start="00:03:35.588" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""captioning volunteers.""" start="00:03:38.480" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The captioned talks are indicated on the schedule,""" start="00:03:39.896" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and with any luck, we'll be posting""" start="00:03:42.523" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""videos and transcripts on talk pages""" start="00:03:44.313" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""shortly after the talks start.""" start="00:03:46.124" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you need additional accommodations, please let us know""" start="00:03:47.884" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""in #emacsconf-org and we'll see""" start="00:03:51.070" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""if we can make things happen.""" start="00:03:54.017" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""status.emacsconf.org""" start="00:03:55.238" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""If something goes down, we'll update status.emacsconf.org.""" start="00:03:55.238" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If it doesn't look like we've noticed yet,""" start="00:03:59.918" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""please let us know in the #emacsconf-org IRC channel,""" start="00:04:01.744" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""where we will be quietly panicking.""" start="00:04:05.263" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Guidelines for conduct""" start="00:04:07.282" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""In all of these conversations, please keep in mind""" start="00:04:07.282" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""our guidelines for conduct.""" start="00:04:09.705" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can find them on the wiki,""" start="00:04:11.239" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and they basically boil down to: please be nice. Thank you!""" start="00:04:12.620" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Videos""" start="00:04:16.020" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""If all goes well, the prerecorded talks and transcripts""" start="00:04:16.020" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""should be available from the talk pages""" start="00:04:18.892" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""shortly after they start playing,""" start="00:04:20.538" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and we'll post the recordings of live talks""" start="00:04:22.039" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and Q&A sessions within the next few weeks.""" start="00:04:24.144" video="mainVideo-sun-open" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Let's get started!""" start="00:04:26.776" video="mainVideo-sun-open" id="subtitle"]]</div>[[!template text="""All right, let's get going.""" start="00:04:26.776" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You might see Leo Vivier, Corwin Brust,""" start="00:04:28.248" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and Amin Bandali hosting the various tracks.""" start="00:04:31.215" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""I will run around mostly backstage,""" start="00:04:33.954" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and you'll probably meet us in the closing remarks.""" start="00:04:35.768" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""That's also where we get to thank""" start="00:04:37.794" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""all the people and organizations""" start="00:04:39.244" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""who make EmacsConf possible.""" start="00:04:40.660" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Let's have fun at EmacsConf!""" start="00:04:42.550" video="mainVideo-sun-open" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks)
diff --git a/2025/info/sun-open-before.md b/2025/info/sun-open-before.md
index 4bd9cb93..288e7cf8 100644
--- a/2025/info/sun-open-before.md
+++ b/2025/info/sun-open-before.md
@@ -8,12 +8,27 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 5-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-sun-open>
Etherpad: <https://pad.emacsconf.org/2025-sun-open>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Ready to stream
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T14:00:00Z" end="2025-12-07T14:10:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~9:00 AM - 9:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~8:00 AM - 8:10 AM CST (US/Central)<br />Sunday, Dec 7 2025, ~7:00 AM - 7:10 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~6:00 AM - 6:10 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~2:00 PM - 2:10 PM UTC <br />Sunday, Dec 7 2025, ~3:00 PM - 3:10 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~4:00 PM - 4:10 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~7:30 PM - 7:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~10:00 PM - 10:10 PM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~11:00 PM - 11:10 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-open"><source src="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-sun-open--sunday-opening-remarks--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-sun-open--sunday-opening-remarks--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-sun-open" data="""
+00:00.000 Tracks
+00:16.000 Watching and participating
+01:00.607 Other schedule formats
+01:10.601 BigBlueButton
+01:46.036 On and off the stream
+02:03.217 Etherpad and IRC
+02:25.456 Etherpad
+02:59.440 IRC
+03:32.778 Captions
+03:55.238 status.emacsconf.org
+04:07.282 Guidelines for conduct
+04:16.020 Videos
+04:26.776 Let's get started!
+"""]]<div></div>Duration: 04:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-sun-open">Open Etherpad</a></li><li><a href="https://pad.emacsconf.org/2025-sun-open">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (15MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/swanky-before.md b/2025/info/swanky-before.md
index 6b3006bf..a374e6d9 100644
--- a/2025/info/swanky-before.md
+++ b/2025/info/swanky-before.md
@@ -8,8 +8,8 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06.
Format: 22-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2025-swanky>
Etherpad: <https://pad.emacsconf.org/2025-swanky>
Discuss on IRC: [#emacsconf-dev](https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev)
-Status: Q&A open for participation
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T15:45:00Z" end="2025-12-06T16:10:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:45 AM - 11:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:45 AM - 10:10 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:45 AM - 9:10 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:45 AM - 8:10 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:45 PM - 4:10 PM UTC <br />Saturday, Dec 6 2025, ~4:45 PM - 5:10 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:45 PM - 6:10 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:15 PM - 9:40 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:45 PM - 12:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:45 AM - 1:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
+Status: Q&A finished, IRC and pad will be archived on this page
+
diff --git a/2025/info/weights-before.md b/2025/info/weights-before.md
index 87ab3e57..134f24c3 100644
--- a/2025/info/weights-before.md
+++ b/2025/info/weights-before.md
@@ -8,12 +8,12 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-weights.html> Etherpad: <https://pad.emacsconf.org/2025-weights>
Etherpad: <https://pad.emacsconf.org/2025-weights>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Waiting for video from speaker
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T15:35:00Z" end="2025-12-07T15:45:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~10:35 AM - 10:45 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~9:35 AM - 9:45 AM CST (US/Central)<br />Sunday, Dec 7 2025, ~8:35 AM - 8:45 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~7:35 AM - 7:45 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~3:35 PM - 3:45 PM UTC <br />Sunday, Dec 7 2025, ~4:35 PM - 4:45 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~5:35 PM - 5:45 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~9:05 PM - 9:15 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~11:35 PM - 11:45 PM +08 (Asia/Singapore)<br />Monday, Dec 8 2025, ~12:35 AM - 12:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
-
+<div class="vid mainVideo"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-weights">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-weights.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--intro.webm">Download --intro.webm</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/zettelkasten-after.md b/2025/info/zettelkasten-after.md
index 6f49c206..d7556a30 100644
--- a/2025/info/zettelkasten-after.md
+++ b/2025/info/zettelkasten-after.md
@@ -1,6 +1,515 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<div class="transcript transcript-mainVideo"><a name="zettelkasten-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.400" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""Hello there, fellow basement dwellers.""" start="00:00:01.400" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I'm Christian and you are watching &quot;""" start="00:00:03.939" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Zettelkasten for Regular Emacs Hackers,&quot;""" start="00:00:05.959" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""my Emacs Conference 2025 talk submission.""" start="00:00:08.520" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""In this presentation,""" start="00:00:12.921" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I'll be showing you a couple of things""" start="00:00:14.001" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""about Zettelkasten, very basic mechanics and habits""" start="00:00:15.701" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that you can pick up and implement in Emacs,""" start="00:00:18.702" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the most malleable of all environments,""" start="00:00:21.623" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to make a thinking environment happen in your life""" start="00:00:24.443" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that stays with you potentially forever.""" start="00:00:27.824" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The subtitle &quot;For Regular Emacs Hackers&quot; implies at least""" start="00:00:32.435" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the possibility of irregular Emacs hackers""" start="00:00:36.056" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and regular Emacs non-hackers, so the target audience here""" start="00:00:38.357" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""is people who are comfortable tweaking their setup""" start="00:00:42.499" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""when they run into issues and use Emacs to write,""" start="00:00:45.120" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""no matter if it's prose or code.""" start="00:00:47.981" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So that's regular Emacs hacking.""" start="00:00:49.981" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You don't need to be an irregular Emacs hacker,""" start="00:00:53.632" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for example, being a core maintainer or whatever.""" start="00:00:55.615" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You just need to be a normal user""" start="00:00:58.760" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""who also modifies the setup.""" start="00:01:01.244" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""However, you should probably not be an Emacs non-hacker.""" start="00:01:06.680" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Or maybe you shouldn't stay an Emacs non-hacker,""" start="00:01:10.302" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""someone who is not tweaking their setup ever.""" start="00:01:12.782" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So, if you just open your application""" start="00:01:16.003" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to write with a double click,""" start="00:01:18.821" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and it happens to be Emacs, this may not be for you,""" start="00:01:20.241" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but you ultimately be the judge there.""" start="00:01:23.284" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Advocating Freedoms""" start="00:01:25.534" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""It is my sacred duty to, of course,""" start="00:01:25.534" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""advocate all the essential freedoms during this presentation.""" start="00:01:28.745" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""These are the following.""" start="00:01:32.666" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You shall not be shackled by a proprietary tool.""" start="00:01:34.508" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""(You shall be shackled by Emacs. (Which is free software.))""" start="00:01:37.390" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You shall also not be shackled by an esoteric method""" start="00:01:40.792" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that turns out to be a grift""" start="00:01:44.115" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""where you need to visit annual workshops, walk on broken glass""" start="00:01:45.276" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and stuff to be a true &quot;&quot;knower&quot;&quot;.""" start="00:01:47.898" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You shall be empowered to do great things""" start="00:01:50.400" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for the rest of your life after this session alone.""" start="00:01:52.881" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This is not a sales pitch.""" start="00:01:55.884" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Finally, you should also not be shackled""" start="00:01:58.871" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""by whichever sources of information you rely on in the future.""" start="00:02:00.652" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You shall be free to think and explore new ideas,""" start="00:02:05.040" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""ideally forever, in an environment you built to your liking,""" start="00:02:07.854" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""without the degrading web searches and the dead internet""" start="00:02:12.176" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""getting in your way. No libraries, no dead trees.""" start="00:02:15.797" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's you and your knowledge base""" start="00:02:18.858" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that can truly produce magnificent things.""" start="00:02:21.539" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What Is This About?""" start="00:02:29.680" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""So what is this about? In the teaser text for this session,""" start="00:02:29.680" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I brought up that when people talk about Emacs""" start="00:02:33.587" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""pulling in everything that people do on their computer,""" start="00:02:36.149" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""it's usually things they used other software for in the past.""" start="00:02:38.932" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Like email, chat, playing music, browsing the web,""" start="00:02:42.615" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""managing tasks, you know, stuff like that.""" start="00:02:46.058" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""We don't have a good blueprint for thinking environments though.""" start="00:02:48.820" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So it's not a trivial task,""" start="00:02:51.762" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""just port this or that to Emacs""" start="00:02:53.264" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you'll be happy and productive.""" start="00:02:54.745" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's different from doing your emails""" start="00:02:56.706" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""or task management or writing in Emacs,""" start="00:02:58.200" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""where we have a lot of experience with existing software""" start="00:03:00.329" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to adapt and deviate from, where we can essentially""" start="00:03:02.951" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""port the task to Emacs. We can practice to think,""" start="00:03:06.414" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""purposefully and productively, on complex things""" start="00:03:09.856" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""over long periods of time""" start="00:03:12.999" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""when we create bespoke environments that help with that.""" start="00:03:14.460" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The first assumption is this:""" start="00:03:19.060" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Writing is very important to form complex thought.""" start="00:03:20.468" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Without writing, you won't be able to cross""" start="00:03:24.059" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""a certain complexity threshold.""" start="00:03:26.280" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Thinking in your head alone without any externalization""" start="00:03:28.761" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""makes you prone to loops, repetitions,""" start="00:03:31.922" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and worst of all: jumps.""" start="00:03:34.262" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Jumps that get you to a point,""" start="00:03:36.143" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but not backed by reason or argument.""" start="00:03:38.563" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So you and your future and others cannot follow.""" start="00:03:40.724" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Written words direct thought.""" start="00:03:46.502" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The linearization or sequence-making of thoughts""" start="00:03:48.363" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""frames your next idea. That's the same for reading,""" start="00:03:51.985" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""which enables you to pick up existing ideas""" start="00:03:55.307" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and continue to write about them later.""" start="00:03:57.308" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So for &quot;good thinking&quot;, writing, reading,""" start="00:04:00.250" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and writing is mandatory.""" start="00:04:02.811" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Emacs is good at showing text to read.""" start="00:04:05.073" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's good at processing keyboard inputs to write.""" start="00:04:07.194" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So let's go. Let's set up an environment within Emacs""" start="00:04:09.635" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to make this thinking thing happen.""" start="00:04:13.177" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I'll walk you through some mechanics""" start="00:04:16.320" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""of the Zettelkasten machine and habits for you,""" start="00:04:18.060" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""dear thinker and regular Emacs hacker.""" start="00:04:20.882" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And for your reference, highlight these things""" start="00:04:22.901" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""as I present them in the bottom left corner of the screen.""" start="00:04:25.886" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So working with Zettelkasten as a thinking environment""" start="00:04:30.469" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""only requires very simple mechanics.""" start="00:04:33.191" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Write - Essential Mechanic""" start="00:04:36.534" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""First one is to write. I mentioned this.""" start="00:04:36.534" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It could be one large text file, could be many small ones.""" start="00:04:39.640" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""We use the power of Emacs and small files because Emacs is cool,""" start="00:04:42.489" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and individual files put boundaries around ideas""" start="00:04:46.360" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that force you to decide what goes where.""" start="00:04:49.355" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Most importantly though, write like you mean it.""" start="00:04:52.663" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The principle of &quot;garbage in and garbage out&quot; holds.""" start="00:04:55.687" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You don't need to use your novelist voice when taking notes,""" start="00:04:58.511" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but it also shouldn't be shorthand only,""" start="00:05:01.375" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""so that your future you has an easy time""" start="00:05:04.138" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""reading and digesting what you wrote.""" start="00:05:06.795" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Connect - Essential Mechanic""" start="00:05:09.601" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""Next mechanic, which is also essential, is to connect.""" start="00:05:09.601" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""We think in associations.""" start="00:05:13.525" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Connect notes to capture the associations that come to mind""" start="00:05:15.000" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and that you want the reader, which is the future you,""" start="00:05:18.640" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to make. Traveling a path of connections""" start="00:05:20.917" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""indirectly via tags or keywords""" start="00:05:24.075" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and directly with links""" start="00:05:25.836" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""can feel like reading an essay you make up as you go.""" start="00:05:27.097" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's where connections show their power.""" start="00:05:30.721" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Correct - Essential Habit""" start="00:05:34.268" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""The next essential habit is to read and correct""" start="00:05:34.268" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and reconnect as you go.""" start="00:05:38.261" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You spend time and effort at the writing stage,""" start="00:05:40.181" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you are the primary audience,""" start="00:05:42.312" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""so do your past self a favor and read what you wrote.""" start="00:05:43.793" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And then as you read it, make it better.""" start="00:05:46.896" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Make it better, continuously make things better""" start="00:05:50.479" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and capture new ideas as they come up as you read.""" start="00:05:52.341" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And things you can only now remember""" start="00:05:55.223" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""because you learned about things in the meantime.""" start="00:05:57.785" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You'll also get better at this whole thing with practice.""" start="00:06:00.928" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So improve old notes when you find them lacking in detail,""" start="00:06:03.430" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""their tone pretentious, their mere existence""" start="00:06:05.867" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""an insult to your intelligence.""" start="00:06:08.576" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Pay [knocks on table] attention [knocks again]""" start="00:06:10.896" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to pain points in using notes.""" start="00:06:11.736" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Yes, I knocked on my desk to emphasize.""" start="00:06:13.640" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And fix things on the fly.""" start="00:06:16.560" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""From this principle follows""" start="00:06:18.602" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""a lot of common practices and tips.""" start="00:06:19.803" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This principle truly is essential.""" start="00:06:22.064" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Too long and you didn't read it?""" start="00:06:24.126" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Add a summary at the beginning.""" start="00:06:25.547" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You can't understand what you wrote a year ago?""" start="00:06:27.228" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Do your best to rewrite it in your own words.""" start="00:06:30.090" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It only gets worse if you wait longer.""" start="00:06:32.512" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Can't find anything in the mess?""" start="00:06:35.100" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Collect links to what you could find""" start="00:06:37.116" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""in a new &quot;meta&quot; note so next time,""" start="00:06:39.138" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you have a navigational help.""" start="00:06:41.660" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This practice will form the basis""" start="00:06:43.241" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for structure notes, maps, and overviews,""" start="00:06:44.862" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""which we will come to later.""" start="00:06:46.734" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Design for Use - Habit""" start="00:06:49.434" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""The next habit, non-essential though,""" start="00:06:49.434" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""is to create notes with intent to use them.""" start="00:06:52.072" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's one thing to write about facts, capture information,""" start="00:06:55.333" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but all this is just collecting stuff.""" start="00:06:58.134" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's another thing altogether to write about""" start="00:07:01.355" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""a train of thought, about an argument you found compelling,""" start="00:07:03.616" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""about a model to understand the world, or yourself,""" start="00:07:06.557" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""in a better way. So collect to remember,""" start="00:07:09.859" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but work in your Zettelkasten to think.""" start="00:07:12.900" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""What does that even mean, though?""" start="00:07:16.261" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Recreate how intriguing books""" start="00:07:18.222" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""lay out their premises and arguments, for example.""" start="00:07:19.823" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""First this, then that, also that supports the premise,""" start="00:07:21.804" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and so on. That's the structure of an argument.""" start="00:07:24.886" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You can recreate it in list form, as a graph,""" start="00:07:27.408" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you can draw and import the image, whatever.""" start="00:07:30.550" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The structure of that argument is one thing,""" start="00:07:33.501" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and the details, like the evidence for each claim,""" start="00:07:36.113" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""can be separate things.""" start="00:07:38.334" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""These can become their own sub-networks over time.""" start="00:07:40.000" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Create Structure - Mechanic""" start="00:07:43.920" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""To facilitate all that,""" start="00:07:43.920" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you will be needing to create structures.""" start="00:07:45.471" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You've connected notes, so links already leave trails""" start="00:07:47.932" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to traverse between your notes.""" start="00:07:50.613" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Structures can emerge from these with a sheer volume,""" start="00:07:52.520" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but they also can be designed by you to be""" start="00:07:55.930" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""navigational hubs of similar shape and form over time.""" start="00:07:58.617" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Patterns like that reduce confusion""" start="00:08:02.259" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and improve feeling at home""" start="00:08:04.241" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and finding your way around, so that's worth investing in.""" start="00:08:05.801" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""For example, use outlines for complex topics.""" start="00:08:09.223" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Tables of contents of a book, for example,""" start="00:08:13.405" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that you love and processed in great detail.""" start="00:08:15.248" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Just recreate the table of contents,""" start="00:08:17.320" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the nested structure of it, in your notes,""" start="00:08:19.493" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you have something to hang your future thoughts onto.""" start="00:08:23.038" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Another example is a pro/contra table or list""" start="00:08:28.197" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to discuss opposing facets and perspective of a thing.""" start="00:08:31.518" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Another example would be models or metaphors""" start="00:08:35.479" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like the iceberg model""" start="00:08:37.831" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""where you point out something has a hidden depth to it""" start="00:08:39.061" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""or the metaphor of a tree to model a thing""" start="00:08:42.182" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""as a branching and growing idea.""" start="00:08:44.382" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Start in the Zettelkasten - Mechanic""" start="00:08:47.968" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""Another habit which is also not essential""" start="00:08:47.968" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""is to start in your Zettelkasten.""" start="00:08:50.435" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Starting in your Zettelkasten removes the cost of deciding""" start="00:08:52.455" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""what goes in there and what doesn't.""" start="00:08:55.256" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It gets you moving and up to speed""" start="00:08:57.517" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""with the method and the tool much easier.""" start="00:08:59.637" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Importing stuff later into the Zettelkasten""" start="00:09:03.278" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""can feel like a chore,""" start="00:09:05.079" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but starting the work you need to do anyway in it?""" start="00:09:06.199" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That reduces the mental hurdle.""" start="00:09:09.260" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""As a regular Emacs hacker,""" start="00:09:11.561" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you'll eventually develop your own tools""" start="00:09:12.922" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to make initial exploration smoother over time,""" start="00:09:14.583" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like do you start in a particular place""" start="00:09:17.304" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""or just create a new note from scratch somewhere.""" start="00:09:19.545" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You won't know this until you experience this stuff""" start="00:09:22.520" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for a while and try different things.""" start="00:09:25.027" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So don't worry and be open for change.""" start="00:09:26.868" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Start with a Link - Mechanic""" start="00:09:32.401" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""The final habit, also non-essential, is to start with a link""" start="00:09:32.401" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and not with the creation of a new file.""" start="00:09:36.370" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Start with a link, create the file later.""" start="00:09:38.452" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This avoids orphaned notes.""" start="00:09:40.513" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Orphaned notes are those no others are linking to.""" start="00:09:42.474" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""To these you can only get with a full-text search""" start="00:09:45.897" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""or maybe by accident when you browse your notes,""" start="00:09:48.458" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but there is no orderly way to get to them.""" start="00:09:51.300" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Recap""" start="00:09:54.568" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""To recap: Write. Don't be sloppy.""" start="00:09:54.568" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Put in effort early to get faster at this.""" start="00:09:58.534" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This is essential, because without putting effort""" start="00:10:00.601" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""into writing, you won't have anything to use.""" start="00:10:04.160" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Connect and leave trails to navigate.""" start="00:10:08.134" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That can tell a story when you traverse the trail later.""" start="00:10:10.501" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This is essential because without connection,""" start="00:10:13.620" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you will not get anywhere.""" start="00:10:16.541" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Correct and improve things as you go.""" start="00:10:18.601" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The last essential thing: well,""" start="00:10:20.301" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""don't worry about perfection, and then,""" start="00:10:21.840" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""be gentle to your past self.""" start="00:10:24.142" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Adapt to what you learn along the way.""" start="00:10:25.803" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's essential, because without this attitude,""" start="00:10:27.977" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you can easily get stuck in analysis paralysis,""" start="00:10:31.125" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like where do I need to put this,""" start="00:10:33.746" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""or what would be the perfect way to phrase this.""" start="00:10:35.040" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Design for use. This helps both finding your voice,""" start="00:10:37.368" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and to have criteria for selecting""" start="00:10:40.734" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""what to spend time and effort on in the first place.""" start="00:10:42.820" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It takes into account the opportunity cost""" start="00:10:45.234" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""of high quality work from writing and connecting.""" start="00:10:47.350" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Create structures. You won't be able to scale""" start="00:10:50.251" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and stay organized and find your way around""" start="00:10:53.334" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""without structures. You can practice this early""" start="00:10:55.877" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and design structures deliberately,""" start="00:10:58.540" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but it's also okay to ignore this for a while and wing it.""" start="00:11:00.600" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So it's not marked essential,""" start="00:11:03.985" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""although it may hurt you sooner than later.""" start="00:11:05.747" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The habit to start in the Zettelkasten?""" start="00:11:08.940" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Well, do the work you need to do in a place""" start="00:11:10.892" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that can pay back dividends""" start="00:11:13.794" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""on the effort you put in.""" start="00:11:15.480" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's powerful, but also not essential.""" start="00:11:16.716" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You could just as well continue to write and think""" start="00:11:19.258" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and scribble somewhere else,""" start="00:11:21.620" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then do the Zettelkasten importing stuff later.""" start="00:11:23.461" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Start with a link.""" start="00:11:27.424" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's really useful practice,""" start="00:11:28.440" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but more like a lifehack and not an essential habit.""" start="00:11:30.246" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So you can also create new files from scratch""" start="00:11:33.207" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for ideas that come up as they come up""" start="00:11:35.348" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then try to connect them later.""" start="00:11:38.050" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Well, that's better than not writing at all, right?""" start="00:11:39.611" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So if you look at this, you may ask yourself,""" start="00:11:42.732" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""why is this create structure thing a mechanic and not a habit?""" start="00:11:44.748" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""What's the difference? It seems kind of random.""" start="00:11:48.320" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Well, do create structures as an imperative""" start="00:11:50.877" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""is a good habit, yes.""" start="00:11:53.919" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Structures facilitate growth of the Zettelkasten""" start="00:11:55.280" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and help you discover useful patterns""" start="00:11:57.982" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and the things you care about.""" start="00:11:59.563" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Patterns that work for you personally,""" start="00:12:00.680" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""which make navigation easier""" start="00:12:03.445" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""because they fit your personal expectations""" start="00:12:04.725" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for what is and what is not.""" start="00:12:07.606" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's something for you to do. That's a process.""" start="00:12:10.587" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""But from the perspective of the Zettelkasten as a system,""" start="00:12:13.848" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that's a mechanic or rather dynamic,""" start="00:12:18.149" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the Zettelkasten grows organically.""" start="00:12:20.610" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Thanks to your constant intervention and usage of course.""" start="00:12:23.150" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's how time passes in your Zettelkasten.""" start="00:12:25.311" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's how a process of transformation enters the system.""" start="00:12:27.632" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The transformation affects the network.""" start="00:12:32.273" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Every new or updated note,""" start="00:12:34.801" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""every new connection changes the network.""" start="00:12:36.256" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The existing network then imposes demands""" start="00:12:38.558" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for new stuff to fit in, slowly solidifying""" start="00:12:40.719" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""how things are organized to be perceived as orderly.""" start="00:12:43.680" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This is calcifying.""" start="00:12:47.364" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's emergent creation of structure from use.""" start="00:12:49.085" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Structure here is expectation for what could come next.""" start="00:12:52.327" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""On top of this interplay of emergent structure""" start="00:12:56.269" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""in your notes and processes""" start="00:12:58.650" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that operate these constraints,""" start="00:13:00.191" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you can design and influence and architect""" start="00:13:01.872" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and have explicit structures and patterns,""" start="00:13:04.373" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and therefore you can influence what is expected,""" start="00:13:06.874" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""what is unexpected and what fits""" start="00:13:09.634" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and what needs to change to fit in.""" start="00:13:11.837" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So the time you spend designing these things""" start="00:13:14.258" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""will influence how the Zettelkasten""" start="00:13:18.140" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""will behave in the future.""" start="00:13:20.301" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Facilitate Growth""" start="00:13:22.034" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""To prepare for growth""" start="00:13:22.034" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you will probably encounter thresholds along your journey.""" start="00:13:24.062" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Like 1-10 notes, well,""" start="00:13:27.534" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you can easily remember all of them.""" start="00:13:29.268" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""10-100, you will have forgotten some details,""" start="00:13:31.301" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but will probably remember writing most of these notes""" start="00:13:34.334" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""in some way. 100-1000?""" start="00:13:37.068" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Bad luck, you will have a hard time going through everything""" start="00:13:40.240" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""one by one to find what you have. You will have to rely on""" start="00:13:42.920" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""filtering results. For example, with a full text search,""" start="00:13:46.440" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you will crave to use tags and keywords more""" start="00:13:50.088" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to group notes into more manageable departments or collections.""" start="00:13:53.493" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""By this mark, search results produce way too many results.""" start="00:14:02.040" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Popular tags become overcrowded,""" start="00:14:05.880" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and you have the same problem you had in the last stage,""" start="00:14:07.968" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but for each of these tags.""" start="00:14:10.070" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So manual structures will take you through this.""" start="00:14:12.520" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Anticipate growth pains by starting from structures.""" start="00:14:15.780" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's the recommendation here. Design your entry points""" start="00:14:18.920" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""into your current projects and research topics""" start="00:14:22.120" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and interests as 'departments' of your Zettelkasten.""" start="00:14:24.168" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Keep a list of, for example, 12 darlings,""" start="00:14:28.160" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like Feynman did: a list of 12 things""" start="00:14:31.162" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that you can check mechanically""" start="00:14:34.125" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""where you capture something new,""" start="00:14:35.486" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you can see whether the newfound knowledge""" start="00:14:36.927" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""can also push one of your darling projects forward.""" start="00:14:39.890" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs demo""" start="00:14:46.140" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""Now, finally, let's get to the demonstration in Emacs.""" start="00:14:46.140" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Here is a very minimal init file.""" start="00:14:50.223" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I will share it with you in the show notes.""" start="00:14:52.335" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And this is the Denote default configuration.""" start="00:14:55.739" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Here I'm using the shortcut to create a new note""" start="00:14:59.540" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""immediately for this talk. And there you see.""" start="00:15:02.440" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's an empty new note. Here,""" start="00:15:08.595" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""sped up like two or three times the normal typing speed of me,""" start="00:15:10.497" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""is how I would process this very Emacs conference talk.""" start="00:15:16.421" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The essential mechanics and habits, additional habits,""" start="00:15:21.786" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""mechanics, and then from there after I capture everything.""" start="00:15:25.669" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Make sure that I have a reference.""" start="00:15:30.112" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This is not a thought-out implementation in Emacs,""" start="00:15:32.054" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""so this is just plain text. Christian Tietze,""" start="00:15:36.137" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Zettelkasten for Regular Emacs Hackers at the bottom.""" start="00:15:39.040" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You can use reference management systems that you like,""" start="00:15:42.147" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but I don't want to get into these details.""" start="00:15:46.586" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Here I'm creating a note with the denote shortcut.""" start="00:15:49.234" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Based on the selected text,""" start="00:15:54.368" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I'm starting a link. This link is creating the note for me.""" start="00:15:56.400" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's also default Denote functionality""" start="00:16:01.100" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and garbage in garbage out.""" start="00:16:04.641" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I needed to edit the title because the selected text""" start="00:16:05.721" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""became the note title. Didn't want that.""" start="00:16:08.023" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That was the abbreviation.""" start="00:16:10.044" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Notice that the default configuration does not in fact""" start="00:16:13.336" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""include auto-fill-mode, so the lines get infinitely long.""" start="00:16:16.221" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Looks a bit weird. Just garbage in, garbage out.""" start="00:16:20.528" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Processing this from Wikipedia.""" start="00:16:23.654" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So we have a detail note from this overview.""" start="00:16:27.921" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So that's an overview with one link already.""" start="00:16:31.864" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Starting from here, now I want to write more about my talk.""" start="00:16:34.266" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And next we create structure, types of structures, etc.""" start="00:16:38.669" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It creates a weird link, but I can edit this easily""" start="00:16:43.773" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""thanks to Emacs being so nice to work with.""" start="00:16:46.836" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""A couple of examples. I mentioned some of these""" start="00:16:51.923" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""in previous minutes of this conference talk,""" start="00:16:55.324" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like position pair, one note for the pair,""" start="00:16:58.605" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""one note per pro and contra, table of contents,""" start="00:17:00.585" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""like lists of things you like,""" start="00:17:03.922" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to talk about recreating a book's content,""" start="00:17:06.406" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""table of contents so you can process the book in detail,""" start="00:17:10.608" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""argument structures, I believe I mentioned these.""" start="00:17:14.309" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Look at this up if you're not into arguments,""" start="00:17:16.840" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but arguments are very well structured, usually.""" start="00:17:19.371" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""A table of things like two-dimensional table or grid.""" start="00:17:22.913" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Graphics. You can also include graphics, images,""" start="00:17:26.134" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then write about these. And then there are metaphors.""" start="00:17:28.335" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And into one metaphor that I'm presenting here,""" start="00:17:31.637" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""iceberg, black box, and then atom, molecule, and organism,""" start="00:17:33.798" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I want to get into this. Atom, molecule, organism.""" start="00:17:37.539" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's a composition and recursion""" start="00:17:40.401" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""because I have Big Ideas there. Atom, smallest part;""" start="00:17:43.924" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""molecule, comprised of atoms;""" start="00:17:47.800" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and organism is comprised of molecules.""" start="00:17:49.568" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Different level of analysis. Because this is irreducible.""" start="00:17:51.969" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""In fact, if you have no clue about reducibility,""" start="00:17:56.433" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""irreducibility -- that doesn't mean much to you? --""" start="00:17:59.155" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but look this up. You can go very deep""" start="00:18:02.197" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""with this kind of stuff. It's basically that if you""" start="00:18:05.979" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""decompose organs into atoms,""" start="00:18:10.618" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you cannot get back to the organs.""" start="00:18:12.523" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You just have a bunch of atoms. There's information loss,""" start="00:18:14.126" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""more or less.""" start="00:18:17.073" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Here you see that I create a new thing at the end""" start="00:18:19.880" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""so that I can write about Denote. The tool doesn't matter,""" start="00:18:24.247" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but when you use Emacs, use Denote because, well, why?""" start="00:18:26.950" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Let's get into this. Fix the link.""" start="00:18:31.835" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""These are good reasons to use Denote.""" start="00:18:35.458" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Denote is very simple. Denote has a couple of sane defaults.""" start="00:18:37.280" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That makes life easier. Backlinks.""" start="00:18:44.380" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""We will see a backlink view at the end.""" start="00:18:47.079" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I have to create a couple of things.""" start="00:18:51.141" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I'm copying the source code there, the Elisp source,""" start="00:18:52.398" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""so that you can see, hey, this is just an Org Mode file.""" start="00:18:55.965" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You can style it to your liking""" start="00:19:01.668" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you can even execute the code if you want.""" start="00:19:03.630" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Very powerful. Create notes as links first to avoid orphans.""" start="00:19:06.752" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Forward link again.""" start="00:19:13.295" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""At least I wanted to create a forward link.""" start="00:19:14.676" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""I pressed the wrong shortcut.""" start="00:19:16.016" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""But anyway, I can fix this easily.""" start="00:19:17.037" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You see, there's no link. Dammit.""" start="00:19:19.738" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Now I need to create the link after the fact.""" start="00:19:23.480" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Here's a list of shortcuts. The denote keymap.""" start="00:19:26.762" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's a recommended practice by me,""" start="00:19:33.280" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""starting your note with a link.""" start="00:19:35.166" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You've heard this all just a couple of minutes ago.""" start="00:19:36.767" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It reduces orphans and supposedly teaches you""" start="00:19:40.640" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""about thinking in connections early.""" start="00:19:42.855" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""It's a good practice to practice.""" start="00:19:45.575" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""So with that note, trying to switch back.""" start="00:19:53.100" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Denote note switching, that wasn't as smooth,""" start="00:19:55.939" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""but inserting links is.""" start="00:20:00.120" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And there you go. Here's a backlink view. And that's it.""" start="00:20:01.320" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""In a somewhat self-documenting way,""" start="00:20:10.180" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""here you see a structure note""" start="00:20:12.652" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""which is an overview that represents the gist""" start="00:20:14.868" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""of this Emacs conference talk,""" start="00:20:17.683" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""with a couple of links to details.""" start="00:20:19.564" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""From these details, as you've seen,""" start="00:20:21.840" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""you can go into even more detail. That's all there is to it.""" start="00:20:24.108" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Repeat this for infinity,""" start="00:20:27.892" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and you get really really complex networks""" start="00:20:30.134" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and can do a lot of amazing things in parallel""" start="00:20:32.876" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""without interference.""" start="00:20:35.859" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Learn, Share, Grow""" start="00:20:39.068" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""I just want to stress that the Zettelkasten""" start="00:20:39.068" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""can help you to learn when you publish, when you share,""" start="00:20:42.440" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and when you grow it and yourself in the process.""" start="00:20:47.033" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Again, design the Zettelkasten to be used.""" start="00:20:51.182" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Publish something, write a blog, share stuff with co-workers.""" start="00:20:54.084" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That's powerful and that's so rewarding.""" start="00:20:58.160" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This can in turn influence how you do it""" start="00:21:00.486" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the next time in your Zettelkasten,""" start="00:21:04.040" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""because now you can anticipate these kinds of arguments,""" start="00:21:06.034" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""maybe I can do this early on,""" start="00:21:09.381" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you're prepared even more for the future""" start="00:21:11.980" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to share what you learn.""" start="00:21:15.134" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""You are also invited very warmly to our""" start="00:21:17.480" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""community of practice in the Zettelkasten forums.""" start="00:21:20.160" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Just share your journey, write about your projects,""" start="00:21:23.320" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""ask questions. Everyone's welcome, newbie to pro.""" start="00:21:26.156" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Just get in touch with people, talk about the processes,""" start="00:21:29.794" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""improve them, and eventually you'll figure out, well,""" start="00:21:32.675" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""reaching enlightenment in that regard may not be that hard after all,""" start="00:21:35.362" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and then you're fine and good to go for the next projects""" start="00:21:39.980" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that you tackle. Most importantly is to make this thing your own.""" start="00:21:42.954" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The Zettelkasten, the method, the environment.""" start="00:21:48.560" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Create a thinking environment for you.""" start="00:21:50.747" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Create your own tools to think with.""" start="00:21:53.475" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""This goes back to the meme of Shuhari,""" start="00:21:56.878" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""which is basically imitate and then deviate and innovate.""" start="00:21:59.379" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And this invitation here is to imitate what I just laid out.""" start="00:22:02.801" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Imitate for a couple of years. One, two, three years.""" start="00:22:07.124" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""The time goes by faster [snaps fingers] than you think.""" start="00:22:10.587" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And then figure out ways to deviate from the doctrine,""" start="00:22:12.928" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""to figure out ways to improve""" start="00:22:16.449" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and change the processes to fit you better.""" start="00:22:18.910" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""But you need to try to manifest""" start="00:22:22.031" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""the best practices in your life first,""" start="00:22:24.452" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for a while, to then figure out, well,""" start="00:22:26.653" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""they are not that best after all""" start="00:22:28.834" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and I need to change some of them.""" start="00:22:30.854" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""But you wouldn't know if you didn't try. So do try.""" start="00:22:33.055" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Yeah, and with that I want to thank you.""" start="00:22:37.065" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Thank you so much for watching. That's it.""" start="00:22:38.640" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""That was the conference talk,""" start="00:22:40.250" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""my short introduction to the Zettelkasten mechanics and habits.""" start="00:22:41.532" video="mainVideo-zettelkasten" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Outro""" start="00:22:45.297" video="mainVideo-zettelkasten" id="subtitle"]]</div>[[!template text="""I want to thank you so much for watching""" start="00:22:45.297" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and spending time with me on this topic,""" start="00:22:46.679" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""on these two topics actually,""" start="00:22:48.381" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""that are very near and dear to my heart.""" start="00:22:50.144" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Do share questions, ask questions in the etherpad.""" start="00:22:52.547" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""And if you watch this after the conference""" start="00:22:55.400" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""and all the live participation is long over,""" start="00:22:57.609" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""step into the forums and ask around there.""" start="00:23:01.191" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Thanks also to Sacha and team for organizing EmacsConf 2025,""" start="00:23:04.633" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""for having me. Well, I'm looking forward to hearing from""" start="00:23:09.235" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""every one of you. So that's it.""" start="00:23:11.596" video="mainVideo-zettelkasten" id="subtitle"]]
+[[!template text="""Peace out and see you in the next one.""" start="00:23:14.257" video="mainVideo-zettelkasten" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
Questions or comments? Please e-mail [hi@christiantietze.de](mailto:hi@christiantietze.de?subject=Comment%20for%20EmacsConf%202023%20zettelkasten%3A%20Zettelkasten%20for%20regular%20Emacs%20hackers)
diff --git a/2025/info/zettelkasten-before.md b/2025/info/zettelkasten-before.md
index a639d2a6..b9785474 100644
--- a/2025/info/zettelkasten-before.md
+++ b/2025/info/zettelkasten-before.md
@@ -8,12 +8,29 @@ The following image shows where the talk is in the schedule for Sun 2025-12-07.
Format: 24-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-zettelkasten.html> Etherpad: <https://pad.emacsconf.org/2025-zettelkasten>
Etherpad: <https://pad.emacsconf.org/2025-zettelkasten>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Ready to stream
+Status: Q&A open for participation
<div>Times in different time zones:</div><div class="times" start="2025-12-07T18:00:00Z" end="2025-12-07T18:25:00Z"><div class="conf-time">Sunday, Dec 7 2025, ~1:00 PM - 1:25 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 7 2025, ~12:00 PM - 12:25 PM CST (US/Central)<br />Sunday, Dec 7 2025, ~11:00 AM - 11:25 AM MST (US/Mountain)<br />Sunday, Dec 7 2025, ~10:00 AM - 10:25 AM PST (US/Pacific)<br />Sunday, Dec 7 2025, ~6:00 PM - 6:25 PM UTC <br />Sunday, Dec 7 2025, ~7:00 PM - 7:25 PM CET (Europe/Paris)<br />Sunday, Dec 7 2025, ~8:00 PM - 8:25 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~11:30 PM - 11:55 PM IST (Asia/Kolkata)<br />Monday, Dec 8 2025, ~2:00 AM - 2:25 AM +08 (Asia/Singapore)<br />Monday, Dec 8 2025, ~3:00 AM - 3:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-zettelkasten"><source src="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-zettelkasten" data="""
+00:01.400 Introduction
+01:25.534 Advocating Freedoms
+02:29.680 What Is This About?
+04:36.534 Write - Essential Mechanic
+05:09.601 Connect - Essential Mechanic
+05:34.268 Correct - Essential Habit
+06:49.434 Design for Use - Habit
+07:43.920 Create Structure - Mechanic
+08:47.968 Start in the Zettelkasten - Mechanic
+09:32.401 Start with a Link - Mechanic
+09:54.568 Recap
+13:22.034 Facilitate Growth
+14:46.140 Emacs demo
+20:39.068 Learn, Share, Grow
+22:45.297 Outro
+"""]]<div></div>Duration: 23:18 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-zettelkasten">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-zettelkasten.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main.opus">Download --main.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--main.webm">Download --main.webm (41MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-zettelkasten--zettelkasten-for-regular-emacs-hackers--christian-tietze--script.org">Download --script.org</a></li><li><a href="https://youtu.be/wE8vCWyr1Eo">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file