summaryrefslogtreecommitdiffstats
path: root/2025/captions
diff options
context:
space:
mode:
Diffstat (limited to '2025/captions')
-rw-r--r--2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main--chapters.vtt56
-rw-r--r--2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main.vtt775
-rw-r--r--2025/captions/emacsconf-2025-llm--emacs-editors-and-llm-driven-workflows--andrew-hyatt--answers.vtt158
-rw-r--r--2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main--chapters.vtt41
-rw-r--r--2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt770
-rw-r--r--2025/captions/emacsconf-2025-python--interactive-python-programming-in-emacs--david-vujic--answers.vtt150
6 files changed, 1439 insertions, 511 deletions
diff --git a/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main--chapters.vtt b/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main--chapters.vtt
new file mode 100644
index 00000000..9d9dc2ba
--- /dev/null
+++ b/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main--chapters.vtt
@@ -0,0 +1,56 @@
+WEBVTT
+
+
+00:00:00.000 --> 00:00:52.515
+Introduction
+
+00:00:52.516 --> 00:03:29.119
+Motivation
+
+00:03:29.120 --> 00:04:37.599
+My requirements
+
+00:04:37.600 --> 00:05:02.959
+Basic setup: corfu + eglot
+
+00:05:02.960 --> 00:06:44.879
+Looking at completion-at-point functions
+
+00:06:44.880 --> 00:08:10.899
+Making my own (basic) c-a-p-f for yasnippet: the completion properties
+
+00:08:10.900 --> 00:09:18.879
+Getting yas-kw-list right: What do I want?
+
+00:09:18.880 --> 00:11:33.840
+Diving in yasnippet
+
+00:11:33.840 --> 00:13:03.803
+Fine-tuning: adding cape
+
+00:13:03.804 --> 00:14:05.359
+Automatic snippet expansion
+
+00:14:05.360 --> 00:14:58.319
+Themes
+
+00:14:58.320 --> 00:15:48.583
+My check-list
+
+00:15:48.584 --> 00:16:58.039
+Takeaways
+
+00:16:58.040 --> 00:18:54.999
+Requests (to whom it may concern)
+
+00:18:55.000 --> 00:19:40.159
+Q: Did you try yasnippet-capf? If so, what did you miss from it that this approach has? Thanks! https://github.com/elken/yasnippet-capf
+
+00:19:40.160 --> 00:24:51.879
+A small demo
+
+00:24:51.880 --> 00:32:32.119
+Q: Do special characters in yasnippets work well too? example <FD ?
+
+00:32:32.120 --> 00:35:44.920
+Emacs Lisp
diff --git a/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main.vtt b/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main.vtt
index 49bf10f3..ba28468e 100644
--- a/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main.vtt
+++ b/2025/captions/emacsconf-2025-completion--corfuyasnippet-easier-than-i-thought--pedro-a-aranda-gutirrez--main.vtt
@@ -1,5 +1,7 @@
WEBVTT
+NOTE Introduction
+
00:00:00.000 --> 00:00:02.319
Nice to have you here on this talk.
@@ -16,7 +18,7 @@ Just as a side note, this presentation
that I'm going to share with you
00:00:16.280 --> 00:00:19.879
-about my work on Corfu and Jasnipit.
+about my work on Corfu and Yasnippet.
00:00:19.880 --> 00:00:21.839
I've prepared that on Org Mode
@@ -45,11 +47,16 @@ So just a short outline, my motivation,
00:00:46.960 --> 00:00:49.959
step-by-step of the things that I've been investigating,
-00:00:49.960 --> 00:00:55.919
-and some takeaways. So my motivation, yeah, snippet is old.
+00:00:49.960 --> 00:00:52.515
+and some takeaways.
+
+NOTE Motivation
+
+00:00:52.516 --> 00:00:55.919
+So my motivation, yasnippet is old.
00:00:55.920 --> 00:00:59.599
-So I've tried another, I've tried Temple
+So I've tried another. I've tried Tempel
00:00:59.600 --> 00:01:02.519
and other template management packages,
@@ -58,7 +65,7 @@ and other template management packages,
but it was really not my cup of tea. So mainly why?
00:01:08.160 --> 00:01:10.919
-Mainly because I have a nice base of VR snippets
+Mainly because I have a nice base of yasnippets
00:01:10.920 --> 00:01:14.479
I have generated for my needs.
@@ -78,53 +85,62 @@ And of course, migration counts as a cost.
00:01:26.560 --> 00:01:32.639
I've been using Company as my completion point function GUI for years,
-00:01:32.640 --> 00:01:38.919
-but with the time coming in features and so on it
+00:01:32.640 --> 00:01:38.167
+but with the time coming in features and so on,
+
+00:01:38.168 --> 00:01:44.359
+it was not as easy to set up as I wanted for my needs.
+
+00:01:44.360 --> 00:01:47.181
+So I had been working,
-00:01:38.920 --> 00:01:44.359
-was it's was not as easy to set up as I wanted for my needs
+00:01:47.182 --> 00:01:49.839
+I've been playing with Eglot already some time
-00:01:44.360 --> 00:01:53.119
-so I had been working I've been playing with Eaglet already some time for a language server protocol
+00:01:49.840 --> 00:01:53.119
+for a language server protocol.
00:01:53.120 --> 00:01:57.039
-I had read about how easy it was to integrate with Corfu
+I had read about how easy it was to integrate with Corfu,
00:01:57.040 --> 00:02:02.839
-which was really nice and I had given it a try,
+which was really nice, and I had given it a try,
-00:02:02.840 --> 00:02:06.439
+00:02:02.840 --> 00:02:10.250
but I'm using both graphical user interface mode in Emacs
-00:02:06.440 --> 00:02:07.839
+00:02:10.251 --> 00:02:11.000
and text mode,
-00:02:07.840 --> 00:02:10.319
-and for text mode you need a corporate terminal,
+00:02:11.001 --> 00:02:13.042
+and for text mode you need corfu-terminal,
-00:02:10.320 --> 00:02:16.399
-which was yet another package that I don't download.
+00:02:13.043 --> 00:02:16.399
+which was yet another package that I didn't download.
00:02:16.400 --> 00:02:21.479
Well, and I didn't really find a quick way
00:02:21.480 --> 00:02:24.479
-to get rid of company to get just snippet.
+to get rid of company to get yasnippet.
00:02:24.480 --> 00:02:26.679
So at the end, when, at the beginning,
-00:02:26.680 --> 00:02:33.959
-when I was using Corfu and Eglot, I also needed to load a company
+00:02:26.680 --> 00:02:30.107
+when I was using Corfu and Eglot,
+
+00:02:30.108 --> 00:02:33.959
+I also needed to load company
00:02:33.960 --> 00:02:35.759
-to have a snippet support,
+to have yasnippet support,
00:02:35.760 --> 00:02:37.639
which was really like sort of weird
00:02:37.640 --> 00:02:40.559
-because I wanted to get rid of, of your snippet.
+because I wanted to get rid of yasnippet.
00:02:40.560 --> 00:02:47.199
Anyhow, while I try now, I'm following the mailing list,
@@ -136,7 +152,7 @@ the development mailing list,
and I got interested when I heard something about
00:02:51.800 --> 00:02:57.119
-TTI charge frames being announced for master.
+TTY child frames being announced for master.
00:02:57.120 --> 00:02:59.599
That would mean less packages to download
@@ -145,7 +161,7 @@ That would mean less packages to download
because I thought I could get rid of Corfu,
00:03:04.160 --> 00:03:07.359
-and I wanted to try if I could get rid of Corfu terminal
+and I wanted to try if I could get rid of corfu-terminal
00:03:07.360 --> 00:03:11.199
and run Corfu without that.
@@ -157,43 +173,48 @@ So, there were some hints there in that mailing list
that made it interesting for me.
00:03:21.880 --> 00:03:26.639
-And at the end, I'm also like a why not trying man,
+And at the end, I'm also like a "why not try"ing man,
00:03:26.640 --> 00:03:29.119
-so I said let's give it a try.
+so I said, let's give it a try.
+
+NOTE My requirements
00:03:29.120 --> 00:03:33.479
My requirements, I'm working always on a new Emacs,
00:03:33.480 --> 00:03:36.759
-a decently new Emacs, normally from Master Vanilla.
+a decently new Emacs, normally from master, vanilla,
+
+00:03:36.760 --> 00:03:41.209
+completely vanilla, and I don't have any extras
-00:03:36.760 --> 00:03:42.559
-completely Vanilla and I don't have any extras like Doom or things like that.
+00:03:41.210 --> 00:03:42.559
+like Doom or things like that.
00:03:42.560 --> 00:03:45.519
-So I'm only Vanilla. And one of the things
+So I'm only vanilla. And one of the things
00:03:45.520 --> 00:03:50.279
-that I don't want is that on this Vanilla recent Emacs,
+that I don't want is that on this vanilla recent Emacs,
00:03:50.280 --> 00:03:55.719
-I don't want a Kung Fu Terminal. I need your snippet.
+I don't want a corfu-terminal. I need yasnippet.
00:03:55.720 --> 00:03:57.359
I'm basically an old man.
00:03:57.360 --> 00:04:02.479
-Old dog does new tricks and snippets must,
+Old dog doesn't do new tricks and snippets must,
00:04:02.480 --> 00:04:06.239
-in my way of working, must be easy and quick to configure
+in my way of working, must be easy and quick to configure,
00:04:06.240 --> 00:04:10.479
-and Tempo or others that I've seen are not.
+and tempel or others that I've seen are not.
00:04:10.480 --> 00:04:13.919
-I don't want any reminiscence of a company in my setup.
+I don't want any reminiscence of company in my setup.
00:04:13.920 --> 00:04:18.679
And of course, don't forget that I've embraced
@@ -205,10 +226,12 @@ the language protocol implementations and basically Eglot.
My main focus now is Python and LaTeX,
00:04:28.160 --> 00:04:31.719
-and I have PyLSB and TechLab.
+and I have pylsp and texlab.
00:04:31.720 --> 00:04:37.599
-And I don't want to have to stop using them.
+I don't want to have to stop using them.
+
+NOTE Basic setup: corfu + eglot
00:04:37.600 --> 00:04:40.479
So basic setup for Corfu and Eglot.
@@ -226,7 +249,7 @@ And actually, I also do something somehow naughty,
which is to set this variable,
00:04:53.080 --> 00:04:55.519
-the Corfu auto variable to true,
+the corfu-auto variable to true,
00:04:55.520 --> 00:04:58.399
although I know it's not recommended, blah, blah, blah.
@@ -234,53 +257,55 @@ although I know it's not recommended, blah, blah, blah.
00:04:58.400 --> 00:05:02.959
But I use that because I'm a bit lazy in that.
+NOTE Looking at completion-at-point functions
+
00:05:02.960 --> 00:05:07.239
So next step was looking at completion at point functions.
00:05:07.240 --> 00:05:10.479
-So the information there if you go through the scatter
+So the information there, if you go through, is scattered
-00:05:10.480 --> 00:05:13.999
+00:05:10.480 --> 00:05:13.739
and sometimes a bit cryptic.
-00:05:14.000 --> 00:05:16.599
+00:05:13.740 --> 00:05:16.599
At the end I came up with something like the thing
00:05:16.600 --> 00:05:18.399
that you see there on the screen.
00:05:18.400 --> 00:05:21.879
-So it's a function for just completion point
+It's a function for yas-completion-at-point.
00:05:21.880 --> 00:05:24.639
-so I need my list of keywords
+I need my list of keywords,
00:05:24.640 --> 00:05:30.039
-so that I'm going to be talking later
+so that I'm going to be talking later,
00:05:30.040 --> 00:05:34.399
-and I have my bounds which is normally a word
+and I have my bounds, which is normally a word,
00:05:34.400 --> 00:05:37.119
-and from that I get the start and the end
+and from that, I get the start and the end
-00:05:37.120 --> 00:05:38.919
-of the of the thing that I want to
+00:05:37.120 --> 00:05:40.879
+of the thing that I want to
-00:05:38.920 --> 00:05:47.319
-that I want to be my seed for looking and bringing up Corfu
+00:05:40.880 --> 00:05:47.319
+be my seed for looking and bringing up Corfu,
-00:05:47.320 --> 00:05:53.439
-and of course I need some completion properties here
+00:05:47.320 --> 00:05:52.599
+and of course, I need some completion properties here.
-00:05:53.440 --> 00:05:55.719
+00:05:52.600 --> 00:05:55.719
This looked like this is what you need to do,
00:05:55.720 --> 00:05:57.519
but I had to dig quite deep
00:05:57.520 --> 00:06:01.319
-to create a JavaScript keyword test
+to create a yasnippet keyword test
00:06:01.320 --> 00:06:04.759
and to understand the completion props.
@@ -288,11 +313,11 @@ and to understand the completion props.
00:06:04.760 --> 00:06:11.759
And as an update of what I've been doing in the last weeks,
-00:06:11.760 --> 00:06:13.879
-I've created a bound of things
+00:06:11.760 --> 00:06:17.606
+I've created a bound of things at point for me
-00:06:13.880 --> 00:06:18.679
-that point for me with a different thing
+00:06:17.607 --> 00:06:18.679
+with a different thing
00:06:18.680 --> 00:06:22.039
that doesn't skip over non-blank characters,
@@ -301,7 +326,7 @@ that doesn't skip over non-blank characters,
that only skips over non-blank characters.
00:06:25.040 --> 00:06:28.999
-Why? Because Word was confusingly tech,
+Why? Because 'word was confusing LaTeX,
00:06:29.000 --> 00:06:30.759
because the backslash,
@@ -309,50 +334,52 @@ because the backslash,
00:06:30.760 --> 00:06:34.999
like in the example for the teletype text,
-00:06:35.000 --> 00:06:36.919
-was not taken into account by Word.
+00:06:35.000 --> 00:06:37.999
+was not taken into account by 'word.
-00:06:36.920 --> 00:06:39.959
+00:06:38.000 --> 00:06:39.959
So I had to create my own one,
00:06:39.960 --> 00:06:42.119
-which was a bunch of thing at point,
+which was a bounds-of-thing-at-point,
00:06:42.120 --> 00:06:44.879
and then my thing is non-blanks.
-00:06:44.880 --> 00:06:53.239
+NOTE Making my own (basic) c-a-p-f for yasnippet: the completion properties
+
+00:06:44.880 --> 00:06:51.179
Completion at point properties, what are they?
-00:06:53.240 --> 00:06:56.039
+00:06:51.180 --> 00:06:56.039
They allow Emacs to know how to handle the information
-00:06:56.040 --> 00:06:57.879
+00:06:56.040 --> 00:06:58.899
for a specific completion time.
-00:06:57.880 --> 00:07:02.319
+00:06:58.900 --> 00:07:03.239
So you normally will have an annotation,
-00:07:02.320 --> 00:07:08.519
-which then can disappear if you use NerdIconScoreFull.
+00:07:03.240 --> 00:07:08.519
+which then can disappear if you use nerd-icons-corfu,
00:07:08.520 --> 00:07:11.839
which is what I'm doing currently,
-00:07:11.840 --> 00:07:17.559
+00:07:11.840 --> 00:07:17.900
but I keep it commented just in case I get tired of Corfu
-00:07:17.560 --> 00:07:20.079
+00:07:17.901 --> 00:07:20.000
and I want to have my completion function.
-00:07:20.080 --> 00:07:26.759
-Then the company kind is actually not something
+00:07:20.001 --> 00:07:24.959
+Then the :company-kind is actually not something
-00:07:26.760 --> 00:07:30.999
+00:07:24.960 --> 00:07:30.999
that comes from the company package, but does not require.
00:07:31.000 --> 00:07:39.439
-And that's going to allow NerdEye Conscorfu to identify
+And that's going to allow nerd-icons-corfu to identify
00:07:39.440 --> 00:07:44.839
and put the right icon there in the completion list,
@@ -373,21 +400,23 @@ is that this is a snippet keyword.
These two lines, either line,
00:07:56.800 --> 00:07:59.999
-tell you that this is a snippet keyword.
+tell you that this is a snippet keyword,
00:08:00.000 --> 00:08:05.279
-And that it should be added to the other completions
+and that it should be added to the other completions
-00:08:05.280 --> 00:08:08.079
+00:08:05.280 --> 00:08:10.899
that you already have in your list.
-00:08:08.080 --> 00:08:15.479
-Problems looking now next step
+NOTE Getting yas-kw-list right: What do I want?
+
+00:08:10.900 --> 00:08:15.479
+Problems. Looking... Now, next step,
-00:08:15.480 --> 00:08:19.079
+00:08:15.480 --> 00:08:18.479
once I had the completion props
-00:08:19.080 --> 00:08:21.439
+00:08:18.480 --> 00:08:21.439
which was relatively easy was to go
00:08:21.440 --> 00:08:24.399
@@ -397,10 +426,13 @@ and get the keyword list right.
I've been looking at pre-existing solutions
00:08:27.200 --> 00:08:29.319
-like for example how the menu
+like, for example, how the menu
+
+00:08:29.320 --> 00:08:32.539
+is built in by yasnippet
-00:08:29.320 --> 00:08:34.399
-is built in by your snippet and it looked a bit like Mission Impossible.
+00:08:32.540 --> 00:08:34.399
+and it looked a bit like Mission Impossible,
00:08:34.400 --> 00:08:40.439
because the approach by all the things
@@ -408,10 +440,10 @@ because the approach by all the things
00:08:40.440 --> 00:08:43.199
that I have seen and I have examined
-00:08:43.200 --> 00:08:45.639
+00:08:43.200 --> 00:08:48.659
is to get the keys and the names
-00:08:45.640 --> 00:08:50.799
+00:08:48.660 --> 00:08:50.799
and then further process them.
00:08:50.800 --> 00:08:55.279
@@ -424,99 +456,101 @@ At the end, if I use my own snippets,
I'm going to be using something
00:09:00.440 --> 00:09:02.559
-I would call meaningful keys for them
+I would call meaningful keys for them,
00:09:02.560 --> 00:09:06.359
-or at least meaningful for these keys are meaningful for me
+or at least meaningful for... These keys are meaningful for me,
00:09:06.360 --> 00:09:07.679
-and I try not to repeat them
+and I try not to repeat them,
00:09:07.680 --> 00:09:09.959
because it makes little sense to repeat a keyword.
00:09:09.960 --> 00:09:13.919
-So why not center everything around the keys only
+So why not center everything around the keys only,
00:09:13.920 --> 00:09:18.879
and can that help simplify my code?
+NOTE Diving in yasnippet
+
00:09:18.880 --> 00:09:23.639
-So I started to dive into your snippet
+So I started to dive into yasnippet
00:09:23.640 --> 00:09:27.319
and I found a lot of useful semi-hidden functions there.
00:09:27.320 --> 00:09:30.679
-I discovered that getting the list
+I discovered that getting the list,
00:09:30.680 --> 00:09:34.959
the list of keys for a given mode was not that difficult.
00:09:34.960 --> 00:09:40.079
-And at the end what I started doing
+And at the end, what I started doing
-00:09:40.080 --> 00:09:47.079
-is get all the snipple tables used by a major mode
+00:09:40.080 --> 00:09:43.399
+is get all the snippet tables used by a major mode
-00:09:47.080 --> 00:09:52.399
+00:09:43.400 --> 00:09:47.999
and get the lists of the keys that you have in each table.
-00:09:52.400 --> 00:09:55.839
+00:09:48.000 --> 00:09:50.375
Sometimes the list is empty
-00:09:55.840 --> 00:10:01.959
+00:09:50.376 --> 00:09:54.319
so it's going to return a nil and that you have to discard.
-00:10:01.960 --> 00:10:05.999
+00:09:54.320 --> 00:09:57.559
When you're using structured snippets
-00:10:06.000 --> 00:10:08.919
+00:09:57.560 --> 00:10:02.479
like snippets and submenus and so on
-00:10:08.920 --> 00:10:12.359
-to get a structured menu,
+00:10:02.480 --> 00:10:06.399
+to get a structured menu.
-00:10:12.360 --> 00:10:14.999
-you also get some non-strings that you need to filter out
+00:10:06.400 --> 00:10:09.834
+You also get some non-strings that you need to filter out
-00:10:15.000 --> 00:10:18.999
+00:10:09.835 --> 00:10:15.039
in order to get a workable keyword list.
-00:10:19.000 --> 00:10:24.879
+00:10:15.040 --> 00:10:21.799
At the end of the day, what I had was something like this.
-00:10:24.880 --> 00:10:30.959
+00:10:21.800 --> 00:10:29.519
I have, for a mode, I went through all modes.
-00:10:30.960 --> 00:10:37.159
-through all modes associated to that and then I went
+00:10:29.520 --> 00:10:38.799
+through all modes associated to that, and then I went,
-00:10:37.160 --> 00:10:42.519
+00:10:38.800 --> 00:10:42.480
I got my results from all the tables that I had
00:10:42.520 --> 00:10:45.279
-for a for a given time for a given table
+for a given time, for a given table.
00:10:45.280 --> 00:10:48.079
-so what you do is you get your the tables
+So what you do is you get the tables
00:10:48.080 --> 00:10:53.119
-that are associated to a mode because surprise surprise
+that are associated to a mode, because, surprise, surprise,
00:10:53.120 --> 00:10:55.958
-Some modes have more than one table,
+some modes have more than one table.
00:10:55.959 --> 00:11:00.917
-and then what you do is you filter out all non strings
+And then what you do is you filter out all non strings
00:11:00.918 --> 00:11:07.719
from each of the keys list that you have for each table.
-00:11:07.720 --> 00:11:12.679
+00:11:07.720 --> 00:11:12.379
So as you see, it's a 1, 2, 3, 4, 5, 6, 7 liner,
-00:11:12.680 --> 00:11:14.319
+00:11:12.380 --> 00:11:14.319
which was not too much.
00:11:14.320 --> 00:11:20.039
@@ -529,104 +563,116 @@ I sent a pull request to include this
as a public function in Yasnipit
00:11:29.000 --> 00:11:32.319
-because it might be nice to have it in a packet
+because it might be nice to have it in the package
00:11:32.320 --> 00:11:33.840
in order to do this kind of things.
+NOTE Fine-tuning: adding cape
+
00:11:33.840 --> 00:11:41.239
-So fine-tuning I just adding a yes completion
+So fine-tuning. Just adding a yas completion
00:11:41.240 --> 00:11:44.719
-to the completion point functions was not enough
+to the completion point functions was not enough.
00:11:44.720 --> 00:11:46.799
-I don't really know
+I don't really know,
00:11:46.800 --> 00:11:51.199
-but exclusive node didn't seem to work how I wanted
+but :exclusive no didn't seem to work how I wanted
-00:11:51.200 --> 00:11:57.399
-so I needed to escape sorry yeah I was saying I was getting rid of packages
+00:11:51.200 --> 00:11:54.549
+so I needed to escape... Sorry. Yeah.
-00:11:57.400 --> 00:12:00.999
+00:11:54.550 --> 00:11:57.399
+I was saying I was getting rid of packages,
+
+00:11:57.400 --> 00:12:00.279
and I had to add one package
-00:12:01.000 --> 00:12:04.479
-in order to get a function which is very very nice
+00:12:00.280 --> 00:12:04.479
+in order to get a function, which is very, very, nice,
00:12:04.480 --> 00:12:08.919
-and which is part of the cape function of the cape package
+and which is part of the cape function of the cape package,
00:12:08.920 --> 00:12:12.799
-and that's cape cap super.
+and that's cape-capf-super.
00:12:12.800 --> 00:12:16.439
-So at the end using that you define an alias
+So at the end, using that, you define an alias,
00:12:16.440 --> 00:12:23.199
-which for that where you use cape cap super
+which, for that, where you use cape-capf-super
00:12:23.200 --> 00:12:25.799
-to have a list of what you want
+to have a list of what you want...
00:12:25.800 --> 00:12:29.079
-so in this case for example for the demo
+So in this case, for example, for the demo
+
+00:12:29.080 --> 00:12:31.419
+I'm going to make, I'm using yas completion
-00:12:29.080 --> 00:12:32.759
-I'm going to make I'm using yes completion
+00:12:31.420 --> 00:12:36.172
+and then the elisp-completion-at-point function
-00:12:32.760 --> 00:12:37.719
-and then the elisp completion point function provided by Emacs.
+00:12:36.173 --> 00:12:37.719
+provided by Emacs.
00:12:37.720 --> 00:12:43.999
-I combine them using cape cap super
+I combine them using cape-capf-super,
00:12:44.000 --> 00:12:47.679
-and with that I create a completion point
+and with that, I create a completion point,
00:12:47.680 --> 00:12:53.159
-a new completion point function which I call cape list mode
+a new completion point function which I call cape-lisp-mode,
00:12:53.160 --> 00:12:58.480
-and then I add this alias to the completion functions list
+and then I add this alias to the completion functions list,
+
+00:12:58.520 --> 00:13:03.803
+and with that, it is enough.
+
+NOTE Automatic snippet expansion
-00:12:58.520 --> 00:13:05.719
-and with that it is enough snippet expansion
+00:13:03.804 --> 00:13:05.719
+Snippet expansion.
-00:13:05.720 --> 00:13:14.479
-if you want to have your snippets expanded automatically,
+00:13:05.720 --> 00:13:13.839
+If you want to have your snippets expanded automatically,
-00:13:14.480 --> 00:13:27.999
+00:13:13.840 --> 00:13:27.999
you have to add an exit function to the, I'm sorry,
00:13:28.000 --> 00:13:30.879
-to the completion properties
+to the completion properties.
00:13:30.880 --> 00:13:34.119
-yet another functionality you have to add
+Yet another functionality you have to add.
00:13:34.120 --> 00:13:39.199
-and to avoid this automatic selection to be too eager
+And to avoid this automatic selection to be too eager,
-00:13:39.200 --> 00:13:43.319
-you need to add this set corfu
+00:13:39.200 --> 00:13:47.973
+you need to add this setq corfu-on-exact-match to nil
-00:13:43.320 --> 00:13:48.599
-on exact match to nil because otherwise
-
-00:13:48.600 --> 00:13:51.839
-you will always get the snippet expanded
+00:13:47.974 --> 00:13:51.839
+because otherwise, you will always get the snippet expanded,
00:13:51.840 --> 00:13:55.039
-even if you don't want it Basically why?
+even if you don't want it. Basically, why?
00:13:55.040 --> 00:13:57.639
-Basically because this would be suboptimal
+Basically, because this would be suboptimal
00:13:57.640 --> 00:14:05.359
because the key can appear as part of a variable name.
+NOTE Themes
+
00:14:05.360 --> 00:14:10.599
Another nice thing, I'm also creating my own themes.
@@ -640,15 +686,15 @@ that only cover the modes that I use
and for that I have my own theme creator fork
00:14:22.960 --> 00:14:26.959
-from the original team creator.
+from the original theme creator.
-00:14:26.960 --> 00:14:31.719
-In my personal work that I'm running at home,
+00:14:26.960 --> 00:14:29.292
+In my personal fork that I'm running at home,
-00:14:31.720 --> 00:14:34.159
+00:14:29.293 --> 00:14:33.859
I only have the faces for the modes I use.
-00:14:34.160 --> 00:14:38.159
+00:14:33.860 --> 00:14:38.159
I don't want to overload the thing
00:14:38.160 --> 00:14:41.839
@@ -658,7 +704,7 @@ with too much different things.
Looking at this, I really didn't need, as you will see now,
00:14:46.000 --> 00:14:50.079
-I don't need to add anything to my themes
+I don't need to add anything to my themes,
00:14:50.080 --> 00:14:53.279
because the default faces for Corfu
@@ -666,23 +712,28 @@ because the default faces for Corfu
00:14:53.280 --> 00:14:58.319
adapt quite well to most of the themes.
-00:14:58.320 --> 00:15:02.839
-So if I go back to my checklist decently remax yes
+NOTE My check-list
+
+00:14:58.320 --> 00:15:01.478
+So if I go back to my checklist,
+
+00:15:01.479 --> 00:15:02.839
+decently new Emacs, yes,
00:15:02.840 --> 00:15:06.559
-compiled the one you'll see
+compiled. The one you'll see
00:15:06.560 --> 00:15:09.239
-for the for in the demo I'm doing is a master
+in the demo I'm doing is a master
00:15:09.240 --> 00:15:11.999
compiled the day before yesterday
00:15:12.000 --> 00:15:15.199
-so and I don't need Corfu terminal there.
+and I don't need corfu-terminal there.
00:15:15.200 --> 00:15:16.559
-I need your snippet,
+I need yasnippet,
00:15:16.560 --> 00:15:20.159
and you're going to see that in a second
@@ -694,25 +745,30 @@ with a couple of snippets that I can expand here.
I don't want any reminiscence of a company in my setup,
00:15:27.480 --> 00:15:32.119
-and there's none. Well, actually, company kind is there
+and there's none. Well, actually, :company-kind is there
00:15:32.120 --> 00:15:33.719
-you see the company there
+you see the company there,
00:15:33.720 --> 00:15:39.559
-but it isn't if I buy companies strictly speaking
+but it isn't defined by company strictly speaking,
00:15:39.560 --> 00:15:44.679
-and for I don't want I need Eglot integration
+and for... I don't want... I need Eglot integration
+
+00:15:44.680 --> 00:15:48.583
+which I will also be showing you.
-00:15:44.680 --> 00:15:50.400
-which I will also be showing you. Takeaways from all this,
+NOTE Takeaways
+
+00:15:48.584 --> 00:15:50.400
+Takeaways from all this,
00:15:50.440 --> 00:15:55.279
if you accept the extra burden
00:15:55.280 --> 00:16:02.239
-of Corfu terminal for Emacs 30 or earlier Emacs 30s,
+of corfu-terminal for Emacs 30 or earlier Emacs 30s,
00:16:02.240 --> 00:16:07.559
it's not too difficult to get this set up running.
@@ -742,55 +798,54 @@ I've learned a lot about computational functions in the process,
which is, something that is always nice to learn new things
00:16:40.440 --> 00:16:45.039
-and the Nerd Icons Corfu makes the
+and the nerd-icons-corfu makes the...
00:16:45.040 --> 00:16:48.319
-at least at this point in time I might get tired of it
+at least, at this point in time... I might get tired of it,
00:16:48.320 --> 00:16:50.399
-but at this point in time it makes
+but at this point in time, it makes
-00:16:50.400 --> 00:16:53.679
-a makes a very nice overall look
+00:16:50.400 --> 00:16:58.039
+a very nice overall look and feel for Emacs.
-00:16:53.680 --> 00:16:58.039
-and look and feel for for Emacs.
+NOTE Requests (to whom it may concern)
00:16:58.040 --> 00:17:02.039
-requests to whom it may concern cape has nice features
+Requests (to whom it may concern): cape has nice features
00:17:02.040 --> 00:17:06.279
-that maybe could make their way into emacs
+that maybe could make their way into emacs.
-00:17:06.280 --> 00:17:09.159
-i'm thinking basically about this cape super fun
+00:17:06.280 --> 00:17:08.064
+I'm thinking basically about
-00:17:09.160 --> 00:17:12.399
-uh super function super cape function functionality
+00:17:08.065 --> 00:17:12.399
+this super cape functionality
00:17:12.400 --> 00:17:18.799
-which is very nice and overcomes the problem of linking
+which is very nice, and overcomes the problem of linking,
00:17:18.800 --> 00:17:22.239
-and this exclusive and all this kind of things
+and this :exclusive and all this kind of things
00:17:22.240 --> 00:17:26.479
that we have currently in Corfu
00:17:26.480 --> 00:17:28.439
-with the computational point functions.
+with the completion-at-point functions.
00:17:28.440 --> 00:17:32.959
-Corfu is also really nice to have and it's not too big
+Corfu is also really nice to have, and it's not too big.
00:17:32.960 --> 00:17:35.559
-so is there any possibility
+So is there any possibility
00:17:35.560 --> 00:17:40.079
that it makes its way into Emacs?
00:17:40.080 --> 00:17:42.399
-Please keep Yarn Snippet alive.
+Please keep yasnippet alive.
00:17:42.400 --> 00:17:48.559
I'm not saying here that my pull request should be there,
@@ -799,43 +854,45 @@ I'm not saying here that my pull request should be there,
but it would be nice if someone took a look
00:17:51.560 --> 00:17:57.399
-and made it part of Yarn Snippet.
+and made it part of Yasnippet.
00:17:57.400 --> 00:18:01.799
-And PS, currently on master,
+And P.S., currently on master,
-00:18:01.800 --> 00:18:07.799
+00:18:01.800 --> 00:18:04.292
there's a lot of semantic highlighting going on,
-00:18:07.800 --> 00:18:13.719
+00:18:04.293 --> 00:18:07.125
which is very, very nice. No criticism on that.
-00:18:13.720 --> 00:18:19.639
-but you may need to add to your snippet hook
+00:18:07.126 --> 00:18:12.417
+But you may need to add to your snippet hook
-00:18:19.640 --> 00:18:25.039
-this simple local value for ElixirFontify semantically
+00:18:12.418 --> 00:18:25.039
+this simple local value for elisp-fontify-semantically,
00:18:25.040 --> 00:18:30.719
-because at least in my case I felt that
+because at least in my case, I felt that
00:18:30.720 --> 00:18:32.439
-the face were a bit too pushy
+the faces were a bit too pushy,
00:18:32.440 --> 00:18:37.280
-so I had to make a snippet mode
+so I had to make the snippet mode
-00:18:37.334 --> 00:18:41.279
+00:18:37.334 --> 00:18:43.579
use the old Emacs Lisp fontification.
-00:18:41.280 --> 00:18:46.279
-That's what we want to talk about.
+00:18:43.580 --> 00:18:46.279
+This would be my talk.
00:18:46.280 --> 00:18:54.999
Any initial reactions to this? There's a question here.
+NOTE Q: Did you try yasnippet-capf? If so, what did you miss from it that this approach has? Thanks! https://github.com/elken/yasnippet-capf
+
00:18:55.000 --> 00:18:59.159
-Someone asked, did you try Jasnepet Cup?
+Someone asked, did you try yasnippet-capf?
00:18:59.160 --> 00:19:05.959
If so, what did you miss from this approach? I tried that.
@@ -843,10 +900,10 @@ If so, what did you miss from this approach? I tried that.
00:19:05.960 --> 00:19:11.239
And it's not that I missed anything.
-00:19:11.240 --> 00:19:16.519
+00:19:11.240 --> 00:19:15.839
It was more or less that I wanted to do it myself.
-00:19:16.520 --> 00:19:24.159
+00:19:15.840 --> 00:19:24.159
So I wanted to see what was behind it. That's my answer.
00:19:24.160 --> 00:19:26.679
@@ -858,6 +915,8 @@ but I try to keep learning. So, this was a nice objective
00:19:31.720 --> 00:19:40.159
to learn a bit more about Emacs. And now, just a second.
+NOTE A small demo
+
00:19:40.160 --> 00:19:44.879
Now, a small demo. This is the interaction.
@@ -880,7 +939,7 @@ And what you see here is that
I have two snippets appearing and then some variables.
00:20:04.320 --> 00:20:09.879
-So, I could go for def one or if I want a key map, for def key map,
+So, I could go for defun or if I want a key map, for def-keymap,
00:20:09.880 --> 00:20:11.479
which would be something like this.
@@ -889,46 +948,49 @@ which would be something like this.
And then when I press enter, I get directly into the map
00:20:18.320 --> 00:20:26.719
-and I could say like, Show off mob.
+and I could say like, show off map.
00:20:26.720 --> 00:20:30.079
-Then it sets out directly a prefix T,
+Then it sets out directly a :prefix t,
00:20:30.080 --> 00:20:35.039
which is something that I asked for in Emacs master.
00:20:35.040 --> 00:20:39.479
-So with prefix T, for those who prefix it true,
+So with :prefix t, for those who prefix it true,
00:20:39.480 --> 00:20:41.399
for those who don't know it,
-00:20:41.400 --> 00:20:46.799
-it makes integrating this into keymaps in use package much easier.
+00:20:41.400 --> 00:20:49.042
+it makes integrating this into keymaps
+
+00:20:49.043 --> 00:20:52.125
+in use-package much easier.
-00:20:46.800 --> 00:20:51.119
-So the next thing would be
+00:20:52.126 --> 00:20:54.167
+So the next thing would be,
-00:20:51.120 --> 00:20:55.999
-I would like to write a description
+00:20:54.168 --> 00:20:56.500
+I would like to write a description,
-00:20:56.000 --> 00:21:04.999
-like for example a cool show off team up
+00:20:56.501 --> 00:21:04.999
+like, for example, a cool show-off keymap,
00:21:05.000 --> 00:21:08.599
-and then my keys are my functions and that would be it
+and then my keys are my functions, and that would be it.
00:21:08.600 --> 00:21:15.839
-but you also have like but also have like this define function
+Of course, you also have like this define function.
00:21:15.840 --> 00:21:21.679
-and of course you can say that's nice but there's no
+And of course you can say, that's nice,
00:21:21.680 --> 00:21:23.799
but you're not showing the integration
00:21:23.800 --> 00:21:25.439
-with Eglot and you're right.
+with Eglot, and you're right.
00:21:25.440 --> 00:21:30.279
So I'm going just to open up a small program
@@ -937,16 +999,16 @@ So I'm going just to open up a small program
that I'm currently developing in Python.
00:21:33.320 --> 00:21:38.239
-X is a tool to do things in MP3.
+This is a tool to do things in MP3.
00:21:38.240 --> 00:21:42.279
-And here I would have like all these things.
+And here I would have, like, all these things.
00:21:42.280 --> 00:21:45.359
As you see here in the bottom,
00:21:45.360 --> 00:21:49.079
-service running, pilot is local, eglot is active.
+server is running, file is local, eglot is active.
00:21:49.080 --> 00:21:57.919
So I have my eglot stop and then I go down.
@@ -960,71 +1022,71 @@ I would go like for it. I would go like add flag.
00:22:08.800 --> 00:22:13.759
For example, I would add a flag
-00:22:13.760 --> 00:22:21.759
+00:22:13.760 --> 00:22:27.859
and I would get a new flag to add here.
-00:22:21.760 --> 00:22:33.119
-Oops. Of course, this is integrated into Eagle Lord.
+00:22:27.860 --> 00:22:33.119
+Oops. Of course, this is integrated into Eglot,
00:22:33.120 --> 00:22:42.759
-So I'm getting your information about what I have.
+so I'm getting your information about what I have.
00:22:42.760 --> 00:22:52.359
-I don't have OS, so I would need to import here,
+I could... I don't have os, so I would need to import here,
00:22:52.360 --> 00:22:59.279
-but I can go up just to see
+but I can go up just to see...
00:22:59.280 --> 00:23:01.759
-if I would like to, for example,
+If I would like to, for example,
00:23:01.760 --> 00:23:11.879
-create a new a regular expression
+create a new regular expression,
00:23:11.880 --> 00:23:15.439
-I'm getting this information that you see right now on call
+I'm getting this information that you see right now on call.
00:23:15.440 --> 00:23:17.359
-for I'm getting that from Eglot
+I'm getting that from Eglot.
00:23:17.360 --> 00:23:18.919
-so you see there's the integration
+So you see there's the integration
00:23:18.920 --> 00:23:20.839
-with with Eglot too in Python
+with Eglot too in Python.
00:23:20.840 --> 00:23:23.559
-I have Eglot and as you've seen
+I have Eglot, and as you've seen
00:23:23.560 --> 00:23:30.239
-I also have the and all these are snippets fine
+I also have the... and all these are snippets. Fine.
00:23:30.240 --> 00:23:38.199
-more reactions and questions
+More reactions and questions?
00:23:38.200 --> 00:23:54.239
Because that would be my show off here.
-00:23:54.240 --> 00:23:56.759
+00:23:54.240 --> 00:24:09.379
Any questions? Any more questions on the pad?
-00:23:56.760 --> 00:24:11.479
-but anyhow i'm going to try
+00:24:09.380 --> 00:24:11.479
+but anyhow I'm going to try,
00:24:11.480 --> 00:24:13.239
-i'm going to try your snippet too
+I'm going to try yasnippet too
00:24:13.240 --> 00:24:16.279
-and i'm going to be answering this question more
+and I'm going to be answering this question more
00:24:16.280 --> 00:24:21.079
yeah time is good okay fine
00:24:21.080 --> 00:24:30.039
-so I would be done if there's no more reactions
+so I would be done if there's no more reactions...
00:24:30.040 --> 00:24:33.239
-thank you so much You're welcome.
+Thank you so much. You're welcome.
00:24:33.240 --> 00:24:34.919
If you have any other questions, folks,
@@ -1045,34 +1107,36 @@ Oh, I see some questions coming in now.
You may go ahead if you like.
00:24:46.200 --> 00:24:51.879
-okay fine uh what uh there's someone asking
+Okay, fine. There's someone asking:
+
+NOTE Q: Do special characters in yasnippets work well too? example <FD ?
00:24:51.880 --> 00:24:57.079
-what do special characters in your snippets work well too
+Do special characters in your snippets work well too?
00:24:57.080 --> 00:25:02.479
-what kind of i don't use special characters in the key name
+what kind of... I don't use special characters in the key name,
00:25:02.480 --> 00:25:05.199
-so in this case everything works quite nicely
+so in this case everything works quite nicely,
00:25:05.200 --> 00:25:11.359
-and then i'm passing i'm passing the control to your snippets
+and then I'm passing, I'm passing the control to yasnippet,
00:25:11.360 --> 00:25:13.679
-so if there's any problem in your snippets
+so if there's any problem in yasnippet
00:25:13.680 --> 00:25:15.359
-with uh special characters
+with special characters,
00:25:15.360 --> 00:25:24.399
-that i don't know I don't use that as a key.
+that, I don't know. I don't use that as a key.
00:25:24.400 --> 00:25:30.519
I'm just using for key names.
00:25:30.520 --> 00:25:38.399
-I normally use a, I only use letters, but that should work.
+I normally use a... I only use letters, but that should work.
00:25:38.400 --> 00:25:43.959
I mean, let's, uh, let's give it a trial.
@@ -1081,51 +1145,48 @@ I mean, let's, uh, let's give it a trial.
Let's kill here. Yes. I don't want, I don't want to touch this.
00:25:58.040 --> 00:26:01.039
-Ugh. let's go into this one uh
+Ugh. Let's go into this one.
00:26:01.040 --> 00:26:06.920
-let's say I'm going to define this for example like this
+Let's say I'm going to define this, for example, like this,
00:26:06.959 --> 00:26:10.919
-and I'm going to create a new snippet
+and I'm going to create a new snippet.
00:26:10.920 --> 00:26:15.359
I'm going to create a new snippet
00:26:15.360 --> 00:26:18.119
-and use this is for example when you look at this
-
-00:26:18.120 --> 00:26:20.599
-if you if you have the the venue uh the new
+and use this. For example, when you look at this,
-00:26:20.600 --> 00:26:26.159
-sorry the new way of the the new emacs uh
+00:26:18.120 --> 00:26:31.042
+if you have the new way of the new Emacs
-00:26:26.160 --> 00:26:31.639
-semantical highlighting working
+00:26:31.043 --> 00:26:37.667
+semantical highlighting working,
-00:26:31.640 --> 00:26:39.199
-this would be quite cramped this is why i'm using
+00:26:37.668 --> 00:26:40.625
+this would be quite cramped. This is why I'm using,
-00:26:39.200 --> 00:26:43.039
-this is why i said uh the snippet the
+00:26:40.626 --> 00:26:44.899
+this is why I said the snippet, the...
-00:26:43.040 --> 00:26:49.039
-so is this more or less what you're talking about
+00:26:44.900 --> 00:26:55.139
+So is this more or less what you're talking about?
-00:26:49.040 --> 00:27:01.479
+00:26:55.140 --> 00:27:12.579
This is what you're talking about. Snippet. Save the snippet.
-00:27:01.480 --> 00:27:15.479
-So I'm going to... Snippet, load and put window.
+00:27:12.580 --> 00:27:15.479
+Snippet, load and put window.
00:27:15.480 --> 00:27:21.279
Enable interaction mode. Yes, I'm going to save.
-00:27:21.280 --> 00:27:24.439
-And I'm going to save that as FD test. on the file.
+00:27:21.280 --> 00:27:31.059
+And I'm going to save that as fd test in the file.
-00:27:24.440 --> 00:27:41.479
+00:27:31.060 --> 00:27:41.479
No, I'm going to save this. Load. Load input window.
00:27:41.480 --> 00:27:53.679
@@ -1135,16 +1196,19 @@ I'm going to put this in Emacs Lisp mode. I want to save it. No.
I'm going to write that directly into Emacs Lisp mode.
00:28:27.360 --> 00:28:30.639
-going to go back into scratch buffer
+Going to go back into scratch buffer,
00:28:30.640 --> 00:28:43.079
-and here I have it and we have it here but anyhow
+and here I have it. We have it here. But anyhow...
+
+00:28:43.080 --> 00:28:46.934
+And I'm just going to try to see, if I feel like...
-00:28:43.080 --> 00:28:52.079
-and I'm just going to try to see if I feel like empty of course
+00:28:46.935 --> 00:28:52.663
+Empty? Of course, there's only one.
-00:28:52.080 --> 00:28:58.839
-there's only one it will not show in Corfu,
+00:28:52.664 --> 00:28:58.839
+It will not show in Corfu.
00:28:58.840 --> 00:29:01.519
but I mean, I don't have any problems
@@ -1185,17 +1249,17 @@ And I'm going to go and write this
00:30:08.800 --> 00:30:16.719
into, with a second, fine.
-00:30:16.720 --> 00:30:19.919
+00:30:16.720 --> 00:30:18.179
And now I need to quit here, sorry.
-00:30:19.920 --> 00:30:26.639
+00:30:18.180 --> 00:30:26.639
And I'm going to come back in a second with another remark.
00:30:26.640 --> 00:30:31.559
Well, I'm bringing back and now let's see.
00:30:31.560 --> 00:30:34.839
-Let's see what we have in your snippets.
+Let's see what we have in yasnippet.
00:30:34.840 --> 00:30:44.159
It's not there. Why not? Just a second. Let's see if I go.
@@ -1206,20 +1270,23 @@ I don't know if it matters that the name was
00:30:47.840 --> 00:30:52.599
that didn't have the characters in the beginning.
-00:30:52.600 --> 00:31:03.159
+00:30:52.600 --> 00:31:05.699
Just a second. I think I know what is happening here.
-00:31:03.160 --> 00:31:21.439
-Do I have here? I have them. I'm going to clean.
+00:31:05.700 --> 00:31:21.439
+Do I have them? I'm going to clean.
00:31:21.440 --> 00:31:28.879
-Oh, you're back in your home directories. Why?
+[Sacha]: Oh, you're back in your home directories is why.
-00:31:28.880 --> 00:31:35.879
-CD dash to get back in. Yeah. That's right.
+00:31:28.880 --> 00:31:35.004
+cd - to get back in.
+
+00:31:35.005 --> 00:31:35.879
+Yeah. That's right.
00:31:35.880 --> 00:31:37.799
-So you see how the name also has
+So you see how the name also has...
00:31:37.800 --> 00:31:39.319
it doesn't have the same as the keys.
@@ -1227,10 +1294,13 @@ it doesn't have the same as the keys.
00:31:39.320 --> 00:31:41.039
I don't know if that affects what shows up.
-00:31:41.040 --> 00:31:49.399
-Yeah, we we can try that. That's a quick one. This is my.
+00:31:41.040 --> 00:31:44.880
+[Pedro]: Yeah, we we can try that.
+
+00:31:44.881 --> 00:31:49.999
+That's a quick one. This is my...
-00:31:49.400 --> 00:31:51.279
+00:31:50.000 --> 00:31:51.279
Fine, now that I have this,
00:31:51.280 --> 00:31:55.359
@@ -1243,25 +1313,33 @@ They both seem to be the same now
and I don't know if that affects, but anyhow, let's try it.
00:32:03.080 --> 00:32:07.679
-I go and then I look at the AR snippets, if it's there.
+I go and then I look at the yasnippet, if it's there.
-00:32:07.680 --> 00:32:11.879
-Yes, it is. Yeah, it's there.
+00:32:07.680 --> 00:32:09.956
+Yes, it is.
+
+00:32:09.957 --> 00:32:11.879
+[Sacha]: Yeah, it's there.
00:32:11.880 --> 00:32:18.559
-And then if I say there, there you are. Oh, look at that.
+[Pedro]: And then if I say there, there you are. Oh, look at that.
+
+00:32:18.560 --> 00:32:22.167
+It doesn't seem to be affecting.
-00:32:18.560 --> 00:32:24.159
-It doesn't seem to be affecting. Fantastic.
+00:32:22.168 --> 00:32:24.159
+[Sacha]: Fantastic.
00:32:24.160 --> 00:32:32.119
-And by the way, it is there.
+[Pedro]: And by the way, it is there.
+
+NOTE Emacs Lisp
00:32:32.120 --> 00:32:33.999
-Yeah, I really should spend time
+[Sacha]: Yeah, I really should spend time
00:32:34.000 --> 00:32:36.599
-getting more templates set up with Snippet.
+getting more templates set up with yasnippet.
00:32:36.600 --> 00:32:37.639
I really love the fact that
@@ -1270,7 +1348,7 @@ I really love the fact that
you can evaluate Emacs Lisp in it too.
00:32:40.400 --> 00:32:43.399
-Yeah, I mean, just to make it bigger,
+[Pedro]: Yeah, I mean, just to make it bigger,
00:32:43.400 --> 00:32:51.359
try that because if I go into my, for example,
@@ -1284,13 +1362,13 @@ and in my org mode, I go to the article,
00:32:59.440 --> 00:33:03.319
which is one of the big ones.
-00:33:03.320 --> 00:33:06.199
+00:33:03.320 --> 00:33:05.119
I have things like, for example,
-00:33:06.200 --> 00:33:10.719
+00:33:05.120 --> 00:33:09.199
I defined a couple of functions here to do if it's empty,
-00:33:10.720 --> 00:33:16.399
+00:33:09.200 --> 00:33:16.399
if that is empty, just add a white space.
00:33:16.400 --> 00:33:19.599
@@ -1300,28 +1378,28 @@ If one is empty, add a white space.
add a white space here so it becomes a comment.
00:33:23.320 --> 00:33:27.279
-I have functions for to do more things on that
+I have functions to do more things on that,
00:33:27.280 --> 00:33:29.799
-and I also have like menus to see
+and I also have menus to see
-00:33:29.800 --> 00:33:33.599
+00:33:29.800 --> 00:33:31.439
what language I want to choose for
-00:33:33.600 --> 00:33:37.079
-for my spell checking and so on so
+00:33:31.440 --> 00:33:33.250
+my spell checking and so on.
-00:33:37.080 --> 00:33:40.319
-and that's all that's as you see
+00:33:33.251 --> 00:33:35.480
+And that's all... As you see,
-00:33:40.320 --> 00:33:41.959
-this is a Lisp being evaluated
+00:33:35.481 --> 00:33:39.417
+this is Lisp being evaluated.
-00:33:41.960 --> 00:33:45.119
-so yes do I really encourage you
+00:33:39.418 --> 00:33:45.119
+So yes, do. I really encourage you
00:33:45.120 --> 00:33:46.519
-I've also heard people use it,
+[Sacha]: I've also heard people use it,
00:33:46.520 --> 00:33:47.799
like, especially if they're working
@@ -1336,10 +1414,10 @@ so they can just have the syntax
for the different languages
00:33:54.360 --> 00:33:58.239
-be condensed into a consistent abbreviation. Yeah.
+be condensed into a consistent abbreviation.
00:33:58.240 --> 00:34:01.319
-And look, this is my article. I have another.
+[Pedro]: Yeah. And look, this is my article. I have another.
00:34:01.320 --> 00:34:07.799
This is when I'm writing articles. I have another one.
@@ -1360,7 +1438,7 @@ and you don't have to type it by hand.
So, it's really, really nice.
00:34:22.880 --> 00:34:25.959
-Hmm, I think it might be nice to have
+[Sacha]: Hmm, I think it might be nice to have
00:34:25.960 --> 00:34:28.079
a future Emacs carnival, you know,
@@ -1372,7 +1450,7 @@ shared blogging theme thing be around
having people share their snippets.
00:34:33.360 --> 00:34:39.359
-No snippets and other things like for example,
+[Pedro]: Yasnippets and other things. Like for example,
00:34:39.360 --> 00:34:41.319
this is something stupid.
@@ -1386,10 +1464,10 @@ And of course, there you see,
00:34:48.640 --> 00:34:51.439
I have also, this is also with,
-00:34:51.440 --> 00:34:54.519
+00:34:51.440 --> 00:34:55.792
this is my way of switching buffers,
-00:34:54.520 --> 00:34:58.159
+00:34:55.793 --> 00:34:58.159
which is with the shift control and tab,
00:34:58.160 --> 00:35:00.559
@@ -1401,26 +1479,29 @@ and then when I'm in a family,
00:35:02.520 --> 00:35:06.999
I can go and switch with control tab between the different,
-00:35:07.000 --> 00:35:15.599
+00:35:07.000 --> 00:35:13.659
I'm using tab line by the way. I'm not using the other one.
-00:35:15.600 --> 00:35:20.839
+00:35:13.660 --> 00:35:20.839
I'm using the old plain tab line with my themes.
00:35:20.840 --> 00:35:23.519
So that's more or less everything.
00:35:23.520 --> 00:35:26.519
-Thank you for the peek into your workflow.
+[Sacha]: Thank you for the peek into your workflow.
00:35:26.520 --> 00:35:30.759
I will work on getting the recordings for the live talks
-00:35:30.760 --> 00:35:33.919
+00:35:30.760 --> 00:35:34.458
sorted out at some point very soon.
-00:35:33.920 --> 00:35:37.839
+00:35:34.459 --> 00:35:37.084
I might even be able to get them out next week.
-00:35:37.840 --> 00:35:44.920
-So thanks again. All right. Have a nice supper. Same to you.
+00:35:37.085 --> 00:35:43.667
+So thanks again. All right. Have a nice supper.
+
+00:35:43.668 --> 00:35:44.920
+[Pedro]: Same to you.
diff --git a/2025/captions/emacsconf-2025-llm--emacs-editors-and-llm-driven-workflows--andrew-hyatt--answers.vtt b/2025/captions/emacsconf-2025-llm--emacs-editors-and-llm-driven-workflows--andrew-hyatt--answers.vtt
index f35c2d27..849f7619 100644
--- a/2025/captions/emacsconf-2025-llm--emacs-editors-and-llm-driven-workflows--andrew-hyatt--answers.vtt
+++ b/2025/captions/emacsconf-2025-llm--emacs-editors-and-llm-driven-workflows--andrew-hyatt--answers.vtt
@@ -1,5 +1,7 @@
WEBVTT
+NOTE Q: My biggest question with AI code editors trying to integrate with Emacs is -- are the AI code editors able to read unsaved buffers and not just saved files?
+
00:00:00.000 --> 00:00:01.759
So let's, I'm just going to answer
@@ -165,6 +167,8 @@ But yes, that's what I think about.
00:02:16.600 --> 00:02:20.319
that interesting questions about unsaved buffers.
+NOTE Q: Personally I don't agree with the comment you made about VS Code usage dying out because I see companies/products pushing for tightly-integrated VS-Code agents/products like Windsurf. Thoughts?
+
00:02:20.320 --> 00:02:22.239
The next question is,
@@ -172,7 +176,7 @@ The next question is,
I don't agree with the comment you made
00:02:23.800 --> 00:02:25.199
-about VS code usage dying out
+about VS Code usage dying out
00:02:25.200 --> 00:02:26.719
because I see companies and products
@@ -264,6 +268,8 @@ I think it's gonna be the opposite, but I guess we'll see.
00:03:43.200 --> 00:03:47.759
Like, let's reconvene in a year and see what happens.
+NOTE Q: Do you have any thoughts about the environmental cost of using LLMs - either the training of models we can download and use locally, or the larger, commercial models used from the cloud?
+
00:03:47.760 --> 00:03:49.159
Uh, the 3rd question answer,
@@ -408,6 +414,8 @@ So I think it's wise to be cautious,
00:06:06.120 --> 00:06:09.079
but I think it's okay, I think, at least for personal use.
+NOTE Q: I must say, I liked your conclusion, but I differ insofar as you said that VS Code differ from Emacs because the former is not as easy to adapt as the latter. Why should Microsoft not adapt VS Code as we adapt Emacs for the new era of coding? And why would VS Code be harder hit? Could you please elaborate on this point?
+
00:06:09.080 --> 00:06:13.159
The next question is another,
@@ -538,10 +546,10 @@ which people are really just using to edit code
and if people find it less useful to edit code.
00:08:16.800 --> 00:08:20.919
-I think it's VS code will be harder hit than emails
+I think it's VS Code will be harder hit than emails
00:08:20.920 --> 00:08:24.239
-because that's its whole like that's in the name
+because that's its whole, like, that's in the name,
00:08:24.240 --> 00:08:25.559
like the whole reason for it
@@ -556,7 +564,7 @@ So I think that it's it's vulnerable
in a way that Emacs isn't
00:08:31.960 --> 00:08:34.519
-just because emacs is so very...
+just because Emacs is so very...
00:08:34.520 --> 00:08:40.119
you know, it's, it could do so many things
@@ -595,11 +603,13 @@ Is that touching on the point?
Yeah, that's a great way to say it.
00:09:09.080 --> 00:09:12.439
-Thank you. Thank you, Colin. Yeah.
+Thank you. Thank you, Corwin. Yeah.
00:09:12.440 --> 00:09:14.039
Thank you. Thank you for that question.
+NOTE Q: Do you think that we are falling behind in productivity as Emacs users? Compared to all these VSCode forks that have 1000 buttons and textboxes everywhere (i.e. much richer UIs which are basically webpages).
+
00:09:14.040 --> 00:09:18.759
Do you think we're falling behind in productivity as Emacs users
@@ -774,6 +784,8 @@ I shouldn't be doing so much active listening.
00:12:12.280 --> 00:12:17.479
No, no, I appreciate your input.
+NOTE Q: I've been using Claude Code extensively. I recently switched to Agent Shell with Claude Code. Have you tried it, what are your thoughts?
+
00:12:17.480 --> 00:12:23.079
OK, next is I've been using Claude Code extensively.
@@ -799,10 +811,10 @@ If Agent Shell did exist,
I probably would have demoed it as well.
00:12:41.240 --> 00:12:45.359
-Agent Hell is great in the sense of it's
+Agent shell is great in the sense of it's...
00:12:45.360 --> 00:12:53.719
-It does use comment, which is the way that I think all Emacs users
+It does use comint, which is the way that I think all Emacs users
00:12:53.720 --> 00:12:57.039
would prefer to interact with something like Claude Code,
@@ -853,13 +865,13 @@ It's progressing rapidly.
But it's not as rich in functionality
00:13:37.480 --> 00:13:40.119
-as using quad code directly.
+as using Claude Code directly.
00:13:40.120 --> 00:13:44.839
On the other hand, because it's letting Emacs be Emacs
00:13:44.840 --> 00:13:49.239
-and using comment, it's a much better experience
+and using comint, it's a much better experience
00:13:49.240 --> 00:13:50.919
to actually give instructions.
@@ -901,7 +913,7 @@ in order to me, I think there's
kind of the sweet spot that I like.
00:14:23.520 --> 00:14:26.639
-Um, but HHL is a great step forward
+Um, but agent-shell is a great step forward
00:14:26.640 --> 00:14:29.879
and I think it's, uh, it's quite good to use.
@@ -909,6 +921,8 @@ and I think it's, uh, it's quite good to use.
00:14:29.880 --> 00:14:32.119
And I, I personally use it a lot.
+NOTE Q: In terms of agent selection, what has your experience been with different agents, and have you had any success with hosting your own models and using open weights?
+
00:14:32.120 --> 00:14:40.479
Um, OK, so in terms of, next question,
@@ -937,7 +951,7 @@ I think Claude Code is, most people I know
would say Claude Code is probably,
00:15:03.480 --> 00:15:07.479
-sorry, Cloud is probably the best for coding right now.
+sorry, Claude is probably the best for coding right now.
00:15:07.480 --> 00:15:09.919
Gemini can be very hit and miss even with 3.0,
@@ -1027,7 +1041,7 @@ just because they just have more horsepower,
they can churn through those tokens a little quicker.
00:16:38.680 --> 00:16:44.719
-So, I'll just break in here to say,
+[Corwin]: So, I'll just break in here to say,
00:16:44.720 --> 00:16:46.239
we've got about 7 minutes left
@@ -1050,11 +1064,11 @@ to jump in and prep with the next speaker,
00:16:58.680 --> 00:17:00.359
but you'll be able to keep going
-00:17:00.360 --> 00:17:02.599
+00:17:00.360 --> 00:17:04.119
as long as you have the steam for it.
-00:17:02.600 --> 00:17:06.159
-Yeah, I think we have 3 questions. Yeah, thanks.
+00:17:04.120 --> 00:17:06.159
+[Andrew]: Yeah, I think we have 3 questions. Yeah, thanks.
00:17:06.160 --> 00:17:08.239
I think we have 3 questions.
@@ -1062,8 +1076,11 @@ I think we have 3 questions.
00:17:08.240 --> 00:17:09.719
Let's see if we can get through them
-00:17:09.720 --> 00:17:17.359
-all in that time period. OK, this one is interesting talk.
+00:17:09.720 --> 00:17:13.267
+all in that time period.
+
+00:17:13.268 --> 00:17:17.359
+OK, this one is interesting talk.
00:17:17.360 --> 00:17:20.439
I'll start by asking it for everything, but is it editing?
@@ -1077,6 +1094,8 @@ So yes, let us all ask, but is it editing?
00:17:29.720 --> 00:17:33.439
All right. I can move on to the comment area.
+NOTE Q: I'm reading angst in your thinking about AI/editing. What are you excited about?
+
00:17:33.440 --> 00:17:40.319
I'm reading angst in your thinking about AI editing.
@@ -1108,19 +1127,19 @@ And I think there's lots of opportunities,
clever opportunities to do things
00:18:07.840 --> 00:18:11.079
-we couldn't have thought of Things that are useful,
+we couldn't have thought of... Things that are useful,
00:18:11.080 --> 00:18:14.919
but in ways that are not super obvious to us,
-00:18:14.920 --> 00:18:18.519
+00:18:14.920 --> 00:18:17.019
and I think I'm still excited
-00:18:18.520 --> 00:18:23.839
+00:18:17.020 --> 00:18:22.939
about the possibilities of using them in ways that are super helpful
-00:18:23.840 --> 00:18:29.319
-and different than. normal. I'll give you an example.
+00:18:22.940 --> 00:18:29.319
+and different than normal. I'll give you an example.
00:18:29.320 --> 00:18:33.199
This is something that I intend to, I think,
@@ -1159,7 +1178,7 @@ Yes. There are some smart people who remember this
but I am not one of them.
00:19:11.200 --> 00:19:13.639
-And so I think like something like this is like you just type out,
+And so I think, like, something like this is like, you just type out,
00:19:13.640 --> 00:19:17.279
find me this file, and it will substitute
@@ -1174,7 +1193,7 @@ I think this is, there's a lot of little,
little tweaks you could do like, you know, if you want the AI,
00:19:24.320 --> 00:19:26.679
-it could be there for you. And it will help you.
+it could be there for you, and it will help you.
00:19:26.680 --> 00:19:27.559
And if you don't want it,
@@ -1183,7 +1202,7 @@ And if you don't want it,
it's not going to get in your way.
00:19:28.920 --> 00:19:30.639
-And I think this is where eMath can really shine.
+And I think this is where Emacs can really shine.
00:19:30.640 --> 00:19:33.079
It can really take advantage of LLMs,
@@ -1200,6 +1219,8 @@ So thank you for that great question.
00:19:43.920 --> 00:19:47.919
And then the final question. Yep.
+NOTE Q: Why does it matter to have a richer UI? All that is left is basically writing and getting the results.
+
00:19:47.920 --> 00:19:50.839
This final question is, why does it matter to have a richer UI?
@@ -1216,7 +1237,7 @@ about Emacs not having a richer UI before,
but I think it does matter a lot for all sorts of things.
00:20:03.160 --> 00:20:07.159
-It's hard to kind of explain succinctly
+It's hard to kind of explain succinctly,
00:20:07.160 --> 00:20:08.519
because I'm talking about UI
@@ -1225,28 +1246,28 @@ because I'm talking about UI
and I'd have to show you things.
00:20:09.760 --> 00:20:14.599
-But it should be just something like oh I have an error
+But it should be just something like, oh I have an error,
00:20:14.600 --> 00:20:15.799
and I'm using flymake and I'm,
00:20:15.800 --> 00:20:17.759
-I'm using the you know I have options
+I'm using the... I have options
00:20:17.760 --> 00:20:19.839
where it'll show me the error in line
00:20:19.840 --> 00:20:22.639
-by like underlining things and having a little message,
+by underlining things and having a little message,
00:20:22.640 --> 00:20:24.079
-but like, you know what that message
+but like, you know what, that message
00:20:24.080 --> 00:20:26.399
-doesn't appear quite right, a lot of the times,
+doesn't appear quite right a lot of the times.
00:20:26.400 --> 00:20:30.159
-or here's another one like. I program in Python a lot.
+Or here's another one like. I program in Python a lot.
00:20:30.160 --> 00:20:33.479
And Python, it's super hard to program in
@@ -1275,11 +1296,14 @@ And so you kind of have to hack it in.
00:20:47.760 --> 00:20:49.479
And there's lots of ways to mess it up.
-00:20:49.480 --> 00:20:52.799
-And when editing, you'll find yourself messing this thing up.
+00:20:49.480 --> 00:20:52.156
+And when editing, you'll find yourself
-00:20:52.800 --> 00:20:57.159
-regularly. So it doesn't look quite clean.
+00:20:52.157 --> 00:20:55.260
+messing this thing up regularly.
+
+00:20:55.261 --> 00:20:57.159
+So it doesn't look quite clean.
00:20:57.160 --> 00:20:59.079
And like, there's little artifacts,
@@ -1290,17 +1314,17 @@ or, you know, there's little ways that it,
00:21:01.040 --> 00:21:02.359
it kind of gets things wrong,
-00:21:02.360 --> 00:21:06.279
-or you can, you can get things wrong with it.
+00:21:02.360 --> 00:21:03.939
+or you can get things wrong with it.
-00:21:06.280 --> 00:21:10.039
+00:21:03.940 --> 00:21:07.519
So I think that, like,
-00:21:10.040 --> 00:21:11.879
+00:21:07.520 --> 00:21:13.619
there's a lot of issues with that sort of thing.
-00:21:11.880 --> 00:21:15.759
-And, and also, like, you know,
+00:21:13.620 --> 00:21:15.759
+And also, like, you know,
00:21:15.760 --> 00:21:17.719
what if you want to do something like play a video inline,
@@ -1308,23 +1332,23 @@ what if you want to do something like play a video inline,
00:21:17.720 --> 00:21:19.559
like, I don't know, you might should be able to do that,
-00:21:19.560 --> 00:21:20.839
+00:21:19.560 --> 00:21:21.599
you might should be able to do anything.
-00:21:20.840 --> 00:21:23.799
-But right now it just can't and I think
+00:21:21.600 --> 00:21:23.799
+But right now, it just can't. I think
00:21:23.800 --> 00:21:24.999
-a lot of the reason as well
+a lot of the reason as well...
00:21:25.000 --> 00:21:26.519
-we you know we wanted to be compatible
+you know, we wanted to be compatible
00:21:26.520 --> 00:21:29.919
-with you know TRS 80 machines or something like that
+with TRS 80 machines or something like that.
00:21:29.920 --> 00:21:33.159
-and it's this is important this really is important,
+This is important, this really is important,
00:21:33.160 --> 00:21:34.719
but I hope there's some way
@@ -1333,7 +1357,7 @@ but I hope there's some way
that we can kind of eventually figure out
00:21:36.080 --> 00:21:39.279
-how to get the best of you know both compatibility and.
+how to get the best of both compatibility and
00:21:39.280 --> 00:21:44.879
more modern UIs. So, you know, we can have more modern UIs
@@ -1389,6 +1413,8 @@ that are working behind the scenes.
00:22:23.320 --> 00:22:25.079
So thank you all for putting this together.
+NOTE Wrapping up
+
00:22:25.080 --> 00:22:29.199
I'm so happy that we all are here. We care about Emacs.
@@ -1405,22 +1431,22 @@ this really remarkable achievement.
Like it's amazing that it exists. It continues to exist.
00:22:41.800 --> 00:22:42.999
-It hasn't got, it's hard.
+It hasn't got... It's hard.
00:22:43.000 --> 00:22:45.159
It's like, really, there's a lot of work to go into it.
00:22:45.160 --> 00:22:47.559
-So I think let's all just appreciate everyone who,
+So I think let's all just appreciate everyone
00:22:47.560 --> 00:22:50.679
-who like contributes and makes all of this possible.
+who contributes and makes all of this possible.
00:22:50.680 --> 00:22:52.159
Cause it's, if you ever read
00:22:52.160 --> 00:22:53.279
-the Emacs Develop mailing list,
+the emacs-devel mailing list,
00:22:53.280 --> 00:22:55.479
it's a lot of work, a lot of deep thinking,
@@ -1443,8 +1469,11 @@ all the libraries, all the LLM stuff we mentioned before.
00:23:07.760 --> 00:23:09.839
You're all doing such a fantastic job.
-00:23:09.840 --> 00:23:13.799
-It's exciting to be here. Thank you for your talk, Andrew.
+00:23:09.840 --> 00:23:12.323
+It's exciting to be here.
+
+00:23:12.324 --> 00:23:13.799
+[Corwin]: Thank you for your talk, Andrew.
00:23:13.800 --> 00:23:16.159
It's been just fascinating.
@@ -1455,6 +1484,8 @@ If you don't mind, I'd love to jump
00:23:19.760 --> 00:23:23.879
right over to the last question. OK, let's do that.
+NOTE Q: I have 45+ years editing, programming. I'm not sure I can think about things without thinking of buffers, editors etc. Is this a handicap/should we just have people with no experience with code learn to prompt?
+
00:23:23.880 --> 00:23:27.599
It says, I have 45 plus years editing programming.
@@ -1474,7 +1505,7 @@ Should we have people with no experience
with code learning to prompt?
00:23:35.320 --> 00:23:38.799
-Well, this is something I do have a strong opinion about.
+[Andrew]: Well, this is something I do have a strong opinion about.
00:23:38.800 --> 00:23:42.159
I feel like I do not want to see people that have no experience
@@ -1522,7 +1553,7 @@ Software engineering is making sure everything is scalable
and all sorts of things that it's unlikely,
00:24:19.600 --> 00:24:21.759
-I think, that an LM is going to get right.
+I think, that an LLM is going to get right.
00:24:21.760 --> 00:24:25.279
And I've seen a lot of bad cases
@@ -1531,13 +1562,13 @@ And I've seen a lot of bad cases
where people who don't understand code
00:24:27.200 --> 00:24:31.159
-are doing things and it's not working well
+are doing things and it's not working well,
00:24:31.160 --> 00:24:33.239
because they don't understand
00:24:33.240 --> 00:24:35.279
-some of the some of the complexities
+some of the complexities
00:24:35.280 --> 00:24:36.959
or some of the concerns that that you might have
@@ -1581,11 +1612,8 @@ not 45 years, but a lot. And, and I think that it's those,
00:25:13.080 --> 00:25:14.839
those years of experience will only help you.
-00:25:14.840 --> 00:25:16.919
-And I think it's, it's, it's a great,
-
-00:25:16.920 --> 00:25:19.639
-it's great to kind of dip your toes in the water
+00:25:14.840 --> 00:25:19.639
+And I think it's great to dip your toes in the water
00:25:19.640 --> 00:25:20.732
and see what you can do.
diff --git a/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main--chapters.vtt b/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main--chapters.vtt
new file mode 100644
index 00000000..e7ff6eec
--- /dev/null
+++ b/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main--chapters.vtt
@@ -0,0 +1,41 @@
+WEBVTT
+
+
+00:00:00.000 --> 00:01:05.000
+Introduction
+
+00:01:05.000 --> 00:02:18.000
+The main themes of this video
+
+00:02:18.000 --> 00:02:54.000
+Inner views of Emacs objects
+
+00:02:54.000 --> 00:03:35.000
+Older Emacses
+
+00:03:35.000 --> 00:05:30.000
+Newer Emacses
+
+00:05:30.000 --> 00:06:41.000
+Help buttons
+
+00:06:41.000 --> 00:09:34.000
+"Anyone can learn Lisp in one day"
+
+00:09:34.000 --> 00:12:56.000
+Lambdas for beginners broken
+
+00:12:59.302 --> 00:17:29.119
+Demo
+
+00:17:29.120 --> 00:21:52.839
+Printing something in different ways for lambdas
+
+00:21:52.840 --> 00:22:42.159
+Exploring buttons
+
+00:22:42.160 --> 00:24:05.799
+Some design decisions behind EEV
+
+00:24:05.800 --> 00:25:22.520
+Tests
diff --git a/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt b/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt
index e461b1f1..3acf1d66 100644
--- a/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt
+++ b/2025/captions/emacsconf-2025-modern--some-problems-of-modernizing-emacs--eduardo-ochs--main.vtt
@@ -2,8 +2,52 @@ WEBVTT
Kind: captions
Language: en-GB
-00:00:54.000 --> 00:00:55.000
-
+NOTE Introduction
+
+00:00:00.000 --> 00:00:02.359
+Hi, my name is Eduardo Ochs,
+
+00:00:02.360 --> 00:00:06.639
+and this is my video for the EmacsConf 2025.
+
+00:00:06.640 --> 00:00:09.799
+Its title is Some Problems of Modernizing Emacs,
+
+00:00:09.800 --> 00:00:12.839
+and that is the same title as a video
+
+00:00:12.840 --> 00:00:16.199
+that I tried to record in March.
+
+00:00:16.200 --> 00:00:19.879
+But my video from March had a good "beginning" and a bad "rest",
+
+00:00:19.880 --> 00:00:23.759
+and I thought, I can't release that because the rest is very bad.
+
+00:00:23.760 --> 00:00:27.919
+I need to replace... to re-record the last part of the video.
+
+00:00:27.920 --> 00:00:29.759
+But I never did that.
+
+00:00:29.760 --> 00:00:33.199
+So this video is going to be the first 12 minutes
+
+00:00:33.200 --> 00:00:37.959
+of that other video, with another ending.
+
+00:00:37.960 --> 00:00:41.439
+And in this other ending, I'm going to show some things
+
+00:00:41.440 --> 00:00:46.639
+that are very easy to test. And, if people are interested,
+
+00:00:46.640 --> 00:00:51.799
+then the rest of the old video will make more sense.
+
+00:00:51.800 --> 00:00:55.059
+Anyway, let me start.
00:00:55.000 --> 00:00:57.000
Hi! My name is Eduardo Ochs. I'm the
@@ -17,6 +61,8 @@ the title of this video is
00:01:03.000 --> 00:01:05.000
"Some problems of modernizing Emacs".
+NOTE The main themes of this video
+
00:01:05.000 --> 00:01:08.000
Here is a summary of the main themes
@@ -78,11 +124,13 @@ I will also show how to display
better "inner views" of Emacs objects...
00:02:13.000 --> 00:02:16.000
-I'm going to Define what is an inner view,
+I'm going to define what is an inner view,
00:02:16.000 --> 00:02:18.000
of course.
+NOTE Inner views of Emacs objects
+
00:02:18.000 --> 00:02:20.000
The main trick is that we are going
@@ -90,13 +138,13 @@ The main trick is that we are going
to use one of the ways of displaying
00:02:24.000 --> 00:02:29.000
-internal objects, that is the `cl-print'
+internal objects, that is the `cl-print`
00:02:29.000 --> 00:02:32.000
family of functions, for example,
00:02:32.000 --> 00:02:35.000
-`cl-prin1-to-string', and here are some
+`cl-prin1-to-string`, and here are some
00:02:35.000 --> 00:02:37.000
examples of the kind of output that we
@@ -108,16 +156,18 @@ are going to see...
for example, if we run these two lines
00:02:44.000 --> 00:02:47.000
-here the first line defines a function `foo'
+here the first line defines a function `foo`
00:02:47.000 --> 00:02:52.000
-and the second line sets `o' to the
+and the second line sets `o` to the
00:02:52.000 --> 00:02:54.000
-internal view of the definition of `foo'.
+internal view of the definition of `foo`.
+
+NOTE Older Emacses
00:02:54.000 --> 00:02:59.000
-In older Emacses `o' would be just a
+In older Emacses `o` would be just a
00:02:59.000 --> 00:03:02.000
list that looks... that would look very
@@ -129,7 +179,7 @@ similar to this line here... but in newer
Emacses the result of this - I mean, the
00:03:09.000 --> 00:03:12.000
-the contents of `o' is this thing here,
+the contents of `o` is this thing here,
00:03:12.000 --> 00:03:15.000
that looks quite different
@@ -144,10 +194,10 @@ So, in older Emacses
the contents of the
00:03:25.000 --> 00:03:28.000
-function cell of `o'...
+function cell of `o`...
00:03:28.000 --> 00:03:30.000
-sorry, of the function cell of `foo',
+sorry, of the function cell of `foo`,
00:03:30.000 --> 00:03:32.000
would be an "old-style lambda",
@@ -155,6 +205,8 @@ would be an "old-style lambda",
00:03:32.000 --> 00:03:35.000
that would be just a list like this...
+NOTE Newer Emacses
+
00:03:35.000 --> 00:03:39.000
and in newer Emacses uh the contents of O would
@@ -195,7 +247,7 @@ printed representation is this one, that is
generated by a family of functions with
00:04:07.000 --> 00:04:09.000
-names like `prin1'...
+names like `prin1`...
00:04:09.000 --> 00:04:13.000
and the second semicanonical printed
@@ -210,16 +262,16 @@ it looks like a list...
it looks somewhat like this definition
00:04:23.000 --> 00:04:27.000
-of `foo' here, but it has this
+of `foo` here, but it has this
00:04:27.000 --> 00:04:29.000
-`:dynbind' symbol here...
+`:dynbind` symbol here...
00:04:29.000 --> 00:04:32.000
and it turns out that when we use
00:04:32.000 --> 00:04:35.000
-the `cl-print' family of functions we can
+the `cl-print` family of functions we can
00:04:35.000 --> 00:04:37.000
reconfigure how things are printed...
@@ -237,7 +289,7 @@ and one of the ways is going to
be like this.
00:04:52.000 --> 00:04:56.000
-We can also use the `cl-print'
+We can also use the `cl-print`
00:04:56.000 --> 00:04:59.000
functions with my indentation tricks to
@@ -258,7 +310,7 @@ This is what Emacs considers as being
the definition of the type
00:05:16.000 --> 00:05:18.000
-`cl-structure-class',
+`cl-structure-class`,
00:05:18.000 --> 00:05:21.000
class and it is this big thing here.
@@ -267,10 +319,12 @@ class and it is this big thing here.
I edited it very lightly...
00:05:24.000 --> 00:05:30.000
-I just uh deleted some line breaks here.
+I just deleted some line breaks here.
+
+NOTE Help buttons
00:05:30.000 --> 00:05:33.000
-And another thing that I want to to
+And another thing that I want to
00:05:33.000 --> 00:05:35.000
explain is that Emacs
@@ -306,10 +360,10 @@ this type here, that we just saw in
its internal view here...
00:06:00.000 --> 00:06:02.000
-we can run either `describe-type'
+we can run either `describe-type`
00:06:02.000 --> 00:06:04.000
-or my variant of `describe-type',
+or my variant of `describe-type`,
00:06:04.000 --> 00:06:07.000
and we get a help buffer
@@ -353,6 +407,8 @@ and what I'm trying to do to
00:06:37.000 --> 00:06:41.000
overcome these problems...
+NOTE "Anyone can learn Lisp in one day"
+
00:06:41.000 --> 00:06:43.000
One of my slogans in this video
@@ -423,7 +479,7 @@ and another one is its "value as a function"...
and if we run this we store 42
00:08:02.000 --> 00:08:07.000
-in the "value cell" of the symbol `foo', and
+in the "value cell" of the symbol `foo`, and
00:08:07.000 --> 00:08:11.000
if we run this defun here it stores a
@@ -432,7 +488,7 @@ if we run this defun here it stores a
certain anonymous function in the
00:08:14.000 --> 00:08:18.000
-"function cell" of the symbol `foo'...
+"function cell" of the symbol `foo`...
00:08:18.000 --> 00:08:22.000
and in Emacs, until some time ago
@@ -483,13 +539,13 @@ this expression here, (foo foo)...
Emacs would do this: it would
00:09:04.000 --> 00:09:06.000
-replace the first `foo' by this
+replace the first `foo` by this
00:09:06.000 --> 00:09:09.000
anonymous function here, it would replace
00:09:09.000 --> 00:09:11.000
-the second `foo' by the value of `foo' as a
+the second `foo` by the value of `foo` as a
00:09:11.000 --> 00:09:13.000
variable, that is 42,
@@ -515,6 +571,8 @@ Let me show... let me talk
00:09:30.000 --> 00:09:34.000
a bit more about why...
+NOTE Lambdas for beginners broken
+
00:09:34.000 --> 00:09:36.000
the title of this slide is
@@ -624,7 +682,7 @@ open black boxes like this...
they could try to see what was in the
00:11:20.000 --> 00:11:24.000
-function cell of the symbol `foo'...
+function cell of the symbol `foo`...
00:11:24.000 --> 00:11:27.000
and they would see something elegant and
@@ -650,29 +708,26 @@ very difficult to understand...
00:11:41.000 --> 00:11:44.000
and now our beginners are overwhelmed
-00:11:44.000 --> 00:11:46.000
-instead of mind-blown.
-
-00:11:46.000 --> 00:11:48.000
-Note that I said "black box" here.
+00:11:44.000 --> 00:11:48.000
+instead of mind-blown. Note that I said "black box" here.
00:11:48.000 --> 00:11:52.000
Let me explain the term.
00:11:52.000 --> 00:11:57.000
-We can open what's inside of `foo'...
+We can open what's inside of `foo`...
00:11:57.000 --> 00:11:59.000
-we can open `foo' to see the contents of
+we can open `foo` to see the contents of
00:11:59.000 --> 00:12:02.000
-the symbol `foo', and we can try to see
+the symbol `foo`, and we can try to see
00:12:02.000 --> 00:12:06.000
what's in the function cell of the
00:12:06.000 --> 00:12:08.000
-symbol `foo'...
+symbol `foo`...
00:12:08.000 --> 00:12:10.000
so we can open the box, but what we get
@@ -722,6 +777,645 @@ as the ones that we had before.
00:12:54.000 --> 00:12:56.000
Anyway...
-00:12:56.000 --> 00:20:38.000
-
+NOTE Demo
+
+00:12:59.302 --> 00:13:00.599
+In the beginning of the video,
+
+00:13:00.600 --> 00:13:02.879
+I said that I was going to replace
+
+00:13:02.880 --> 00:13:06.359
+the second part of my video from March
+
+00:13:06.360 --> 00:13:08.799
+by something that was very easy to test.
+
+00:13:08.800 --> 00:13:11.839
+So this is a quick demo for the _very_ impatient.
+
+00:13:11.840 --> 00:13:16.919
+I'm recording this in December for the EmacsConf 2025.
+
+00:13:16.920 --> 00:13:18.999
+This is the demo that I'm going to present.
+
+00:13:19.000 --> 00:13:21.759
+The idea is that people can run the demo a first time
+
+00:13:21.760 --> 00:13:24.399
+just to check that everything works
+
+00:13:24.400 --> 00:13:27.559
+and to have a notion of how things look like,
+
+00:13:27.560 --> 00:13:29.239
+and then, in a second moment,
+
+00:13:29.240 --> 00:13:32.279
+they can rerun the demo more slowly
+
+00:13:32.280 --> 00:13:34.879
+to understand what each step does.
+
+00:13:34.880 --> 00:13:38.799
+So... we are in a file called "00-try-this"...
+
+00:13:38.800 --> 00:13:42.199
+and the idea is that we can execute most of this file
+
+00:13:42.200 --> 00:13:45.359
+just by typing `f8`​s in the right places.
+
+00:13:45.360 --> 00:13:47.479
+Remember that when we type `f8`
+
+00:13:47.480 --> 00:13:49.839
+on a line that starts with two red stars,
+
+00:13:49.840 --> 00:13:53.199
+eev treats that line as a comment.
+
+00:13:53.200 --> 00:13:58.007
+So I'm going to start here... Note that it says in the bottom
+
+00:13:58.008 --> 00:13:59.740
+of the screen that this is a comment.
+
+00:13:59.741 --> 00:14:09.879
+We are going to run this to download some files...
+
+00:14:09.880 --> 00:14:12.959
+Now the files are there...
+
+00:14:12.960 --> 00:14:17.319
+This `find-2a` here shows a certain file
+
+00:14:17.320 --> 00:14:19.159
+at the window at the right,
+
+00:14:19.160 --> 00:14:22.479
+but we don't need to pay attention to that.
+
+00:14:22.480 --> 00:14:24.199
+And this thing `load`​s that file.
+
+00:14:24.200 --> 00:14:27.519
+So when we load that file, it defines some functions here
+
+00:14:27.520 --> 00:14:29.799
+that are going to be used by the rest of the examples.
+
+00:14:29.800 --> 00:14:34.019
+Now we can run this thing here... Note that
+
+00:14:34.020 --> 00:14:34.879
+we just defined some functions
+
+00:14:34.880 --> 00:14:39.359
+and then we ran these functions here... `find-eoutput-2a`...
+
+00:14:39.360 --> 00:14:42.679
+and they show some things in the window at the right.
+
+00:14:42.680 --> 00:14:45.679
+These things are boring.
+
+00:14:45.680 --> 00:14:49.679
+When we run `adt-insert` with argument 42,
+
+00:14:49.680 --> 00:14:52.399
+it just shows a 42, in this way...
+
+00:14:52.400 --> 00:14:55.639
+The other ones show other numbers... and so on.
+
+00:14:55.640 --> 00:14:59.479
+And... what happens when we modify
+
+00:14:59.480 --> 00:15:02.359
+this function here, `adt-2`,
+
+00:15:02.360 --> 00:15:05.199
+by adding and removing advices to it?
+
+00:15:05.200 --> 00:15:06.919
+The idea is that people can run
+
+00:15:06.920 --> 00:15:08.679
+this thing here several times,
+
+00:15:08.680 --> 00:15:10.799
+watching the window at the right,
+
+00:15:10.800 --> 00:15:14.719
+because the results are going to be shown there.
+
+00:15:14.720 --> 00:15:17.799
+So, in the first moment, when we run...
+
+00:15:17.800 --> 00:15:21.679
+no, no, sorry, sorry, let me run it again.
+
+00:15:21.680 --> 00:15:24.039
+In the first moment when we run `adt-2`
+
+00:15:24.040 --> 00:15:28.239
+it just shows a 2, and then we modify it in a certain way,
+
+00:15:28.240 --> 00:15:29.479
+and we run it again,
+
+00:15:29.480 --> 00:15:33.799
+and now before showing the 2 it shows a 1, mysteriously,
+
+00:15:33.800 --> 00:15:37.119
+and then we add something to be run after the 2,
+
+00:15:37.120 --> 00:15:38.479
+And we run it again,
+
+00:15:38.480 --> 00:15:41.839
+and now `adt-2` shows these three things.
+
+00:15:41.840 --> 00:15:43.959
+And then we remove the advices,
+
+00:15:43.960 --> 00:15:45.159
+we remove these other things,
+
+00:15:45.160 --> 00:15:49.079
+and when we run `adt-2` again, it shows only `;; --> 2`.
+
+00:15:49.080 --> 00:15:51.879
+It's impossible to understand that in the first time,
+
+00:15:51.880 --> 00:15:57.879
+so we can run that several times... to see how things work.
+
+00:15:57.880 --> 00:16:02.279
+And now we want to understand
+
+00:16:02.280 --> 00:16:04.959
+what changes in the function `adt-2`...
+
+00:16:04.960 --> 00:16:08.639
+how it is modified internally.
+
+00:16:08.640 --> 00:16:11.479
+I'm calling that the internal view of the function,
+
+00:16:11.480 --> 00:16:13.599
+and we are going to compare
+
+00:16:13.600 --> 00:16:16.679
+several internal views of the function `adt-2`.
+
+00:16:16.680 --> 00:16:19.999
+I'm going to reset the function `adt-2`
+
+00:16:20.000 --> 00:16:25.679
+by removing the advices and placing the advices on it again...
+
+00:16:25.680 --> 00:16:28.507
+and if we just pretty-print this function here,
+
+00:16:28.508 --> 00:16:36.319
+the symbol... the value of this symbol here as a function,
+
+00:16:36.320 --> 00:16:38.639
+it is something very ugly.
+
+00:16:38.640 --> 00:16:43.839
+But if we print it in another way, with `cl-prin1`,
+
+00:16:43.840 --> 00:16:47.239
+then we get something that is much nicer...
+
+00:16:47.240 --> 00:16:51.159
+but that is not indented. And if we use this thing here,
+
+00:16:51.160 --> 00:16:55.839
+`cl-prin2` instead of `cl-prin1`, it becomes indented.
+
+00:16:55.840 --> 00:17:00.839
+So let's try it again.
+
+00:17:00.840 --> 00:17:06.799
+Here is the current view of what is `adt-2`.
+
+00:17:06.800 --> 00:17:09.999
+So, the original `adt-insert` is here...
+
+00:17:10.000 --> 00:17:11.839
+and here are some modifications
+
+00:17:11.840 --> 00:17:13.519
+that were added by the advices.
+
+00:17:13.520 --> 00:17:16.759
+And we can run these things many times
+
+00:17:16.760 --> 00:17:19.239
+to understand what each step does.
+
+00:17:19.240 --> 00:17:21.239
+But my suggestion is: in the first time
+
+00:17:21.240 --> 00:17:23.879
+just run everything very quickly...
+
+00:17:23.880 --> 00:17:25.199
+and then you run it again,
+
+00:17:25.200 --> 00:17:29.119
+paying attention to the parts that look more interesting.
+
+NOTE Printing something in different ways for lambdas
+
+00:17:29.120 --> 00:17:37.373
+Now, I'm going to... Remember that here
+
+00:17:37.374 --> 00:17:42.559
+I printed the contents of `adt-2` in several different ways,
+
+00:17:42.560 --> 00:17:47.119
+and now I'm going to show how we can do the same idea
+
+00:17:47.120 --> 00:17:51.599
+of printing something in different ways for lambdas...
+
+00:17:51.600 --> 00:17:52.919
+that is something that I explained
+
+00:17:52.920 --> 00:17:54.639
+in the first part of the video.
+
+00:17:54.640 --> 00:18:00.639
+In this part of the demo we define a function `foo`...
+
+00:18:00.640 --> 00:18:06.360
+this `setq` here defines `o` as
+
+00:18:06.361 --> 00:18:08.959
+the contents of the function cell of `foo`...
+
+00:18:08.960 --> 00:18:12.999
+And now we are going to print
+
+00:18:13.000 --> 00:18:15.399
+that `o` in several different ways.
+
+00:18:15.400 --> 00:18:19.199
+The default way is this one, it's very ugly,
+
+00:18:19.200 --> 00:18:22.239
+but we can redefine how these things are printed
+
+00:18:22.240 --> 00:18:24.559
+by just running these lines...
+
+00:18:24.560 --> 00:18:28.719
+and if we pay attention at what's happening
+
+00:18:28.720 --> 00:18:30.519
+at the window at the right,
+
+00:18:30.520 --> 00:18:33.559
+we can see that we have several different
+
+00:18:33.560 --> 00:18:35.759
+printed representations for the same thing...
+
+00:18:35.760 --> 00:18:36.879
+and then at the last step,
+
+00:18:36.880 --> 00:18:41.079
+we reset the printer to the default representation.
+
+00:18:41.080 --> 00:18:43.279
+And the details are here.
+
+00:18:43.280 --> 00:18:44.999
+If we run these lines here,
+
+00:18:45.000 --> 00:18:48.759
+they show the definitions at the window at the right.
+
+00:18:48.760 --> 00:18:53.879
+And this... now comes the difficult part,
+
+00:18:53.880 --> 00:18:56.679
+in which we have to do something
+
+00:18:56.680 --> 00:19:02.079
+besides just running things with F8. We need
+
+00:19:02.080 --> 00:19:04.919
+a help buffer with buttons...
+
+00:19:04.920 --> 00:19:08.919
+buttons in the traditional sense,
+
+00:19:08.920 --> 00:19:11.559
+and we need to choose a certain button there,
+
+00:19:11.560 --> 00:19:13.439
+or any button there,
+
+00:19:13.440 --> 00:19:17.940
+and run `M-x ee-set-button` on that button.
+
+00:19:17.941 --> 00:19:24.719
+So, let me define a `struct` here,
+
+00:19:24.720 --> 00:19:29.359
+and this is some help on what is that structure.
+
+00:19:29.360 --> 00:19:33.599
+I'm going to choose this button here
+
+00:19:33.600 --> 00:19:40.159
+and I'm going to type `M-x ee-set-button`.
+
+00:19:40.160 --> 00:19:43.559
+The message is a bit obscure.
+
+00:19:43.560 --> 00:19:47.959
+And now we have something that displays
+
+00:19:47.960 --> 00:19:51.079
+a lot of information about that button...
+
+00:19:51.080 --> 00:19:53.919
+And we can also run that with just `F8`s.
+
+00:19:53.920 --> 00:20:00.279
+By the way, if we want to understand
+
+00:20:00.280 --> 00:20:02.319
+the code that's behind these things,
+
+00:20:02.320 --> 00:20:04.839
+we can run this sexp here.
+
+00:20:04.840 --> 00:20:07.959
+It is going to show the code here at the right.
+
+00:20:07.960 --> 00:20:10.759
+But anyway, these first lines here...
+
+00:20:10.760 --> 00:20:15.479
+they display the output in the echo area... Let's try...
+
+00:20:15.480 --> 00:20:20.559
+And each one of them extracts a different part
+
+00:20:20.560 --> 00:20:22.559
+of the information on that button.
+
+00:20:22.560 --> 00:20:26.039
+And these other lines here create a three-window setting
+
+00:20:26.040 --> 00:20:29.639
+in which the help buffer is shown here,
+
+00:20:29.640 --> 00:20:33.119
+and the result of some other thing
+
+00:20:33.120 --> 00:20:39.979
+is shown in the third window. Let's try...
+
+00:20:39.980 --> 00:20:41.164
+So now that we have... well... I said
+
+00:20:41.165 --> 00:20:48.407
+that we needed to choose a certain button
+
+00:20:48.408 --> 00:20:53.439
+and run `M-x ee-set-button` there. We have done that...
+
+00:20:53.440 --> 00:20:55.919
+so now this variable `ee-button`
+
+00:20:55.920 --> 00:20:58.439
+contains information about the button...
+
+00:20:58.440 --> 00:21:01.119
+And now we can run this part here
+
+00:21:01.120 --> 00:21:03.479
+as many times as we want to...
+
+00:21:03.480 --> 00:21:07.479
+try to understand what are the values of these things here...
+
+00:21:07.480 --> 00:21:11.679
+and how some things start with a value that is very complex
+
+00:21:11.680 --> 00:21:13.839
+and very difficult to understand,
+
+00:21:13.840 --> 00:21:16.839
+and then we extract the more interesting parts.
+
+00:21:16.840 --> 00:21:22.279
+And the details, as I said, are here.
+
+00:21:22.280 --> 00:21:26.759
+That was the end of the demo, and my question is,
+
+00:21:26.760 --> 00:21:28.559
+what was your reaction to that?
+
+00:21:28.560 --> 00:21:32.679
+If your reaction was more like "wow" than like "blergh"
+
+00:21:32.680 --> 00:21:37.039
+then you might like the last part of the video that I recorded in March,
+
+00:21:37.040 --> 00:21:38.399
+that was very technical...
+
+00:21:38.400 --> 00:21:42.719
+When I recorded it, I thought, oh my god, this video is very bad...
+
+00:21:42.720 --> 00:21:47.279
+only the hardcore eev users are going to like that,
+
+00:21:47.280 --> 00:21:51.039
+and there are less than five hardcore
+
+00:21:51.040 --> 00:21:52.839
+eev users in the world...
+
+NOTE Exploring buttons
+
+00:21:52.840 --> 00:21:56.639
+But anyway, if you saw that introduction
+
+00:21:56.640 --> 00:21:59.079
+and you think that these things are interesting,
+
+00:21:59.080 --> 00:22:02.999
+you can execute any one of these S-expressions here
+
+00:22:03.000 --> 00:22:05.999
+and take a look at the final part of that video
+
+00:22:06.000 --> 00:22:09.559
+that describes how I wrote some functions
+
+00:22:09.560 --> 00:22:14.239
+for exploring buttons. If you execute this sexp here,
+
+00:22:14.240 --> 00:22:19.559
+it plays a part of the video starting from that position.
+
+00:22:19.560 --> 00:22:26.919
+If you execute this one, you go to the subtitles in HTML...
+
+00:22:26.920 --> 00:22:30.559
+and if you run this one, you go
+
+00:22:30.560 --> 00:22:36.159
+to the subtitles in another format. And... that's it!
+
+00:22:36.160 --> 00:22:40.119
+No, no, sorry, I said "that's it",
+
+00:22:40.120 --> 00:22:42.159
+but I forgot a very important part...
+
+NOTE Some design decisions behind eev
+
+00:22:42.160 --> 00:22:45.159
+I had prepared this slide here
+
+00:22:45.160 --> 00:22:48.507
+to explain some design decisions behind eev
+
+00:22:48.508 --> 00:22:53.679
+and why there are so few users of eev... and let me do that.
+
+00:22:53.680 --> 00:22:57.919
+The thing is that my working memory is very small,
+
+00:22:57.920 --> 00:23:01.279
+and I need examples that are easy to visualize...
+
+00:23:01.280 --> 00:23:04.959
+ideally, examples that are easy to run
+
+00:23:04.960 --> 00:23:10.307
+and that I can compare the outputs
+
+00:23:10.308 --> 00:23:12.159
+of different ways of running them.
+
+00:23:12.160 --> 00:23:16.359
+For me, understanding specifications
+
+00:23:16.360 --> 00:23:20.679
+in an API is not enough... examples work much better for me.
+
+00:23:20.680 --> 00:23:24.439
+Also, I make lots of mistakes when I type...
+
+00:23:24.440 --> 00:23:28.399
+so I need ways to run my executable notes
+
+00:23:28.400 --> 00:23:31.879
+by just typing `f8` and `M-e`...
+
+00:23:31.880 --> 00:23:37.039
+and... most people in the #emacs channel and in other places
+
+00:23:37.040 --> 00:23:44.519
+recommend executing sexps by typing `M-:`, like this...
+
+00:23:44.520 --> 00:23:49.239
+But I hate that... I think that `M-:` and IELM are
+
+00:23:49.240 --> 00:23:54.559
+for people who type well, so not me...
+
+00:23:54.560 --> 00:23:58.839
+And also, 99% of what I do is scratch code.
+
+00:23:58.840 --> 00:24:01.639
+Very few things that I do go
+
+00:24:01.640 --> 00:24:05.799
+into "production" - between quotes.
+
+NOTE Tests
+
+00:24:05.800 --> 00:24:10.199
+So most of my tests are not automated tests.
+
+00:24:10.200 --> 00:24:12.439
+They are just things that I run with F8,
+
+00:24:12.440 --> 00:24:15.879
+and they don't include the expected result.
+
+00:24:15.880 --> 00:24:19.159
+Many people feel that this is very, very, very wrong.
+
+00:24:19.160 --> 00:24:23.279
+Tests MUST MEAN automated tests.
+
+00:24:23.280 --> 00:24:25.639
+Also, and this is very frustrating,
+
+00:24:25.640 --> 00:24:28.399
+eev has lots of "non-users",
+
+00:24:28.400 --> 00:24:31.519
+I mean, people who have tried to use it,
+
+00:24:31.520 --> 00:24:34.759
+but they said that they couldn't figure out how to use it.
+
+00:24:34.760 --> 00:24:36.159
+They couldn't understand
+
+00:24:36.160 --> 00:24:38.079
+what would be the workflows for eev.
+
+00:24:38.080 --> 00:24:43.679
+And that's the same that happens with me with code blocks in Org...
+
+00:24:43.680 --> 00:24:48.759
+I'm still at the point in which code blocks in Org just feel wrong.
+
+00:24:48.760 --> 00:24:55.199
+I still don't understand how to organize my workflows around code blocks.
+
+00:24:55.200 --> 00:24:58.999
+I said that eev has very few users,
+
+00:24:59.000 --> 00:25:02.239
+and they are all very weird and very busy,
+
+00:25:02.240 --> 00:25:06.359
+and I decided that all my blog-ish posts about eev
+
+00:25:06.360 --> 00:25:09.719
+would be things that they can run in a few minutes...
+
+00:25:09.720 --> 00:25:13.039
+just like the demo that I showed a few minutes ago.
+
+00:25:13.040 --> 00:25:16.119
+I said "like the examples in the rest of the video",
+
+00:25:16.120 --> 00:25:17.399
+but I forgot this slide,
+
+00:25:17.400 --> 00:25:19.639
+and I'm recording this after the demo.
+00:25:19.640 --> 00:25:22.520
+So... that's it. Thanks!
diff --git a/2025/captions/emacsconf-2025-python--interactive-python-programming-in-emacs--david-vujic--answers.vtt b/2025/captions/emacsconf-2025-python--interactive-python-programming-in-emacs--david-vujic--answers.vtt
index 676fa744..2ab53895 100644
--- a/2025/captions/emacsconf-2025-python--interactive-python-programming-in-emacs--david-vujic--answers.vtt
+++ b/2025/captions/emacsconf-2025-python--interactive-python-programming-in-emacs--david-vujic--answers.vtt
@@ -1,5 +1,7 @@
WEBVTT
+NOTE Developing Python in Emacs
+
00:00:00.000 --> 00:00:02.839
So as we wait for people to drop
@@ -60,6 +62,8 @@ So I think Emacs is really good for Python development.
00:01:14.440 --> 00:01:16.679
So what are some other...
+NOTE Q: How long have you been using Emacs?
+
00:01:16.680 --> 00:01:18.319
How long have you been using Emacs?
@@ -138,6 +142,8 @@ So that's how it started. So like five years ago, maybe.
00:02:33.520 --> 00:02:39.519
Cool. Um, so did you, what were some other,
+NOTE Q: What editor were you primarily using before?
+
00:02:39.520 --> 00:02:43.999
what, what, what editor were you primarily using before you?
@@ -207,6 +213,8 @@ I don't quite see how your setup works with IPython.
00:03:58.240 --> 00:04:00.279
Sorry if you already answered this.
+NOTE Q: Do you have your Emacs connect to the IPython kernel over the XMPP socket that IPython sets up?
+
00:04:00.280 --> 00:04:03.519
Do you have your Emacs connect to the IPython kernel
@@ -282,6 +290,8 @@ or if I want this connection to a running app,
00:05:32.240 --> 00:05:38.479
I'm using the Jupyter console, basically.
+NOTE Q: Not sure if you've explored Org Babel, but what are the benefits of using your approach over Org?
+
00:05:38.480 --> 00:05:45.199
Have you explored Org Babel at all?
@@ -342,8 +352,10 @@ that are probably more relevant,
00:07:01.640 --> 00:07:05.799
just because a lot of it's kind of over my head.
+NOTE Q: Have you seen marimo.io notebooks? It uses standard Python.
+
00:07:05.800 --> 00:07:12.879
-Have you seen the miramo.io notebooks?
+Have you seen the marimo.io notebooks?
00:07:12.880 --> 00:07:15.279
These use standard Python?
@@ -390,6 +402,8 @@ and you ask about making pasta or some other sort of thing.
00:08:16.600 --> 00:08:20.559
No, go ahead. Go ahead. I'm glad to ask any questions.
+NOTE Q: what LLM did you say you've used?
+
00:08:20.560 --> 00:08:25.679
So just generally about Emacs as a coding developer,
@@ -399,59 +413,59 @@ what are the features
00:08:27.000 --> 00:08:28.479
that you tend to lean on more heavily?
-00:08:28.480 --> 00:08:34.319
-you know completion or you know what what have you
+00:08:28.480 --> 00:08:34.059
+You know completion or you know, what have you...
-00:08:34.320 --> 00:08:36.199
-maybe I could put it better
+00:08:34.060 --> 00:08:35.257
+Maybe I could put it better as:
-00:08:36.200 --> 00:08:40.079
-as what have you spent more time configuring for Emacs
+00:08:35.258 --> 00:08:40.079
+what have you spent more time configuring for Emacs
00:08:40.080 --> 00:08:45.439
to facilitate development?
00:08:45.440 --> 00:08:49.639
-Yes initially it was basically taking away
+Yes, initially, it was basically taking away
00:08:49.640 --> 00:08:51.319
-some of the UI features
+some of the UI features,
00:08:51.320 --> 00:08:56.599
-basically disabling it and and but fairly quickly
+basically disabling it, but fairly quickly,
00:08:56.600 --> 00:08:58.919
-for for both closure development
+for both Clojure development
00:08:58.920 --> 00:09:04.599
-where i was using cider which is like a really good uh good tool um
+where I was using CIDER, which is like a really good tool,
00:09:04.600 --> 00:09:08.159
-and for python when i quickly found lp elp
+and for Python, when I quickly found elpy,
00:09:08.160 --> 00:09:10.599
-i'm not sure how to pronounce it
+I'm not sure how to pronounce it,
00:09:10.600 --> 00:09:16.039
-but you you get so much uh good things from these tools
+but you get so much good things from these tools...
-00:09:16.040 --> 00:09:21.719
-so what i've done additionally is like theme
+00:09:16.040 --> 00:09:21.019
+So what I've done additionally is theme
-00:09:21.720 --> 00:09:27.159
+00:09:21.020 --> 00:09:27.159
and maybe having this environment
-00:09:27.160 --> 00:09:31.479
+00:09:27.160 --> 00:09:29.019
that is without disturbance.
-00:09:31.480 --> 00:09:34.839
+00:09:29.020 --> 00:09:34.839
So I really like the code to have my full attention.
00:09:34.840 --> 00:09:41.239
So I rarely have, maybe I have like a preview sometimes,
00:09:41.240 --> 00:09:45.359
-but mostly it's the window or the buffer where I have my code
+but mostly, it's the window or the buffer where I have my code,
00:09:45.360 --> 00:09:49.879
and I've minimized the running REPL buffer.
@@ -469,21 +483,23 @@ spent my configuration doing that.
And also lately, trying out some LLM tools.
00:10:04.800 --> 00:10:09.279
-So I think I have two packages
+I think I have two packages
00:10:09.280 --> 00:10:12.239
that I'm using actively today.
00:10:12.240 --> 00:10:15.799
-And my favorite is a tool called ECA,
+My favorite is a tool called ECA,
00:10:15.800 --> 00:10:20.199
which is a LLM chat assistant, which is really good.
-00:10:20.200 --> 00:10:24.399
+00:10:20.200 --> 00:10:28.479
The developer is also an Emacs enthusiast.
-00:10:24.400 --> 00:10:33.639
+NOTE Q: Are you building your own Emacs, or using the system packages?
+
+00:10:28.480 --> 00:10:33.639
So are you the type of person that tends to work with
00:10:33.640 --> 00:10:37.039
@@ -505,21 +521,21 @@ I'm not there yet with doing my own builds.
Currently, I'm on macOS,
00:10:55.600 --> 00:11:00.039
-so I'm installing Emacs through broom basically, homebrew.
+so I'm installing Emacs through brew, basically, homebrew.
00:11:00.040 --> 00:11:04.919
I've yet so much Emacs things to learn
00:11:04.920 --> 00:11:07.739
-because I'm not even using org yet.
+because I'm not even using Org yet.
00:11:07.740 --> 00:11:11.559
I'm exploring the this editor.
-00:11:11.560 --> 00:11:14.799
+00:11:11.560 --> 00:11:13.919
So I feel like I'm very much a beginner.
-00:11:14.800 --> 00:11:17.919
+00:11:13.920 --> 00:11:17.919
I'm not using Emacs to its full potential yet.
00:11:17.920 --> 00:11:23.279
@@ -537,10 +553,10 @@ Ed Stallthroat says, thank you
00:11:35.800 --> 00:11:40.839
for publishing your configuration and offers a link.
-00:11:40.840 --> 00:11:41.879
+00:11:40.840 --> 00:11:43.199
Oh, great. Great.
-00:11:41.880 --> 00:11:46.359
+00:11:43.200 --> 00:11:46.359
Yes, those things that I showed in my talk,
00:11:46.360 --> 00:11:49.319
@@ -588,6 +604,8 @@ Yeah, in Sweden, it's dinner time.
00:12:36.600 --> 00:12:40.079
It's like 6 p.m. soon. That fits.
+NOTE Q: Are you involved with local Emacs meetups?
+
00:12:40.080 --> 00:12:46.439
So are you involved with local Emacs meetups?
@@ -615,10 +633,10 @@ into a local community there at all, No, I haven't.
00:13:08.720 --> 00:13:10.759
Not in any community. I haven't done that yet,
-00:13:10.760 --> 00:13:15.679
-but we are like friends that I've gotten to know
+00:13:10.760 --> 00:13:18.215
+but we are... Like, friends that I've gotten to know
-00:13:15.680 --> 00:13:23.439
+00:13:18.216 --> 00:13:23.439
through work and through like open source work that also use Emacs.
00:13:23.440 --> 00:13:28.959
@@ -666,6 +684,8 @@ and thank you so much also for...
00:14:18.760 --> 00:14:24.639
I'm sorry, I saw another question here. Let me cover that.
+NOTE Q: Can you repeat the name of the LLM that you specifically mentioned there? - ECA
+
00:14:24.640 --> 00:14:27.959
Can you repeat the name of the LLM
@@ -738,29 +758,32 @@ so I can send that to the REPL.
00:16:08.880 --> 00:16:11.479
But for some reason, I forgot the name of it.
-00:16:11.480 --> 00:16:25.159
+00:16:11.480 --> 00:16:29.859
I can look it up. Just give me one minute, sorry.
-00:16:25.160 --> 00:16:35.559
-oh yeah gptel gptel that's that's the name of the other tool
+00:16:29.860 --> 00:16:35.559
+Oh yeah, gptel, that's that's the name of the other tool
00:16:35.560 --> 00:16:37.879
-which is uh also a good tool yeah
+which is also a good tool, yeah,
00:16:37.880 --> 00:16:41.279
-but ECA is more like a more chat companion
+but ECA is more like a chat companion
00:16:41.280 --> 00:16:46.679
-and this you can also you can tell it to write code and things like that
+and this, you can also tell it to write code and things like that,
00:16:46.680 --> 00:16:51.679
-but i mostly use it for reviews and research
+but I mostly use it for reviews and research
-00:16:51.680 --> 00:16:54.599
-and like asking questions
+00:16:51.680 --> 00:16:53.739
+and asking questions
-00:16:54.600 --> 00:17:00.279
-because i want to my I don't have a problem with typing code.
+00:16:53.740 --> 00:16:57.544
+because I want to... My...
+
+00:16:57.545 --> 00:17:00.279
+I don't have a problem with typing code.
00:17:00.280 --> 00:17:01.919
I don't think that slows me down,
@@ -778,7 +801,7 @@ that's what I'm using LLM for,
on LLM for two, mostly today. That really hits for me.
00:17:13.520 --> 00:17:15.199
-I don't mind typing either.
+[Corwin]: I don't mind typing either.
00:17:15.200 --> 00:17:18.479
I think somehow having things be so simple
@@ -811,40 +834,45 @@ and I don't see a backlog.
There are a couple more comments here
00:17:44.520 --> 00:17:49.319
-linking linking to the ECA Emacs and gptel.
+linking to the ECA Emacs and gptel.
00:17:49.320 --> 00:17:52.239
Comment also saying very cool setup.
00:17:52.240 --> 00:17:56.959
-So I suppose I'll I'll hand it over to you
+So I suppose I'll hand it over to you
00:17:56.960 --> 00:17:59.319
-if you have kind of final thoughts or.
+if you have kind of final thoughts or
00:17:59.320 --> 00:18:02.079
additional wisdoms you want to share
-00:18:02.080 --> 00:18:05.399
-I really appreciate your taking the time to prepare this presentation
+00:18:02.080 --> 00:18:03.974
+I really appreciate your taking the time
+
+00:18:03.975 --> 00:18:05.399
+to prepare this presentation
+
+00:18:05.400 --> 00:18:08.741
+especially to do the live Q&A with us.
-00:18:05.400 --> 00:18:11.079
-especially to do the live Q&A with us. Thank you
+NOTE Wrapping up
-00:18:11.080 --> 00:18:13.919
-and I haven't anything more than that I will
+00:18:08.742 --> 00:18:12.988
+[David]: Thank you. I haven't anything more than that
-00:18:13.920 --> 00:18:19.479
-of course I will continue like have evolving my setup
+00:18:12.989 --> 00:18:19.479
+I will of course continue evolving my setup,
00:18:19.480 --> 00:18:21.359
-because there's like new tools
+because there's new tools
00:18:21.360 --> 00:18:24.759
-and maybe new ideas also coming up
+and maybe new ideas also coming up.
00:18:24.760 --> 00:18:28.719
-and my What I'm aiming for in Python development
+What I'm aiming for in Python development
00:18:28.720 --> 00:18:30.479
is the great developer experience
@@ -853,7 +881,7 @@ is the great developer experience
of what's called Lisp programming, basically.
00:18:34.520 --> 00:18:41.699
-So that's what I'm aiming at for Python 2.
+So that's what I'm aiming at for Python too.
00:18:41.700 --> 00:18:44.359
Thank you. Thank you so much.