summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2024/captions/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt533
-rw-r--r--2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt966
-rw-r--r--2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt747
-rw-r--r--2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt957
-rw-r--r--2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt720
-rw-r--r--2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt725
-rw-r--r--2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt690
-rw-r--r--2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt630
-rw-r--r--2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt346
-rw-r--r--2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt961
-rw-r--r--2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt996
-rw-r--r--2024/captions/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt574
-rw-r--r--2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt1294
-rw-r--r--2024/captions/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt2017
-rw-r--r--2024/captions/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt833
-rw-r--r--2024/captions/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt873
-rw-r--r--2024/captions/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt2420
-rw-r--r--2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt926
-rw-r--r--2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt846
-rw-r--r--2024/captions/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt405
-rw-r--r--2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt1032
-rw-r--r--2024/draft-schedule.md8
-rw-r--r--2024/info/guile-before.md2
-rw-r--r--2024/info/hyperdrive-after.md478
-rw-r--r--2024/info/hyperdrive-before.md14
-rw-r--r--2024/info/literate-after.md85
-rw-r--r--2024/info/papers-after.md22
-rw-r--r--2024/info/rust-before.md2
-rw-r--r--2024/info/transducers-after.md14
-rw-r--r--2024/schedule-details.md2
-rw-r--r--2024/schedule-image.md2
-rw-r--r--2024/talks/hyperdrive.md4
-rw-r--r--2024/talks/project.md318
-rw-r--r--captioning.md141
-rw-r--r--organizers-notebook/index.org9
35 files changed, 19997 insertions, 595 deletions
diff --git a/2024/captions/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt b/2024/captions/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt
new file mode 100644
index 00000000..47d7b53b
--- /dev/null
+++ b/2024/captions/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt
@@ -0,0 +1,533 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:04.199
+Thank you for the talk. I mean, it was a fairly long one and we
+
+00:00:04.200 --> 00:00:07.999
+had two very distinct parts, one which dealt with a
+
+00:00:08.000 --> 00:00:12.079
+philosophy of Libre-Halaal software and then the application,
+
+00:00:12.080 --> 00:00:14.279
+obviously, of Bisos. So thank you so much for the
+
+00:00:14.280 --> 00:00:17.839
+presentation. Before we get started with the question, and
+
+00:00:17.840 --> 00:00:21.799
+for the record, we have about 14 minutes of question time, is
+
+00:00:21.800 --> 00:00:25.079
+there anything that you'd like to add on top of your
+
+00:00:25.080 --> 00:00:27.759
+presentation, something that perhaps would not have fit in
+
+00:00:27.760 --> 00:00:33.399
+the actual presentation format? Sure, but prior to that,
+
+00:00:33.400 --> 00:00:37.839
+félicitations à tous les Français pour le rouvrir de
+
+00:00:37.840 --> 00:00:42.719
+Notre-Dame. Thank you. I'll say thank you because I'm a
+
+00:00:42.720 --> 00:00:48.039
+Francophone and I'm also French, but OK.
+
+00:00:48.040 --> 00:00:58.159
+Yeah, so a few things have come up in various other talks,
+
+00:00:58.160 --> 00:01:04.359
+that kind of EmacsConf 2024 talks, that kind of dovetail
+
+00:01:04.360 --> 00:01:10.599
+with what I was saying. One idea was Peter Prevos's
+
+00:01:10.600 --> 00:01:20.639
+observation of working with Emacs versus working on Emacs.
+
+00:01:20.640 --> 00:01:28.279
+And I'm all for that. So the idea of BLEE is that
+
+00:01:28.280 --> 00:01:32.599
+Others can package things, and we are seeing this in the form
+
+00:01:32.600 --> 00:01:38.119
+of redistributions. There is Doom, there is Space Max, and
+
+00:01:38.120 --> 00:01:44.079
+we are seeing the evolution of Emacs into layers. So there is
+
+00:01:44.080 --> 00:01:50.119
+the core Emacs, and there are layers on top of it. And Peter
+
+00:01:50.120 --> 00:01:59.799
+also mentioned about too much choice, this notion of
+
+00:01:59.800 --> 00:02:08.919
+Not always too much choice is the right thing to have. And
+
+00:02:08.920 --> 00:02:18.279
+packaging Emacs with a layer on top of Debian gives you a
+
+00:02:18.280 --> 00:02:24.159
+platform and an environment where the choices are a lot
+
+00:02:24.160 --> 00:02:31.159
+less. And that is not necessarily a bad thing.
+
+00:02:31.160 --> 00:02:36.719
+So that was one idea. The other idea or the other theme
+
+00:02:36.720 --> 00:02:42.919
+throughout the various talks that we saw was this concept of
+
+00:02:42.920 --> 00:02:53.519
+mixing org mode with programming languages and What Babel
+
+00:02:53.520 --> 00:03:00.479
+has done is two things. One is it has successfully
+
+00:03:00.480 --> 00:03:06.799
+integrated org mode with all kinds of languages. And that
+
+00:03:06.800 --> 00:03:13.039
+has happened in the context of literate programming. Um, so
+
+00:03:13.040 --> 00:03:16.839
+a talk coming after mine is literate programming for the
+
+00:03:16.840 --> 00:03:22.399
+21st century, mixing org mode with program languages. And
+
+00:03:22.400 --> 00:03:27.359
+what I am saying is that there is an alternative and that's
+
+00:03:27.360 --> 00:03:33.839
+great, but we should also, uh, consider a traditional
+
+00:03:33.840 --> 00:03:40.159
+programming mixed with org mode and, um, Polymode is key to
+
+00:03:40.160 --> 00:03:49.239
+that. So those were some of the key concepts that I saw a
+
+00:03:49.240 --> 00:03:55.799
+resonance with as the conference went forward. Yeah, and I
+
+00:03:55.800 --> 00:03:59.959
+think, if my memory serves me right, we have another talk
+
+00:03:59.960 --> 00:04:04.199
+about hyperbole this year, right after this Q&A session.
+
+00:04:04.200 --> 00:04:07.919
+And hyperbole, it's not Org Mode, but I'm not sure if you're
+
+00:04:07.920 --> 00:04:10.359
+familiar with it, Mohsen, you might have seen it from
+
+00:04:10.360 --> 00:04:14.639
+various talks last year, but it also tends to have a similar
+
+00:04:14.640 --> 00:04:18.919
+stance than you, with the fact that text should be embedded
+
+00:04:18.920 --> 00:04:21.919
+in programming languages rather than having Org Mode
+
+00:04:21.920 --> 00:04:25.439
+implement, I mean, integrate other languages. And I found
+
+00:04:25.440 --> 00:04:28.359
+it funny that we have your talk and this talk which are about
+
+00:04:28.360 --> 00:04:32.999
+the other direction, which I find very resonating as well.
+
+00:04:33.000 --> 00:04:40.439
+Right, right, right. So in terms of other things that did not
+
+00:04:40.440 --> 00:04:46.999
+fit into my talk is that the several concepts that I
+
+00:04:47.000 --> 00:04:49.599
+introduced, namely
+
+00:04:49.600 --> 00:04:57.879
+dynamic blocks everywhere and COMEEGA.
+
+00:04:57.880 --> 00:05:07.719
+I'd be happy to expand on those by sharing your screen in due
+
+00:05:07.720 --> 00:05:12.519
+course, whatever is appropriate. Sure, considering the
+
+00:05:12.520 --> 00:05:16.119
+time that we have, we only have about 8 minutes 30 and we
+
+00:05:16.120 --> 00:05:18.999
+already have about four, five questions actually. I
+
+00:05:19.000 --> 00:05:22.599
+suggest we perhaps leave the screen sharing until later if
+
+00:05:22.600 --> 00:05:25.399
+people are interested. I mean this Q&A can last as long as you
+
+00:05:25.400 --> 00:05:30.079
+want. That makes perfect sense. OK, cool. So how about we
+
+00:05:30.080 --> 00:05:33.279
+focus on the question now and starting with the first one.
+
+NOTE Q: I'm from Brazil, which edition would you recommend?
+
+00:05:33.280 --> 00:05:36.279
+You mentioned that there are two editions, one named at
+
+00:05:36.280 --> 00:05:40.159
+Westerners and one for worldwide readers. I'm from Brazil.
+
+00:05:40.160 --> 00:05:42.599
+Which edition would you recommend? It's a Western country,
+
+00:05:42.600 --> 00:05:45.479
+but you didn't make the distinction exclusive for the
+
+00:05:45.480 --> 00:05:48.199
+second edition. So I thought it would be better to ask.
+
+00:05:48.200 --> 00:05:56.119
+Right. So definitely, I would say for everybody who is on
+
+00:05:56.120 --> 00:06:01.959
+this conference, the international edition is the right
+
+00:06:01.960 --> 00:06:11.639
+choice. In this book, I take some aggressive stance against
+
+00:06:11.640 --> 00:06:19.279
+intellectual property and I link that specifically to the
+
+00:06:19.280 --> 00:06:27.439
+American culture. So there are pieces in the book where the
+
+00:06:27.440 --> 00:06:36.399
+typical American audience may be offended. And if your skin
+
+00:06:36.400 --> 00:06:43.279
+is thick enough to deal with what I consider reasonable
+
+00:06:43.280 --> 00:06:48.319
+criticism, then the International Edition is definitely
+
+00:06:48.320 --> 00:06:54.439
+the better choice. Right. So yeah, I believe you also
+
+00:06:54.440 --> 00:06:56.959
+mentioned it. Pretty much exactly the same thing in your
+
+00:06:56.960 --> 00:07:00.239
+talk. So if you need to review, just watch the talk. And I
+
+00:07:00.240 --> 00:07:03.439
+think Mohsen also provides extra information about this.
+
+00:07:03.440 --> 00:07:07.079
+Moving on to the second question. Thank you for this talk.
+
+NOTE Q: Thank you for this talk! How does your perspective interface with works such as Yanis Varoufakis' Technofeudalism?
+
+00:07:07.080 --> 00:07:10.319
+How does your perspective interface with work such as Yanis
+
+00:07:10.320 --> 00:07:14.639
+Varoufakis' Technofeudalism?
+
+00:07:14.640 --> 00:07:24.919
+I haven't read much of that. I think there is a whole lot of
+
+00:07:24.920 --> 00:07:34.199
+global growth and collective understanding towards this
+
+00:07:34.200 --> 00:07:42.479
+notion that the direction we are headed in And by that, I mean
+
+00:07:42.480 --> 00:07:46.879
+American digital ecosystems
+
+00:07:46.880 --> 00:07:53.159
+are dangerous and that we should revisit
+
+00:07:53.160 --> 00:08:03.239
+the entirety of the model and strategy.
+
+00:08:03.240 --> 00:08:10.119
+If the person who asked the question has any additional
+
+00:08:10.120 --> 00:08:16.119
+information, I'll be happy to hear it. Sure. We'll see if the
+
+00:08:16.120 --> 00:08:19.559
+person actually comes back to this. All right. In the
+
+00:08:19.560 --> 00:08:21.979
+meantime, moving on to the next question.
+
+NOTE Q: To what extent do you agree that the introduction of proprietary systems in education creates an environment for exploitation while at the same time diluting the learning value of the curriculum?
+
+00:08:21.980 --> 00:08:22.959
+To what extent do
+
+00:08:22.960 --> 00:08:25.519
+you agree that the introduction of proprietary systems in
+
+00:08:25.520 --> 00:08:29.279
+education creates an environment for exploitation whilst
+
+00:08:29.280 --> 00:08:31.679
+at the same time diluting the learning value of the
+
+00:08:31.680 --> 00:08:34.879
+curriculum? My computing education at school amounted to
+
+00:08:34.880 --> 00:08:38.399
+learning how to use the Microsoft Office suite, i.e. the
+
+00:08:38.400 --> 00:08:44.679
+opposite of lasting open knowledge. Yeah, that's right on
+
+00:08:44.680 --> 00:08:49.719
+the mark. That's right on the mark. So the idea is that
+
+00:08:49.720 --> 00:08:55.919
+teaching and learning should be unrestricted. In the
+
+00:08:55.920 --> 00:09:02.479
+Muslim tradition and in Iranian tradition, we say that
+
+00:09:02.480 --> 00:09:12.919
+passing along the learning is the tax on having learned. So
+
+00:09:12.920 --> 00:09:20.359
+absolutely. I think it makes very little sense for the
+
+00:09:20.360 --> 00:09:27.039
+proprietary Microsoft software to be used as part of
+
+00:09:27.040 --> 00:09:33.519
+education. So the question is right on the mark. Okay,
+
+00:09:33.520 --> 00:09:38.519
+great. Let me just take a note of this. All right, moving on to
+
+00:09:38.520 --> 00:09:40.052
+the next question.
+
+NOTE Q: As a specific example of how "ownership is not clean" ...
+
+00:09:40.053 --> 00:09:43.359
+As a specific example of how ownership is
+
+00:09:43.360 --> 00:09:46.239
+not something clean, look at the Star Trek Picard series.
+
+00:09:46.240 --> 00:09:48.839
+They continuously asked Patrick Stewart to come to do
+
+00:09:48.840 --> 00:09:52.159
+another Star Trek series, but he couldn't because Star Trek
+
+00:09:52.160 --> 00:09:54.959
+changed from what it used to be, at least until they came up
+
+00:09:54.960 --> 00:09:57.999
+with a series that honored what Star Trek used to be. Does
+
+00:09:58.000 --> 00:10:21.839
+this intersect? Let me read this for a moment.
+
+00:10:21.840 --> 00:10:30.599
+Yeah, I am not sure I fully get the point, but. Let me make a
+
+00:10:30.600 --> 00:10:35.959
+point about my criticisms of the false movement
+
+00:10:35.960 --> 00:10:47.399
+in the presentation and in the book. The idea is that we have
+
+00:10:47.400 --> 00:10:53.919
+jumped on the false movement and recognize it as an
+
+00:10:53.920 --> 00:11:02.279
+alternative But we haven't looked deeply enough to see if
+
+00:11:02.280 --> 00:11:07.759
+our own philosophy and movement have problems. The
+
+00:11:07.760 --> 00:11:14.959
+problems that I note is that The first movement does not
+
+00:11:14.960 --> 00:11:21.279
+recognize clearly and explicitly that the entirety of the
+
+00:11:21.280 --> 00:11:30.399
+intellectual property rights regime is flawed. The second
+
+00:11:30.400 --> 00:11:37.239
+piece is that it's only now that we are seeing the FOSS
+
+00:11:37.240 --> 00:11:45.479
+movement is broader than the Western world. The third
+
+00:11:45.480 --> 00:11:54.919
+problem is that the labels of free software and open source
+
+00:11:54.920 --> 00:12:01.159
+are not necessarily correct. The fourth problem is that we
+
+00:12:01.160 --> 00:12:07.239
+are not paying enough attention to establishing a
+
+00:12:07.240 --> 00:12:09.999
+relationship with society.
+
+00:12:10.000 --> 00:12:16.439
+So there's a whole chapter in the book dedicated to this
+
+00:12:16.440 --> 00:12:23.959
+topic. What I'm not sure about is if I got the point of the
+
+00:12:23.960 --> 00:12:30.279
+question correctly. So again, if the person who asked the
+
+00:12:30.280 --> 00:12:35.679
+question could clarify, I'll be happy to further expand.
+
+00:12:35.680 --> 00:12:40.279
+Okay, considering the time, we only have about one minute to
+
+00:12:40.280 --> 00:12:42.959
+ten seconds until we go. So what we're going to do, as we
+
+00:12:42.960 --> 00:12:45.439
+usually do, Mohsen, is that we're going to move the stream
+
+00:12:45.440 --> 00:12:47.839
+onto the next talk. And if you want to take a little bit of time
+
+00:12:47.840 --> 00:12:51.799
+in this room to answer the question, I'm putting a link to the
+
+00:12:51.800 --> 00:12:56.519
+pad in the BBB chat so you can open it on your end. But as we are
+
+00:12:56.520 --> 00:12:59.319
+still live for 15 more seconds, do you have any last words?
+
+00:12:59.320 --> 00:13:09.039
+Keep up the good work. Those would be my last words, that the
+
+00:13:09.040 --> 00:13:14.239
+free software and the open source and Emacs are a very valid
+
+00:13:14.240 --> 00:13:24.479
+strategy for inside of IPR resistance. And thank you, Leo
+
+00:13:24.480 --> 00:13:29.719
+and Sacha and the rest of the folks for this wonderful yearly
+
+00:13:29.720 --> 00:13:33.559
+event. Well, thank you so much. And it's always a pleasure to
+
+00:13:33.560 --> 00:13:36.119
+have you. And thank you for your thankings. So we'll be
+
+00:13:36.120 --> 00:13:38.439
+moving to the next talk in 10 seconds. Mohsen, thank you so
+
+00:13:38.440 --> 00:13:47.559
+much. And I'll see you later. Thank you. Bye-bye. Bye.
+
+00:13:47.560 --> 00:13:50.159
+All right. We are off air. So thank you so much, Mohsen. I'll
+
+00:13:50.160 --> 00:13:52.559
+need to get moving to get ready for the next talk. So again,
+
+00:13:52.560 --> 00:13:54.519
+feel free to take the time you need to answer the questions.
+
+00:13:54.520 --> 00:13:56.719
+I'm going to stop sharing my screen because I need to leave.
+
+00:13:56.720 --> 00:13:59.319
+But take all the time you need. And when you're finished, you
+
+00:13:59.320 --> 00:14:04.039
+can just leave the room. OK. All right, bye-bye. Thank you.
+
+00:14:04.040 --> 00:14:23.439
+Great. I see one more person in the room.
+
+00:14:23.440 --> 00:14:35.679
+Hi, John.
+
+00:14:35.680 --> 00:14:38.079
+I was looking at the questions.
+
+00:14:38.080 --> 00:14:46.239
+To see if there is more that I can add. So.
+
+00:14:46.240 --> 00:14:54.919
+through the regard of societal impacts on ethical,
+
+00:14:54.920 --> 00:14:58.439
+philosophical and wider force community. I'm involved in
+
+00:14:58.440 --> 00:15:02.239
+politics in my country, my party is very sympathetic to
+
+00:15:02.240 --> 00:15:05.277
+force ideas and I have public...
+
+NOTE Q: Do you have any recommended reading materials designed for such an audience?
+
+00:15:05.278 --> 00:15:08.039
+Do you have any recommendation
+
+00:15:08.040 --> 00:15:12.359
+to reading materials designed for such an audience? Um,
+
+00:15:12.360 --> 00:15:17.999
+yeah, this is with regard to the last question
+
+00:15:18.000 --> 00:15:24.439
+that's on the etherpad at this moment. The idea is
+
+00:15:24.440 --> 00:15:32.199
+that my own book would be an excellent resource. I'd
+
+00:15:32.200 --> 00:15:39.279
+say the bibliography in the book contains various
+
+00:15:39.280 --> 00:15:43.039
+other pointers that could be quite useful.
+
+00:15:43.040 --> 00:15:55.399
+I'm reading again.
+
+00:15:55.400 --> 00:15:57.799
+Yeah.
+
+00:15:57.800 --> 00:16:20.159
+Very good. If there are no other questions,
+
+00:16:20.160 --> 00:16:31.839
+I think I'm going to consider this a day and move on.
+
+00:16:31.840 --> 00:16:43.760
+Thank you.
diff --git a/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt b/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt
new file mode 100644
index 00000000..7c6db8c8
--- /dev/null
+++ b/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt
@@ -0,0 +1,966 @@
+WEBVTT
+
+NOTE Opening
+
+00:00:00.000 --> 00:00:05.239
+Leo? I'm doing well as well and I'm so happy to have seen your
+
+00:00:05.240 --> 00:00:10.719
+talk because the interaction with Emacs is always
+
+00:00:10.720 --> 00:00:13.719
+something that I find very interesting, and stuff like
+
+00:00:13.720 --> 00:00:18.839
+Transient, stuff like Hydra before, I think they really
+
+00:00:18.840 --> 00:00:22.119
+improve the user experience of users, and I'm really glad
+
+00:00:22.120 --> 00:00:24.479
+that I've seen you talk. Perhaps just starting with the
+
+00:00:24.480 --> 00:00:27.639
+first question, do you have anything else that you'd like to
+
+00:00:27.640 --> 00:00:30.719
+add on your talk? Because we are pretty stringent with the
+
+00:00:30.720 --> 00:00:33.199
+amount of time that we give for talks, but is there anything
+
+00:00:33.200 --> 00:00:35.639
+that you would have liked to mention to people that you
+
+00:00:35.640 --> 00:00:42.719
+weren't able to fit into the talk? I think probably one of the
+
+00:00:42.720 --> 00:00:46.599
+design considerations I've done is that many of the
+
+00:00:46.600 --> 00:00:49.359
+commands that I've exposed through my casual interfaces
+
+00:00:49.360 --> 00:00:56.399
+have been in Emacs. They've been in there forever, but very
+
+00:00:56.400 --> 00:01:00.439
+few people uh, myself included really know that they're
+
+00:01:00.440 --> 00:01:05.999
+there, uh, because they're just not discoverable through,
+
+00:01:06.000 --> 00:01:09.559
+uh, basically the existing mechanisms, you know, prior to
+
+00:01:09.560 --> 00:01:13.479
+transient and which key to, to even know that those, those
+
+00:01:13.480 --> 00:01:19.399
+functions are there. Yeah. So I think I'm going to start
+
+00:01:19.400 --> 00:01:21.519
+asking you questions whilst people start writing them in a
+
+00:01:21.520 --> 00:01:25.759
+pad. But yeah, I also think that discoverability is a very
+
+00:01:25.760 --> 00:01:29.559
+huge point that having stuff like the stuff that you've
+
+00:01:29.560 --> 00:01:32.679
+showed today actually allows. One example that I'd like to
+
+00:01:32.680 --> 00:01:35.759
+give that many people tend to forget, and you've already
+
+00:01:35.760 --> 00:01:39.559
+mentioned it in your presentation, is that I've learned so
+
+00:01:39.560 --> 00:01:43.479
+much about using git in general thanks to Magit, for the
+
+00:01:43.480 --> 00:01:46.719
+reason that it shows you so many options that you might not be
+
+00:01:46.720 --> 00:01:50.799
+aware of. For instance, I like to really think about when
+
+00:01:50.800 --> 00:01:54.519
+you think about logging in git, Magit allows you to
+
+00:01:54.520 --> 00:01:58.119
+discover so many of the finer options, like I only want to
+
+00:01:58.120 --> 00:02:01.519
+see the first commit since the merge, or I only want to
+
+00:02:01.520 --> 00:02:05.999
+consider this subsection of commits going from master or
+
+00:02:06.000 --> 00:02:08.999
+main to the point of your branch. So many things like this
+
+00:02:09.000 --> 00:02:11.759
+that you get to discover thanks to Transient. So do you have
+
+00:02:11.760 --> 00:02:16.879
+any similar experience on your end? Oh yeah, far too
+
+00:02:16.880 --> 00:02:22.359
+many, particularly with EditKit,
+
+00:02:22.360 --> 00:02:28.279
+having access to these commands,
+
+00:02:28.280 --> 00:02:31.771
+particularly with different granularity on
+
+00:02:31.772 --> 00:02:34.773
+S-expressions, sentences, words...
+
+00:02:34.774 --> 00:02:37.395
+Probably the most surprising thing I found
+
+00:02:37.396 --> 00:02:43.021
+was just how how compelling the
+
+00:02:43.022 --> 00:02:49.054
+S-expression would be as a unit of text for working with.
+
+00:02:49.055 --> 00:02:53.988
+I found that in most contexts, or in many places,
+
+00:02:53.989 --> 00:03:02.719
+it did what I wanted. I found that to be very surprising.
+
+00:03:02.720 --> 00:03:06.159
+So unless you've got anything else to add, I think we can just
+
+00:03:06.160 --> 00:03:10.639
+jump into questions. Okay, certainly. I'll be reading them
+
+00:03:10.640 --> 00:03:13.599
+for you so that it's easier for you. So the first question is,
+
+NOTE Q: I wonder whether casual can only be used with the packages you
+
+00:03:13.600 --> 00:03:17.599
+I wonder whether casual can only be used with the packages
+
+00:03:17.600 --> 00:03:19.599
+you mentioned or whether it can be used with whatever
+
+00:03:19.600 --> 00:03:25.399
+packages you like. I think it's really the latter. I'm not
+
+00:03:25.400 --> 00:03:29.879
+quite sure what the... What the question was really
+
+00:03:29.880 --> 00:03:35.039
+pointing at, you know, is the question asking for why I chose
+
+00:03:35.040 --> 00:03:41.679
+the packages or the different modes that I did? Or is it, are
+
+00:03:41.680 --> 00:03:45.519
+they looking at it from a developer perspective of, can we
+
+00:03:45.520 --> 00:03:50.399
+integrate casual with other packages? I mean, since we've
+
+00:03:50.400 --> 00:03:52.839
+got a little bit of time ahead of us, feel free to answer both
+
+00:03:52.840 --> 00:03:59.279
+questions. Um, I think the answer is, uh. Well, for the 1st,
+
+00:03:59.280 --> 00:04:05.599
+1, I've, I've generally tried to stick with using. The modes
+
+00:04:05.600 --> 00:04:11.039
+that are already packaged in, um, and so there was a. A big
+
+00:04:11.040 --> 00:04:16.759
+refactoring of it where. Initially, I made separate repos
+
+00:04:16.760 --> 00:04:20.879
+for the different modes that I supported. And then through a
+
+00:04:20.880 --> 00:04:24.959
+discussion, which I won't go into here, that got changed
+
+00:04:24.960 --> 00:04:30.239
+where I consolidated all of the different transient menus
+
+00:04:30.240 --> 00:04:35.039
+for modes that are built in for behavior that's built into
+
+00:04:35.040 --> 00:04:39.199
+the Emacs. I put that into a single package called casual.
+
+00:04:39.200 --> 00:04:44.799
+And then integrations with other third party packages that
+
+00:04:44.800 --> 00:04:49.879
+are not built in were given the same standalone repo here. In
+
+00:04:49.880 --> 00:04:55.719
+terms of folks wanting to integrate that, it's the beauty of
+
+00:04:55.720 --> 00:05:01.159
+open source. They can get the repo and uh, and basically
+
+00:05:01.160 --> 00:05:05.199
+study that the code base, uh, actually, if they even install
+
+00:05:05.200 --> 00:05:08.599
+it through, uh, you know, the package manager in this case,
+
+00:05:08.600 --> 00:05:12.679
+uh, coming from the Melbourne distribution, um, they can
+
+00:05:12.680 --> 00:05:17.919
+inspect that code and, and, um, make modifications or even.
+
+00:05:17.920 --> 00:05:21.519
+uh, you know, integrate that with their other packages and,
+
+00:05:21.520 --> 00:05:25.279
+uh, do that to their heart's content. Um, I think one of the
+
+00:05:25.280 --> 00:05:29.639
+things that I need to, or at least, uh, you know, that I, I, I
+
+00:05:29.640 --> 00:05:32.519
+planned on sort of elaborating further on in the
+
+00:05:32.520 --> 00:05:36.399
+documentation is, is that transient already has built in
+
+00:05:36.400 --> 00:05:41.279
+mechanisms for modifying an existing transient. So you can
+
+00:05:41.280 --> 00:05:47.279
+add commands or, uh, re redefine the bindings. And so. That
+
+00:05:47.280 --> 00:05:51.959
+mechanism is available for users if they're not happy with
+
+00:05:51.960 --> 00:05:57.159
+those bindings or they want to add their own commands to a
+
+00:05:57.160 --> 00:06:01.959
+menu. Yeah, and people are... I'm personally familiar with
+
+00:06:01.960 --> 00:06:05.119
+this, again, with Magit, because sometimes, even though
+
+00:06:05.120 --> 00:06:07.479
+you have a lot of discoverability for functions that you may
+
+00:06:07.480 --> 00:06:10.359
+not know, sometimes you also happen to realize that
+
+00:06:10.360 --> 00:06:13.999
+something is missing in the list of available options. I'm
+
+00:06:14.000 --> 00:06:16.919
+not sure if Casual actually supports something similar to
+
+00:06:16.920 --> 00:06:21.559
+Magit, which is levels of options being displayed.
+
+00:06:21.560 --> 00:06:24.039
+Actually, I'm not sure if it's transient native or if it's
+
+00:06:24.040 --> 00:06:27.439
+just something that Magit adds over this. No, transient
+
+00:06:27.440 --> 00:06:30.599
+supports levels. I've decided
+
+00:06:30.600 --> 00:06:36.799
+in large part, I've tried to avoid that just to avoid the
+
+00:06:36.800 --> 00:06:43.119
+added complexity of trying to define those levels. Yeah, I
+
+00:06:43.120 --> 00:06:47.479
+was going to say that perhaps it doesn't gel very well with
+
+00:06:47.480 --> 00:06:49.839
+the notion of casualness that you seem to be introducing the
+
+00:06:49.840 --> 00:06:52.439
+package. On one end, you've got something that is supposed
+
+00:06:52.440 --> 00:06:56.639
+to be very casual, very easy to use, and on the other end, you
+
+00:06:56.640 --> 00:06:59.599
+add levels for stuff that is fairly advanced. So advanced
+
+00:06:59.600 --> 00:07:05.759
+versus casual, kind of makes sense that you check this over.
+
+00:07:05.760 --> 00:07:09.359
+Alright, moving to the second question which is related to
+
+00:07:09.360 --> 00:07:10.853
+the previous one.
+
+NOTE Q: Are there any patterns emerging, such that it would seem possible to 1) systematize 2) automate(?) the mapping of mode commands to keyboard-driven menus? Possibly even have an auto casual wrapper for an uncovered mode?
+
+00:07:10.854 --> 00:07:13.159
+Are there any patterns emerging such that
+
+00:07:13.160 --> 00:07:15.639
+it would be impossible, sorry, such that it would be
+
+00:07:15.640 --> 00:07:19.719
+possible to once systematize and to automate the mapping of
+
+00:07:19.720 --> 00:07:23.519
+mode commands to keyboard-driven menus, possibly even
+
+00:07:23.520 --> 00:07:26.559
+have an auto-casual wrapper for an uncovered mode? Does it
+
+00:07:26.560 --> 00:07:35.519
+make sense to you? Yes, and I've gotten these comments from a
+
+00:07:35.520 --> 00:07:42.799
+number of different folks who really want to see some sort
+
+00:07:42.800 --> 00:07:49.639
+of design rule to, or basically, what is it? Some sort of
+
+00:07:49.640 --> 00:07:54.679
+design system to be able to generate the UI.
+
+00:07:54.680 --> 00:08:01.399
+Conceptually, I think it's doable, but on the flip side, it
+
+00:08:01.400 --> 00:08:05.319
+just requires so much coordination that it makes it really
+
+00:08:05.320 --> 00:08:11.199
+untenable. In this case, I have very strong opinions. I
+
+00:08:11.200 --> 00:08:15.719
+think we're better off trying to handcraft the user
+
+00:08:15.720 --> 00:08:20.759
+interface to get basically the best user experience. To try
+
+00:08:20.760 --> 00:08:26.399
+to emulate that with a design system, good luck, but I'm not
+
+00:08:26.400 --> 00:08:31.519
+I'm not interested in working on that. Right, yeah. I think
+
+00:08:31.520 --> 00:08:34.119
+if I try to think a little more about this, it feels like
+
+00:08:34.120 --> 00:08:36.559
+there's a notion of intention that is very important when
+
+00:08:36.560 --> 00:08:41.479
+you are designing UI and UX. And to have this intention, it
+
+00:08:41.480 --> 00:08:45.319
+feels like you cannot just base yourself of a design idea to
+
+00:08:45.320 --> 00:08:48.799
+organize the options. You cannot just work off a pattern. I
+
+00:08:48.800 --> 00:08:53.599
+think you need to have the trace of human understanding in
+
+00:08:53.600 --> 00:08:56.679
+order to have a UX that really works. And judging by the
+
+00:08:56.680 --> 00:08:58.999
+option that you've picked in the demos that you've showed
+
+00:08:59.000 --> 00:09:04.039
+today, I don't think it'd be particularly easy to organize
+
+00:09:04.040 --> 00:09:07.959
+them in a UX just casually for any mode. I think you need some
+
+00:09:07.960 --> 00:09:14.159
+human introspection to understand this, if that makes
+
+00:09:14.160 --> 00:09:14.679
+sense.
+
+00:09:14.680 --> 00:09:17.279
+Moving to the next question, which is related to something
+
+00:09:17.280 --> 00:09:19.605
+we discussed about with Magit.
+
+NOTE Q: Does Casual have a log where you can see what commands were invoked?
+
+00:09:19.606 --> 00:09:21.079
+Does Casual have a log where
+
+00:09:21.080 --> 00:09:23.759
+you can see what commands were invoked? This is always
+
+00:09:23.760 --> 00:09:27.479
+available via M-x view-lossage or via the command-log-mode,
+
+00:09:27.480 --> 00:09:30.993
+but I'm wondering if it can do for Emacs command what
+
+00:09:30.994 --> 00:09:34.479
+magit-process-buffer does for learning Git commands. And for
+
+00:09:34.480 --> 00:09:37.439
+everyone who's currently in Emacs, whenever you're
+
+00:09:37.440 --> 00:09:40.639
+running a command in Magit, it's always printing the exact
+
+00:09:40.640 --> 00:09:44.799
+command that was run in a shell, inside this $
+
+00:09:44.800 --> 00:09:47.399
+menu. So does Casual actually provide something similar,
+
+00:09:47.400 --> 00:09:52.599
+Charles? I don't know. In general, because I'm building off
+
+00:09:52.600 --> 00:09:55.199
+of transient, it would have to be a mechanism that's
+
+00:09:55.200 --> 00:10:01.519
+available through transient. And You know, I would let
+
+00:10:01.520 --> 00:10:06.799
+Jonas speak more on that capability, because to be honest, I
+
+00:10:06.800 --> 00:10:14.879
+mean, even to my knowledge of transient is not that deep,
+
+00:10:14.880 --> 00:10:16.839
+actually.
+
+00:10:16.840 --> 00:10:21.399
+Well, it's funny that you say this because even though you
+
+00:10:21.400 --> 00:10:23.759
+say your knowledge might not be that big, you still managed
+
+00:10:23.760 --> 00:10:27.239
+to develop a whole suite of tools on top of it. So as far as
+
+00:10:27.240 --> 00:10:29.599
+people who do not know transient a whole lot, you're doing a
+
+00:10:29.600 --> 00:10:33.159
+pretty damn good job. Let me tell you that much. Thank you.
+
+00:10:33.160 --> 00:10:37.719
+Yeah, I think sort of what I bring to the table is, you know,
+
+00:10:37.720 --> 00:10:41.919
+quite a considerable career in software development on
+
+00:10:41.920 --> 00:10:47.879
+other software ecosystems. And as of late, I've spent
+
+00:10:47.880 --> 00:10:52.439
+basically the past decade working on iOS apps. Right. I
+
+00:10:52.440 --> 00:10:55.199
+think it's refreshing to be able to go back to something that
+
+00:10:55.200 --> 00:10:56.839
+looks like Emacs after iOS.
+
+00:10:56.840 --> 00:11:03.879
+Well, that's perhaps another longer conversation there.
+
+00:11:03.880 --> 00:11:08.599
+Speaking of longer conversation, we have only about 10
+
+00:11:08.600 --> 00:11:11.599
+minutes left until we need to move on to the next talk. But
+
+00:11:11.600 --> 00:11:13.759
+thank you everyone for all the questions you're asking. I'm
+
+00:11:13.760 --> 00:11:17.239
+not saying this because we finished, but it's good to see so
+
+00:11:17.240 --> 00:11:19.919
+many people writing in the chat and asking questions. It
+
+00:11:19.920 --> 00:11:23.079
+always shows that you're interested and that's always
+
+00:11:23.080 --> 00:11:26.079
+lovely to us. And you've mentioned Jonas. Obviously, we're
+
+00:11:26.080 --> 00:11:29.359
+talking about Jonas Bernoulli, i.e. Tarsius, the
+
+00:11:29.360 --> 00:11:33.439
+maintainer of transient. And what Charles just mentioned
+
+00:11:33.440 --> 00:11:37.559
+about having a transient tooling to print the lossage,
+
+00:11:37.560 --> 00:11:43.039
+basically, of which sex were run by which command, feels
+
+00:11:43.040 --> 00:11:44.839
+like this is something that would be interesting. So,
+
+00:11:44.840 --> 00:11:50.239
+perhaps, I'm not sure if Tarsius is still on the chat
+
+00:11:50.240 --> 00:11:52.639
+currently, but he was definitely around earlier today, so
+
+00:11:52.640 --> 00:11:55.839
+we'll make sure that the ID lands on his lap later on. All
+
+00:11:55.840 --> 00:12:00.203
+right, moving to the next question.
+
+NOTE Q: Is there a setting to close menu after executing command?
+
+00:12:00.204 --> 00:12:00.919
+Is there a setting to
+
+00:12:00.920 --> 00:12:07.479
+close menu after executing a command? By default, it will.
+
+00:12:07.480 --> 00:12:10.879
+There's a slot that you can define in a transient
+
+00:12:10.880 --> 00:12:17.199
+prefix called :transient. And if you set that to true,
+
+00:12:17.200 --> 00:12:20.639
+then it will persist the menu after executing the command.
+
+00:12:20.640 --> 00:12:26.159
+But by default, it will actually dismiss the menu. This
+
+00:12:26.160 --> 00:12:29.359
+feels... Did you actually get to play with Hydra before
+
+00:12:29.360 --> 00:12:36.279
+playing with transients? To be honest, no. Yeah, I kind of
+
+00:12:36.280 --> 00:12:41.719
+slept on Hydra or at least, you know, I really wasn't all that
+
+00:12:41.720 --> 00:12:44.639
+ambitious with working with different packages until
+
+00:12:44.640 --> 00:12:48.639
+about like, a little less than 2 years ago or so.
+
+00:12:48.640 --> 00:12:57.639
+And then the other part was also, um. You know, not not really
+
+00:12:57.640 --> 00:13:01.999
+a technical. Start a comparison because I really don't want
+
+00:13:02.000 --> 00:13:05.759
+to upset folks here, but, uh. But more along the lines of just
+
+00:13:05.760 --> 00:13:09.559
+going with the notion that transient was being built in or
+
+00:13:09.560 --> 00:13:15.279
+packaged as a built in package for Emacs. I went with using
+
+00:13:15.280 --> 00:13:20.679
+that for my implementation. Cool. And I don't think there's
+
+00:13:20.680 --> 00:13:23.199
+anything controversial with what you're saying right now
+
+00:13:23.200 --> 00:13:28.839
+because, you know, we had earlier today, Euro Rechenko, the
+
+00:13:28.840 --> 00:13:32.439
+new maintainer of Augment, mentioning that he'd like to
+
+00:13:32.440 --> 00:13:34.319
+have a better integration with Transient because
+
+00:13:34.320 --> 00:13:39.159
+Transient is, it looks like it's here to stay for a long time
+
+00:13:39.160 --> 00:13:42.879
+and might even land in core at some point. So, it definitely
+
+00:13:42.880 --> 00:13:49.519
+feels comparing Hydra because for me, most of my UI needs in
+
+00:13:49.520 --> 00:13:54.439
+Emacs prior to Transient were done via Hydra because it was a
+
+00:13:54.440 --> 00:13:57.799
+very convenient tooling. For people who do not know, Hydra
+
+00:13:57.800 --> 00:14:02.919
+is written by AboAbo. who's also authored packages like
+
+00:14:02.920 --> 00:14:08.639
+Lispy, an interactive Lisp mode, also for Ivy, which you
+
+00:14:08.640 --> 00:14:14.239
+might know as the counterpart of Helm, maybe five years ago.
+
+00:14:14.240 --> 00:14:17.959
+So all those packages, they were very innovative for the
+
+00:14:17.960 --> 00:14:21.199
+time and it's cool to see that some of the ideas which were
+
+00:14:21.200 --> 00:14:28.039
+introduced by IV and Helm and all this are then taken by tools
+
+00:14:28.040 --> 00:14:30.279
+like Transient and done perhaps with a little more
+
+00:14:30.280 --> 00:14:33.639
+hindsight now that people have experienced a little more of
+
+00:14:33.640 --> 00:14:38.359
+it. Okay, we have still a little bit of time. Moving on to the
+
+00:14:38.360 --> 00:14:40.281
+next question.
+
+NOTE Q: What modes are you working on at the moment for casual / are excited to explore?
+
+00:14:40.282 --> 00:14:41.919
+What modes are you working on at the moment
+
+00:14:41.920 --> 00:14:44.159
+for Casual or are you excited to explore?
+
+00:14:44.160 --> 00:14:53.999
+Well, so I just recently published one for calendar. And so I
+
+00:14:54.000 --> 00:14:56.839
+think the calendar interface has a lot of really
+
+00:14:56.840 --> 00:15:00.479
+interesting behavior, particularly its support for
+
+00:15:00.480 --> 00:15:07.479
+non-Gregorian events, which is, you know, for folks who'd
+
+00:15:07.480 --> 00:15:13.079
+like, in my case, looking at the lunar calendar, it's great
+
+00:15:13.080 --> 00:15:17.799
+to have tooling to be able to not have to leave Emacs to figure
+
+00:15:17.800 --> 00:15:19.759
+out when a lunar date is.
+
+00:15:19.760 --> 00:15:29.599
+Then, I think, you know, for the most part, My work on casual
+
+00:15:29.600 --> 00:15:34.959
+was really kind of my summer of code for Emacs here. And so in
+
+00:15:34.960 --> 00:15:41.519
+many ways, the velocity of casual development is going to
+
+00:15:41.520 --> 00:15:48.919
+slow down where I've got a big bulk of the modes that I really
+
+00:15:48.920 --> 00:15:57.519
+wanted to take care of. Um, I think one experimental thing
+
+00:15:57.520 --> 00:16:00.999
+that I think is very unbaked, but I would, you know, if folks
+
+00:16:01.000 --> 00:16:06.879
+are interested, uh, maybe looking at it is, uh, taking a look
+
+00:16:06.880 --> 00:16:13.079
+at edebug and trying to make that an easier thing to do. Um,
+
+00:16:13.080 --> 00:16:18.359
+that is ambitious. Uh, yeah, so maybe too ambitious.
+
+00:16:18.360 --> 00:16:23.713
+Uh, other things are like really scary projects.
+
+00:16:23.714 --> 00:16:25.195
+And so, not to say that
+
+00:16:25.196 --> 00:16:28.319
+I really have a desire to do it, but another
+
+00:16:28.320 --> 00:16:33.239
+one would be ediff. Right. Okay. Relitigating it's
+
+00:16:33.240 --> 00:16:43.639
+interface, um, to have a transient menu. I say
+
+00:16:43.640 --> 00:16:47.919
+these things, but I'm also scared of those things. Yeah, I
+
+00:16:47.920 --> 00:16:50.719
+mean, I think it's a lovely way to tackle the project,
+
+00:16:50.720 --> 00:16:55.479
+really, because you are fully aware that edebug and ediffs
+
+00:16:55.480 --> 00:16:59.399
+are mastodons when it comes to Emacs. They work very well. If
+
+00:16:59.400 --> 00:17:02.639
+you've ever tried to do a conflict resolution in Magit and
+
+00:17:02.640 --> 00:17:07.199
+you've pressed e, that usually opens ediff for you. If you
+
+00:17:07.200 --> 00:17:09.959
+happen to know how it works, it's amazing, but if you do not know
+
+00:17:09.960 --> 00:17:13.719
+it works, the interface is a little... It's a lot to take in
+
+00:17:13.720 --> 00:17:20.879
+at the moment. You have to know a, b, w... I can, and I
+
+00:17:20.880 --> 00:17:24.439
+can never remember which one is the lower and which one is the
+
+00:17:24.440 --> 00:17:27.359
+upper. Like, it constantly goes in different directions. I
+
+00:17:27.360 --> 00:17:29.719
+can never remember which is the commit I'm trying to merge,
+
+00:17:29.720 --> 00:17:32.759
+which is the commit I'm currently being on. It has nothing to
+
+00:17:32.760 --> 00:17:36.839
+do with Magit. It's merely Git and the way they conceive
+
+00:17:36.840 --> 00:17:39.719
+this. And probably, there might be a very nice way to
+
+00:17:39.720 --> 00:17:42.079
+remember it, but I still haven't found it after 10 years as a
+
+00:17:42.080 --> 00:17:44.919
+software developer. So, I guess I need to dig a little
+
+00:17:44.920 --> 00:17:48.519
+deeper. But what I find lovely about the approach is that for
+
+00:17:48.520 --> 00:17:52.599
+you, working on the interface to those tools is actually
+
+00:17:52.600 --> 00:17:55.159
+something that allows you to discover how they work, but
+
+00:17:55.160 --> 00:17:59.119
+also how to make it more easy for people to understand how
+
+00:17:59.120 --> 00:18:02.039
+those tools work. So you're doing the work of
+
+00:18:02.040 --> 00:18:05.399
+understanding, of digesting a lot of the commands, so that
+
+00:18:05.400 --> 00:18:08.599
+people do not have to go through the same pain as you have. So I
+
+00:18:08.600 --> 00:18:14.279
+find this a very noble endeavor in a way.
+
+NOTE Getting older
+
+00:18:14.280 --> 00:18:18.559
+In so many ways, as perhaps I've mentioned
+
+00:18:18.560 --> 00:18:23.639
+in my talk, I'm getting older. I can't remember all
+
+00:18:23.640 --> 00:18:28.759
+these damn commands and my hand dexterity is failing. I
+
+00:18:28.760 --> 00:18:33.199
+mean, there's so many. Like multiple keystroke
+
+00:18:33.200 --> 00:18:37.479
+bindings, which I absolutely loathe. At most,
+
+00:18:37.480 --> 00:18:40.799
+like I can, I can only physically handle like, two
+
+00:18:40.800 --> 00:18:47.799
+characters, three maybe, at a time. So maybe
+
+00:18:47.800 --> 00:18:51.239
+that's just me, and others may
+
+00:18:51.240 --> 00:18:55.999
+feel differently, but at the same time,
+
+00:18:56.000 --> 00:19:01.519
+the work that I've invested here is has been very personal
+
+00:19:01.520 --> 00:19:06.239
+for me because I just don't want to work that hard, and I want to
+
+00:19:06.240 --> 00:19:11.159
+keep using Emacs. Yeah, and that's again a very good
+
+00:19:11.160 --> 00:19:13.719
+endeavor, I think, to have. And there's one last thing that
+
+00:19:13.720 --> 00:19:16.039
+I'd like to mention, because you've mentioned this project
+
+00:19:16.040 --> 00:19:19.879
+of yours, Casual, being some kind of summer of code, with the
+
+00:19:19.880 --> 00:19:22.399
+implication that you've worked a whole lot of it during the
+
+00:19:22.400 --> 00:19:26.919
+summer or during this period. and perhaps investment will
+
+00:19:26.920 --> 00:19:31.119
+die down a little bit now. But I think it's completely fine to
+
+00:19:31.120 --> 00:19:33.879
+have moments when you feel particularly excited and you do a
+
+00:19:33.880 --> 00:19:36.959
+lot of work, and sometimes it dies down a little bit.
+
+00:19:36.960 --> 00:19:41.439
+Personally, I've been... Four years ago, I was working a lot
+
+00:19:41.440 --> 00:19:44.679
+on Org Roam and I had my Summer of Code on Org Roam. And that was
+
+00:19:44.680 --> 00:19:47.159
+great. I was able to do a lot of things, to get a lot of things
+
+00:19:47.160 --> 00:19:50.559
+out of my head. But eventually, you know, you have to go make
+
+00:19:50.560 --> 00:19:53.279
+some money to survive or you have to take care of family and
+
+00:19:53.280 --> 00:19:56.399
+stuff like this. So, life tends to get in the way of your
+
+00:19:56.400 --> 00:20:00.519
+hobbies, especially when, you know, it's so... It's
+
+00:20:00.520 --> 00:20:03.239
+hobbies that involve so much of your time to get things
+
+00:20:03.240 --> 00:20:07.879
+right, like programming does. But, you know, we appreciate
+
+00:20:07.880 --> 00:20:09.799
+all the work you've done, Charles, and the fact that you've
+
+00:20:09.800 --> 00:20:12.679
+put it out there for people to enjoy. It's already a victory.
+
+00:20:12.680 --> 00:20:14.999
+You don't need to feel compelled to keep working on it
+
+00:20:15.000 --> 00:20:18.159
+because ultimately, as you said, the beauty of open source
+
+00:20:18.160 --> 00:20:21.759
+is that people can just send PRs and get the project going
+
+00:20:21.760 --> 00:20:28.519
+again. Yeah. I mean, and if anything, you know, folks have
+
+00:20:28.520 --> 00:20:33.319
+expressed to me that, you know, in many ways, a lot of this
+
+00:20:33.320 --> 00:20:37.959
+stuff should be, you know, sort of folded in the core. And,
+
+00:20:37.960 --> 00:20:45.159
+you know, I would love to see at least the ideals of, or at
+
+00:20:45.160 --> 00:20:49.319
+least an openness into thinking, rethinking the interface
+
+00:20:49.320 --> 00:20:54.119
+for Emacs. So, you know, it doesn't have to be, basically
+
+00:20:54.120 --> 00:20:59.119
+work the way it worked for basically the last half of the 20th
+
+00:20:59.120 --> 00:21:03.519
+century here. Yeah, Emacs is flexible enough to have
+
+00:21:03.520 --> 00:21:10.279
+different approaches and, you know, transient is one
+
+00:21:10.280 --> 00:21:17.759
+approach, but at the same time, you know, the ability to
+
+00:21:17.760 --> 00:21:22.559
+reimagine the user interface for, you know, the computing
+
+00:21:22.560 --> 00:21:28.159
+needs, you know, for basically users needs today, whether
+
+00:21:28.160 --> 00:21:33.119
+you write or code or anything of that nature, I think is an
+
+00:21:33.120 --> 00:21:39.039
+exciting and great thing. Yeah, well, thank you so much for
+
+00:21:39.040 --> 00:21:41.639
+this conclusion. So I'm a little sorry, because sadly, we
+
+00:21:41.640 --> 00:21:45.919
+needed to move the stream to the next talk. So we've lost
+
+00:21:45.920 --> 00:21:49.639
+about 20 seconds of what you said. But don't worry, whatever
+
+00:21:49.640 --> 00:21:51.999
+you've said will be available on the website. I didn't want
+
+00:21:52.000 --> 00:21:55.759
+to interrupt, sadly, because I didn't want to be rude. But I
+
+00:21:55.760 --> 00:21:58.679
+think we did a great job answering the questions. So thank
+
+00:21:58.680 --> 00:22:01.199
+you so much for taking the time. I'll need to get going,
+
+00:22:01.200 --> 00:22:02.759
+because we might have a problem with the next talk. So thank
+
+00:22:02.760 --> 00:22:05.919
+you so much, Charles. Certainly. Take care. Thank you.
+
+00:22:05.920 --> 00:22:12.120
+Appreciate it. Bye.
diff --git a/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt b/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt
new file mode 100644
index 00000000..b27008a3
--- /dev/null
+++ b/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt
@@ -0,0 +1,747 @@
+WEBVTT
+
+00:00.169 --> 00:01.830
+... Org mode and kind of note taking. And that meant that it wasn't
+
+00:02.810 --> 00:08.532
+too difficult to get started with. But when I started more on
+
+00:08.972 --> 00:15.474
+the coding side, because I'm a software engineer, you know,
+
+00:08.972 --> 00:15.474
+on the day job. That kind of got me to think that the colors and
+
+00:16.366 --> 00:24.790
+how themes look, how Emacs looks, was affecting. And that's
+
+00:25.331 --> 00:28.973
+how it kind of came to picture. So I could have kind of gone
+
+00:29.073 --> 00:36.917
+into a little bit more coding side of things, but I didn't
+
+00:29.073 --> 00:36.917
+want to stress too much on the talk. So that's why I kind of
+
+00:36.957 --> 00:41.919
+stuck to a very small bits of Org Mode and Elisp. And yeah, I
+
+00:42.319 --> 00:45.321
+think that's how it came about. Yeah, but that's perfectly
+
+00:46.536 --> 00:48.577
+fine. That's one of the chief reasons why we have two tracks
+
+00:49.437 --> 00:52.778
+for Emacs content. We've had those for the last four years, I
+
+00:52.798 --> 00:55.059
+think. It's because we have a general track, which is more
+
+00:55.119 --> 01:05.442
+geared towards people who want a general... well,
+
+00:55.119 --> 01:05.442
+generally people who are highly interested into org mode
+
+00:55.119 --> 01:05.442
+and not necessarily into coding, but just to whet their
+
+00:55.119 --> 01:05.442
+appetite to what can be done. And on the DevTrack, we have,
+
+01:06.082 --> 01:12.986
+well, this year we have talked about Rust and about other
+
+01:06.082 --> 01:12.986
+fancy things that people can do with Emacs. But, you know,
+
+01:13.006 --> 01:15.768
+I'm also a software engineer, you know, we do this all the
+
+01:13.006 --> 01:15.768
+time. Sometimes it's just fine to just chat about colors and
+
+01:15.808 --> 01:21.751
+just the results of what we develop rather than how the
+
+01:15.808 --> 01:21.751
+sausage is made. So that's completely fine too. I'm not sure
+
+NOTE Why colour?
+
+01:23.733 --> 01:32.618
+if you mentioned it in your presentation, but why color, out
+
+01:23.733 --> 01:32.618
+of all the things you could be ricing on your setup, why were
+
+01:23.733 --> 01:32.618
+you so interested about colors? I think it was just that
+
+01:34.870 --> 01:41.176
+mainly that I had to do a lot of context switch between
+
+01:34.870 --> 01:41.176
+different languages. Elisp is not the one because Elisp is
+
+01:41.576 --> 01:46.600
+something that I would do for Emacs editing. But for day job,
+
+01:47.061 --> 01:52.385
+I had to use mainly Go as I work with Kubernetes quite a bit. So
+
+01:52.525 --> 01:57.109
+Go and also web languages like TypeScript, JavaScript, you
+
+01:58.090 --> 02:13.642
+know, those languages, where I felt that whenever I was
+
+01:58.090 --> 02:13.642
+switching context to a different language, I felt that it's
+
+01:58.090 --> 02:13.642
+kind of annoying to see all the different colors in
+
+01:58.090 --> 02:13.642
+languages like TypeScript, where, you know, VS Code way
+
+01:58.090 --> 02:13.642
+would be very full of colors. which I felt that, okay, like,
+
+02:14.262 --> 02:23.569
+why do I have to have that many different colors on let and
+
+02:14.262 --> 02:23.569
+constant or the keywords where it could be just a white text?
+
+02:23.789 --> 02:25.170
+It didn't have to be that colorful. So that was the bit, the
+
+02:25.890 --> 02:30.373
+most annoying bit when it came to context switching. And I
+
+02:30.974 --> 02:35.197
+felt that that just didn't happen in the Org Mode or writing
+
+02:30.974 --> 02:35.197
+in general. So I had to find a way to make it work, make more
+
+02:36.017 --> 02:41.481
+coding make my coding more kind of friendly to me and that's
+
+02:42.173 --> 02:59.576
+when I thought maybe just the colors are something that's
+
+02:42.173 --> 02:59.576
+bothering me and it actually was the case and that's how I got
+
+02:42.173 --> 02:59.576
+to more into the color kind of journey and got too much into it
+
+02:42.173 --> 02:59.576
+I guess. Right, and was it what eventually motivated you to
+
+NOTE What motivated you to learn Elisp and get into the Emacs core?
+
+03:00.535 --> 03:05.778
+learn Elisp and to get into the Emacs core? Because it's
+
+03:05.798 --> 03:22.406
+funny how you find plenty of people using Emacs in Org Mode
+
+03:05.798 --> 03:22.406
+and then they find something that they take particular
+
+03:05.798 --> 03:22.406
+issue with, for you it's the color, and then they just go all
+
+03:05.798 --> 03:22.406
+in trying to pull the rope as far as they can to try to
+
+03:05.798 --> 03:22.406
+understand as much as possible about what code is managing
+
+03:05.798 --> 03:22.406
+this part of the application. Like for you it was color, for
+
+03:22.786 --> 03:25.047
+me it was the org agenda, I desperately wanted to make Org
+
+03:25.367 --> 03:30.692
+Agenda do something that it wasn't able to do. And five
+
+03:31.433 --> 03:36.318
+years, well, actually, no, 10 years later, I find myself
+
+03:31.433 --> 03:36.318
+hosting Emacs Cons. So, you never know just how far you're
+
+03:36.598 --> 03:39.201
+going to be pulling this rope. So, it's really interesting
+
+03:39.561 --> 03:42.224
+for me that my call was this. But back to the question, is this
+
+03:42.464 --> 03:48.150
+what eventually motivated you to get into Elisp and the core
+
+03:42.464 --> 03:48.150
+of Emacs? I think that the original journey to move to Emacs
+
+03:49.798 --> 04:02.250
+was around keybindings that I got annoyed with with other
+
+03:49.798 --> 04:02.250
+solutions, not just, you know, not speaking of Emacs
+
+03:49.798 --> 04:02.250
+keybinding or anything, like anything in general. The main
+
+04:02.870 --> 04:09.797
+reason was that I used Dovrak keyboard layout, and that
+
+04:02.870 --> 04:09.797
+meant that all the C-c, C-v, C-p, whatever, It just is
+
+04:10.257 --> 04:11.417
+all over the place. So I had to find something that could work
+
+04:11.577 --> 04:14.298
+for me. And Emacs was a solution that allowed me to do
+
+04:14.898 --> 04:17.499
+anything. And that's the kind of the journey that it
+
+04:18.019 --> 04:21.519
+originally started. And from there, started tweaking org
+
+04:21.599 --> 04:28.421
+mode and writing experience to be tuned to my liking. Color
+
+04:29.101 --> 04:33.682
+was another thing that I thought, OK, maybe I could do it
+
+04:29.101 --> 04:33.682
+easily with org mode. And when I started to use more of the
+
+04:34.262 --> 04:37.983
+coding side of things on Emacs, I felt that, okay, that was
+
+04:39.355 --> 04:41.697
+something I needed to solve. So Elisp was always kind of
+
+04:41.877 --> 04:48.022
+just a toolkit that, you know, I knew that it was available. I
+
+04:48.322 --> 04:52.105
+knew that it would be something that I want to be able to use.
+
+04:52.646 --> 04:58.090
+So I think in a way color was a good segue to understand how I
+
+04:52.646 --> 04:58.090
+can kind of work out more of a complex logic with the editor
+
+04:59.136 --> 05:07.220
+without having to write JavaScript or things that I don't
+
+04:59.136 --> 05:07.220
+particularly like. So yeah, I think the journey around the
+
+05:07.440 --> 05:13.583
+functional languages, functional kind of programming was
+
+05:07.440 --> 05:13.583
+always something that I was keen about. And yeah, the whole
+
+05:13.943 --> 05:16.644
+journey kind of made sense for me. And then moving on to the
+
+05:16.984 --> 05:21.246
+color was just one way to get more involved in. So I can
+
+05:21.406 --> 05:27.069
+totally see that this journey kind of making to a little bit
+
+05:21.406 --> 05:27.069
+different angle But yeah, we shall see how that really turns
+
+05:27.669 --> 05:30.972
+out. But for now, I think I'm happy with the color setup. Now I
+
+05:33.514 --> 05:35.095
+can really focus on the coding. Well, that's all good. And
+
+05:37.156 --> 05:44.162
+I'm sure plenty of people listening to you now, you know,
+
+05:37.156 --> 05:44.162
+find this relatable, how they eventually got into
+
+05:37.156 --> 05:44.162
+programming. Like for you, you did say that you were a
+
+05:44.222 --> 05:47.745
+software engineer now. But I found plenty of people,
+
+05:48.705 --> 05:53.469
+especially doing workshops, that just started you know,
+
+05:54.339 --> 06:01.267
+their software engineering journey just with Emacs and
+
+05:54.339 --> 06:01.267
+they just realized they were doing something completely
+
+05:54.339 --> 06:01.267
+different, like I was studying humanities. But then you
+
+06:01.787 --> 00:06:02.687
+touch Emacs and you realize, yeah, this whole programming
+
+06:01.787 --> 06:06.693
+shtick is actually pretty damn cool.
+
+00:06:07.280 --> 00:06:09.399
+And then you find yourself again,
+
+00:06:09.400 --> 00:06:11.039
+five to 10 years later, becoming a software
+
+00:06:11.040 --> 00:06:12.919
+engineer. So yeah, that's all good.
+
+00:06:12.920 --> 00:06:14.519
+So we do have a couple of
+
+00:06:14.520 --> 00:06:18.439
+questions and I'd like to move into them so that I, I mean,
+
+00:06:18.440 --> 00:06:22.439
+people have questions and for me it's okay for me to chat with
+
+00:06:22.440 --> 00:06:25.119
+you but obviously it's better if people ask you the question
+
+00:06:25.120 --> 00:06:27.679
+themselves. And again, if you want to ask questions to Ryota
+
+00:06:27.680 --> 00:06:31.079
+directly, feel free to join us on BBB and whenever we're done
+
+00:06:31.080 --> 00:06:33.519
+with the questions on the pad, I'm more than happy
+
+00:06:33.520 --> 00:06:34.444
+to let you ask your questions live.
+
+NOTE Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps?
+
+06:35.982 --> 00:06:37.902
+All right, so starting with the first question,
+
+00:06:37.903 --> 00:06:45.108
+is there any intention to create a library
+
+00:06:37.903 --> 06:45.108
+for working with more experimental color spaces, pulling
+
+06:35.982 --> 06:45.108
+code out of Hasliberg for this purpose, perhaps? Although I
+
+06:45.329 --> 06:46.049
+do not know. Hasliberg, you might? Yeah, Hasliberg. And to
+
+06:49.692 --> 06:50.892
+answer the question, started the journey just for myself
+
+06:52.859 --> 07:04.331
+and I didn't think that it would be actually useful for other
+
+06:52.859 --> 07:04.331
+use cases and this conference talk just came about kind of
+
+06:52.859 --> 07:04.331
+out of sheer luck really. So the idea I think I can definitely
+
+07:04.771 --> 07:14.501
+work it out and I don't think there will be too, the original
+
+07:04.771 --> 07:14.501
+code that I started with was I had to use some color space and I
+
+07:15.931 --> 07:21.595
+started with sRGB and then went to HSL and then went to LCH. So
+
+07:21.996 --> 07:24.678
+I think there has been quite a bit that I learned from it. At
+
+07:25.458 --> 07:33.885
+the same time, I may be tempted to actually maybe perhaps
+
+07:25.458 --> 07:33.885
+contribute back to ct.el rather than creating my own. I
+
+07:34.105 --> 07:36.227
+think that would make more sense perhaps.
+
+07:36.607 --> 00:07:39.548
+But for my own kind of taste that I thought
+
+00:07:39.549 --> 00:07:42.891
+that it would be something I can work out in my theme,
+
+00:07:42.892 --> 00:07:44.273
+but I don't have any I think, you know, making a
+
+07:45.813 --> 07:53.975
+library is definitely something that I can think about, but
+
+07:45.813 --> 07:53.975
+perhaps maybe making it too many packages isn't exactly
+
+07:45.813 --> 07:53.975
+what I want. But for my own use case, I think I just wanted to
+
+07:55.175 --> 08:06.317
+have something that just didn't have any external
+
+07:55.175 --> 08:06.317
+dependency so that I can use the vanilla Emacs with my
+
+07:55.175 --> 08:06.317
+colors. I think that's how it started, but I'm definitely up
+
+08:06.757 --> 08:11.558
+for it if there is interest about it. Yeah, well, thank you
+
+08:12.622 --> 00:08:13.615
+for this. It's always good to contribute.
+
+00:08:16.040 --> 00:08:16.399
+I'm tempted to say
+
+00:08:16.400 --> 00:08:18.679
+that's how they get you. You know, you do something really
+
+00:08:18.680 --> 00:08:24.799
+cool and you share it with people and they have the, you know,
+
+00:08:24.800 --> 00:08:27.080
+they just ask you, oh, do you have your code online? And you
+
+08:27.166 --> 08:28.667
+realize, no, I haven't pushed it. And then they start
+
+08:28.707 --> 08:30.107
+pressing you on. well, you need to do this, this is amazing
+
+08:30.287 --> 08:33.349
+and you need to share it. You know, I had plenty of people ask
+
+08:33.849 --> 08:41.735
+me to share my dot files when I was tackling the org agenda
+
+08:33.849 --> 08:41.735
+issue that I mentioned earlier. And yeah, eventually when
+
+08:42.575 --> 08:54.243
+you get to publishing your stuff, you also feel great
+
+08:42.575 --> 08:54.243
+because you're putting a little bit of your intelligence
+
+08:42.575 --> 08:54.243
+into the world and it can be the start of the journey for
+
+08:42.575 --> 08:54.243
+someone else. You know, maybe someone will find your
+
+08:54.283 --> 08:59.867
+library at some point and realize, yeah, I wanted to do
+
+08:54.283 --> 08:59.867
+something slightly differently. and then they either
+
+09:00.387 --> 09:10.793
+contribute to a library or they make their own but it's a
+
+09:00.387 --> 09:10.793
+complete journey that starts with just people taking the
+
+09:00.387 --> 09:10.793
+time to publish the content of the brain basically. Yeah,
+
+09:11.894 --> 09:13.354
+that's the power of open source now. It's just how we really
+
+09:13.654 --> 09:21.276
+appreciate the open source culture being cultivated
+
+09:13.654 --> 09:21.276
+throughout so many years. And yeah, this is something that
+
+09:21.736 --> 09:24.337
+I'm definitely keen about. So yeah, open for suggestions.
+
+09:26.618 --> 09:29.298
+And exactly, that's how I started with the journey. And
+
+00:09:29.760 --> 00:09:33.559
+yeah, while this is very experimental and very personal,
+
+00:09:33.560 --> 00:09:38.239
+yeah, I'm not, you know, tied down to one particular way
+
+00:09:38.240 --> 00:09:41.679
+only. So yeah we'll be open to suggestions like this one
+
+00:09:41.680 --> 00:09:44.839
+which I would definitely think about. Yeah that's amazing
+
+00:09:44.840 --> 00:09:46.879
+and just to be clear you know this is not a there's no
+
+00:09:46.880 --> 00:09:47.840
+incentive one. I'm not pushing you to publish your library.
+
+09:51.070 --> 09:57.595
+You know it was very personal for you and at the end if you
+
+09:51.070 --> 09:57.595
+believe it might be useful for others it's a nice thing to
+
+09:51.070 --> 09:57.595
+eventually think about publishing it. But just the fact
+
+09:58.056 --> 10:00.117
+that you showed up at EmacsConf... Sorry, I'm
+
+10:01.278 --> 00:10:02.698
+starting to lose my voice on the morning
+
+00:10:02.699 --> 00:10:03.280
+of the first day. That's
+
+10:03.520 --> 00:10:08.559
+not boding well for the two next days. I mean, just one day.
+
+00:10:08.560 --> 00:10:10.079
+But just the
+
+00:10:10.080 --> 00:10:13.279
+fact that you're showing up at EmacsConf and sharing about
+
+00:10:13.280 --> 00:10:17.119
+all of this, the process, how you got to it eventually, it's
+
+00:10:17.120 --> 00:10:19.439
+also a part of sharing. And I think it's also amazing in its
+
+00:10:19.440 --> 00:10:26.039
+own way. Absolutely. Okay, I'm going to try to read the next
+
+00:10:26.040 --> 00:10:31.719
+question and then try to cough a little bit. So can we have...
+
+00:10:31.720 --> 00:10:36.919
+Oh, sorry, Bala. Sorry. I was the one who asked the question.
+
+00:10:36.920 --> 00:10:40.120
+I thought I could ask it live here rather than... Thank you.
+
+10:40.188 --> 10:41.368
+I'll go cough a little bit. So here I am. Thanks, Ryota, for
+
+10:45.050 --> 10:47.190
+the nice talk. This is great. I loved it. Your attention to
+
+10:49.531 --> 00:10:50.140
+detail was awesome.
+
+NOTE Q: Can we have a dark as well as light theme variations made from your theme?
+
+00:10:51.880 --> 00:10:55.079
+So I was just looking at the code and I was
+
+00:10:55.080 --> 00:10:58.839
+wondering, do you have a dark and a light theme variation
+
+00:10:58.840 --> 00:11:02.479
+which can be made from your theme? Or do you have to customize
+
+00:11:02.480 --> 00:11:05.519
+it every time? That was my question. And thanks for that.
+
+00:11:05.520 --> 00:11:07.640
+Thank you very much. I appreciate your feedback and
+
+00:11:10.240 --> 00:11:15.079
+questions. So to answer the question, the short answer is
+
+00:11:15.080 --> 00:11:18.639
+that I do have both dark and light themes with some sorts of
+
+00:11:18.640 --> 00:11:22.199
+standard colors that I personally liked. And there were a
+
+00:11:22.200 --> 00:11:26.719
+few things that I showed in the demo. where I showed, I think,
+
+00:11:26.720 --> 00:11:30.039
+three different dark theme colors. So light theme is
+
+00:11:30.040 --> 00:11:31.440
+definitely something that I can do.
+
+00:11:31.800 --> 00:11:33.879
+And the idea around Hasliberg theme
+
+00:11:33.880 --> 00:11:36.359
+and just my theming in general was that
+
+00:11:36.360 --> 00:11:39.679
+when I feel like I want to work in dark theme and when I want to
+
+00:11:39.680 --> 00:11:42.440
+work in the standard way, I would just use the standard color.
+
+00:11:42.480 --> 00:11:44.959
+But when I feel like maybe it's just so cold that I want
+
+00:11:44.960 --> 00:11:49.399
+to have a bit of a warm colors near me, I would use the orange
+
+00:11:49.400 --> 00:11:52.359
+theme, without changing too much of the kind of general
+
+00:11:52.360 --> 00:11:55.679
+feeling and experience. So that can be said for the light
+
+00:11:55.680 --> 00:11:58.959
+theme as well. So there is something and the kind of
+
+00:11:58.960 --> 00:12:04.919
+customization isn't that difficult to extend. So I do have
+
+00:12:04.920 --> 00:12:09.079
+both dark and light, but primarily I'm just looking at the
+
+00:12:09.080 --> 00:12:10.239
+dark theme as my main driver. But yeah, they are both
+
+00:12:10.240 --> 00:12:13.240
+available. Great. Thank you so much. I will definitely try
+
+00:12:18.208 --> 12:18.865
+your theme out. I'm definitely on the lookout for a nice,
+
+12:19.205 --> 12:22.426
+friendly theme. Thank you very much. As I said, this is a
+
+12:25.388 --> 12:27.429
+personal theme. I'm not sure if it really fits everyone's
+
+12:29.089 --> 12:42.816
+need, but it is one inspiration that I hope that can lead to
+
+12:29.089 --> 12:42.816
+another nice theming that could work for someone
+
+12:29.089 --> 12:42.816
+specifically for some use cases. I don't have to solve
+
+12:42.996 --> 12:44.977
+everyone's problem. Yeah, and I mean, it was sufficient to
+
+12:46.553 --> 12:49.715
+be inspirational to people. I mean, just Bala just
+
+12:49.755 --> 12:58.619
+mentioned it right now, but I'm sure plenty of people who
+
+12:49.755 --> 12:58.619
+watched live, but also people will be watching in the
+
+12:49.755 --> 12:58.619
+future, will have the interest to speak by what you've done.
+
+12:58.699 --> 13:00.040
+So thank you again so much for this. Yep. All right, well, I
+
+13:04.102 --> 13:06.603
+don't see any further questions. So I suggest we move
+
+13:07.083 --> 13:10.525
+towards closure. Ryota, do you have any last words? No, I
+
+13:13.775 --> 13:14.175
+don't. So yeah, thank you very much for attending. And it was
+
+13:16.577 --> 13:18.979
+great fun putting this together. And I really didn't think
+
+13:19.299 --> 13:27.545
+that I would be talking about my personal colors and
+
+13:19.299 --> 13:27.545
+personal favorites, like orange being my favorite color.
+
+13:27.845 --> 13:31.228
+This wouldn't be something that I would say out in any
+
+13:27.845 --> 13:31.228
+conference, to be honest. But it just came out to be. And
+
+13:33.890 --> 13:35.491
+happy that I had a chance. So thank you very much for giving me
+
+13:35.651 --> 13:39.154
+the opportunity to talk. in this amazing conference and
+
+13:39.574 --> 13:52.473
+yeah I can't just wait to check out other talks which you know
+
+13:39.574 --> 13:52.473
+I know that there isn't you know other talks that are
+
+13:39.574 --> 13:52.473
+happening right now I was actually wanted to to join them and
+
+13:39.574 --> 13:52.473
+check check that out so I will probably do that right now.
+
+13:53.419 --> 13:53.899
+Well, sure. Well, I won't hold you any longer then. Thank
+
+13:56.401 --> 13:56.741
+you. For me, it was just amazing to, you know, generally when
+
+13:57.682 --> 14:03.285
+you ask someone what their favorite color, you know, they
+
+13:57.682 --> 14:03.285
+just tell you orange or blue or whatever. They don't go then
+
+14:03.586 --> 14:10.690
+to chat about 20 minutes about their favorite color and how
+
+14:03.586 --> 14:10.690
+they tuned their entire editor to work exactly around their
+
+14:03.586 --> 14:10.690
+favorite colors. So it was inspiring. And I also want to try
+
+14:12.912 --> 14:21.057
+it out, frankly, because my theme has been utterly bad for
+
+14:12.912 --> 14:21.057
+the last five years and I need some change into my life. All
+
+14:21.497 --> 14:21.677
+right. Thank you so much for your time. Thank you very much,
+
+14:23.629 --> 14:24.654
+everyone. Cheers. Bye-bye.
diff --git a/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt
new file mode 100644
index 00000000..74b1254c
--- /dev/null
+++ b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt
@@ -0,0 +1,957 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:05.079
+You sound great. And on the stream, my eyeball says it looks
+
+00:00:05.080 --> 00:00:08.239
+great with Leo doing the streaming. So I say let's dive right
+
+00:00:08.240 --> 00:00:12.639
+in. You got a long, huge line. And in order to be a little more
+
+00:00:12.640 --> 00:00:16.279
+dialectical, I'll be reading the questions. So first
+
+NOTE Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)
+
+00:00:16.280 --> 00:00:18.559
+question, which key was a third party package for a long
+
+00:00:18.560 --> 00:00:21.879
+time? Is there work to bring any other popular packages into
+
+00:00:21.880 --> 00:00:25.399
+the core of Emacs for Emacs 31 plus, like Magit or Counsel?
+
+00:00:25.400 --> 00:00:30.279
+Uh, right. I already answered that one on the, as you can see,
+
+00:00:30.280 --> 00:00:33.999
+uh, right. Yeah. Do you want to quickly read the answer so
+
+00:00:34.000 --> 00:00:38.439
+that everyone, I just can read it out again. Um, as far as I
+
+00:00:38.440 --> 00:00:41.159
+remember, the one package that was being discussed just
+
+00:00:41.160 --> 00:00:43.999
+around the time that the Emacs 30 branch was cut was macro
+
+00:00:44.000 --> 00:00:47.599
+step. That's the package that was like, does an overlay, uh,
+
+00:00:47.600 --> 00:00:51.479
+replaces a macro with the macro expansion using overlays.
+
+00:00:51.480 --> 00:00:53.799
+So you don't have to pop up another buffer, modified,
+
+00:00:53.800 --> 00:00:57.599
+modified current buffer. But we didn't manage to address
+
+00:00:57.600 --> 00:01:00.759
+all the concerns in time for the Emacs 30 cuts and I believe
+
+00:01:00.760 --> 00:01:03.799
+it's sort of stagnated around that but it might be picked up
+
+00:01:03.800 --> 00:01:07.399
+anytime someone mentions it on Emacs Devil again. Another
+
+00:01:07.400 --> 00:01:11.519
+package question mentioned was Magit. That's a constant
+
+00:01:11.520 --> 00:01:14.959
+discussion regarding Magit. And actually, from the top of
+
+00:01:14.960 --> 00:01:19.039
+my head, I can't recall if Magit is on NonGNU ELPA or GNU ELPA
+
+00:01:19.040 --> 00:01:22.999
+right now. It's still on NonGNU ELPA.
+
+00:01:23.000 --> 00:01:29.039
+For those who don't know, only packages which are in ELPA are
+
+00:01:29.040 --> 00:01:33.039
+considered for addition, considered to be added to the
+
+00:01:33.040 --> 00:01:36.119
+Emacs core, to be bundled along with Emacs. And then there's
+
+00:01:36.120 --> 00:01:40.519
+another totally parallel discussion about having a sort of
+
+00:01:40.520 --> 00:01:43.519
+fat Emacs distribution, I call it fat Emacs distribution,
+
+00:01:43.520 --> 00:01:48.119
+where Emacs comes with a lot of ELPA packages or the
+
+00:01:48.120 --> 00:01:55.039
+pre-installed by default. Part of Emacs itself. Yeah.
+
+00:01:55.040 --> 00:01:59.159
+Maybe I could jump in with an active listening style,
+
+00:01:59.160 --> 00:02:03.359
+you know, kind of follow up question almost. You know, I
+
+00:02:03.360 --> 00:02:07.159
+understand the kind of different repositories. We have
+
+00:02:07.160 --> 00:02:13.799
+things that aren't maintained by GNU at all, you know, most
+
+00:02:13.800 --> 00:02:17.919
+notably MELPA. And then we have kind of NonGNU ELPA, which
+
+00:02:17.920 --> 00:02:21.639
+is sort of an entryway project where it's not necessarily
+
+00:02:21.640 --> 00:02:24.759
+curated, but there'll be some advice given, which you can
+
+00:02:24.760 --> 00:02:28.159
+take or leave. And that's the repository where anything
+
+00:02:28.160 --> 00:02:32.519
+that was the newer repository that represents, you know,
+
+00:02:32.520 --> 00:02:36.319
+help, you know, help, help supplied from GNU. And then
+
+00:02:36.320 --> 00:02:41.319
+there's the, actually the GNU, the GNU ELPA, what most of us
+
+00:02:41.320 --> 00:02:46.479
+are used to calling just ELPA. And that's what you're
+
+00:02:46.480 --> 00:02:50.839
+talking about there when you say,
+
+00:02:50.840 --> 00:02:53.959
+I mean, all packages on ELPA are officially considered to be
+
+00:02:53.960 --> 00:02:56.959
+part of Emacs, they're licensed under the same conditions
+
+00:02:56.960 --> 00:03:00.359
+as Emacs itself, same license, same everything. And
+
+00:03:00.360 --> 00:03:03.719
+they're more likely to be, to drop, to kind of be dropping
+
+00:03:03.720 --> 00:03:07.839
+patched. Oh yeah, it's time for this to move to core. Is that
+
+00:03:07.840 --> 00:03:12.559
+right? They have the legal conditions for that to be done.
+
+00:03:12.560 --> 00:03:15.039
+Everything's necessary from a paperwork standpoint. I
+
+00:03:15.040 --> 00:03:17.959
+mean, but other than that, there's not really a big
+
+00:03:17.960 --> 00:03:21.159
+difference between GNU ELPA and NonGNU ELPA. It's
+
+00:03:21.160 --> 00:03:23.839
+really just the main thing is this copyrights notice. So if
+
+00:03:23.840 --> 00:03:28.519
+you want to add a package to ELPA, to GNU ELPA, then all
+
+00:03:28.520 --> 00:03:32.359
+significance contributors have to have signed the FSF
+
+00:03:32.360 --> 00:03:36.399
+copyright assignment and the package script, actually the
+
+00:03:36.400 --> 00:03:41.519
+ELPA build script, checks if the copyright lines are all
+
+00:03:41.520 --> 00:03:43.879
+attributed to the Free Software Foundation.
+
+00:03:43.880 --> 00:03:52.119
+But that's not going to attach, right? So because that's not
+
+00:03:52.120 --> 00:03:57.799
+in place, it'd be a lot more work to merge it to core. I didn't
+
+00:03:57.800 --> 00:04:01.039
+hear the beginning. Nevermind. I think I understood. You
+
+00:04:01.040 --> 00:04:05.559
+made your point well. Okay. All right, moving on to the
+
+00:04:05.560 --> 00:04:06.466
+second question.
+
+NOTE Q: Any way to get the goodness of Emacs for android with this other stuff?
+
+00:04:06.467 --> 00:04:08.279
+When thinking about using Emacs on
+
+00:04:08.280 --> 00:04:11.279
+Android, I started realizing all the other software I also
+
+00:04:11.280 --> 00:04:15.279
+want on it. For example, PDF Tools wants a small additional
+
+00:04:15.280 --> 00:04:18.519
+Emacs-specific program to be installed on, and notmuch
+
+00:04:18.520 --> 00:04:21.359
+obviously wants notmuch. Any way to get the goodness of
+
+00:04:21.360 --> 00:04:25.639
+Emacs for Android with this other stuff, using either Nix OS
+
+00:04:25.640 --> 00:04:29.279
+or Guix or nix-on-droid to make an APK with extra stuff? Are you
+
+00:04:29.280 --> 00:04:34.439
+familiar with this topic? Absolutely not. The extent to
+
+00:04:34.440 --> 00:04:39.319
+which I have used Emacs on Android was entirely
+
+00:04:39.320 --> 00:04:43.719
+demonstrated in this video, I think. In my previous video. I
+
+00:04:43.720 --> 00:04:48.719
+mean, I know it does a few scrolling stuff, but I have no idea
+
+00:04:48.720 --> 00:04:52.719
+how external stuff, because I mean, Android is, it's a Unix
+
+00:04:52.720 --> 00:04:55.439
+or it's a Linux based system, but it's really heavily
+
+00:04:55.440 --> 00:05:01.439
+modified to the preferences of Google, which includes not
+
+00:05:01.440 --> 00:05:04.719
+being able to have your own software on it. Yeah,
+
+00:05:04.720 --> 00:05:08.799
+definitely. All right, moving on to the next question. Does
+
+00:05:08.800 --> 00:05:12.239
+package-vc... Oh, no, that's fine. I mean, you can't answer
+
+00:05:12.240 --> 00:05:15.199
+all the questions. I mean, it wouldn't be fun for me
+
+00:05:15.200 --> 00:05:15.753
+otherwise.
+
+NOTE Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?
+
+00:05:15.754 --> 00:05:17.919
+Does package-vc download a tarball from the
+
+00:05:17.920 --> 00:05:21.759
+specified Git repository or clone the repository itself?
+
+00:05:21.760 --> 00:05:25.439
+It clones the repository. That's the VC part in the name.
+
+00:05:25.440 --> 00:05:33.719
+package-vc uses VC, the C-x v stuff. In Emacs 29, there's a
+
+00:05:33.720 --> 00:05:37.679
+new command called vc-clone, which in Emacs 31, it was
+
+00:05:37.680 --> 00:05:42.479
+actually exposed as an interactive command. And when you
+
+00:05:42.480 --> 00:05:47.319
+clone the repository, or when you, you can give it any URL of a
+
+00:05:47.320 --> 00:05:50.559
+Git repository or a CVS repository or subversion
+
+00:05:50.560 --> 00:05:53.519
+repository. Interestingly enough, most people only use
+
+00:05:53.520 --> 00:05:57.559
+Git, but anything that's, that implements this clone
+
+00:05:57.560 --> 00:06:01.519
+command for VC, and it could download it. So there's no
+
+00:06:01.520 --> 00:06:05.119
+tarballs involved. Which is also, one should emphasize,
+
+00:06:05.120 --> 00:06:07.879
+part of the difficulty of VC packages because when you have
+
+00:06:07.880 --> 00:06:10.759
+version control and you want to upgrade it, it might be that
+
+00:06:10.760 --> 00:06:14.399
+the upstream did a force push. For that, you make local
+
+00:06:14.400 --> 00:06:17.519
+changes and then you have to merge them upstream with the
+
+00:06:17.520 --> 00:06:21.239
+upstream changes when fetching stuff. It's one of the big
+
+00:06:21.240 --> 00:06:23.559
+downsides of version-controlled stuff, and I'm saying
+
+00:06:23.560 --> 00:06:26.999
+this as the guy who actually wrote package-vc. There's
+
+00:06:27.000 --> 00:06:29.719
+times to use it, there's advantages to it, but that's
+
+00:06:29.720 --> 00:06:32.959
+something you should keep in mind, why tarballs are
+
+00:06:32.960 --> 00:06:37.969
+interesting to have, in my opinion. Okay.
+
+NOTE How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions?
+
+00:06:37.970 --> 00:06:39.639
+How is the new
+
+00:06:39.640 --> 00:06:42.439
+behavior of M-q in prog mode, prog-fill-reindent-defun
+
+00:06:42.440 --> 00:06:45.159
+or something like that, different from the behavior
+
+00:06:45.160 --> 00:06:48.799
+of C-M-q, i.e. indent-pp-sexp in older Emacs
+
+00:06:48.800 --> 00:06:52.199
+version? My apologies if indent-pp-sexp, it's really tough to
+
+00:06:52.200 --> 00:06:55.959
+read M-x commands out loud. It's not bound to
+
+00:06:55.960 --> 00:07:01.519
+C-M-q by default, I can't tell. Let me try that command
+
+00:07:01.520 --> 00:07:05.599
+out because I've never tried it, never used it before.
+
+00:07:05.600 --> 00:07:09.079
+You know, that isn't bound by default. I bind that up myself
+
+00:07:09.080 --> 00:07:11.759
+and I have that binding. I think that's, that's not right. It
+
+00:07:11.760 --> 00:07:15.119
+says so. I mean, I'm currently executing it here in Emacs and
+
+00:07:15.120 --> 00:07:20.839
+it says you can also run the commands indent-pp-sexp with
+
+00:07:20.840 --> 00:07:26.359
+M-q, C-M-q. Apparently it is. I mean, I
+
+00:07:26.360 --> 00:07:31.359
+didn't set it myself. I don't know what's up with that. to try
+
+00:07:31.360 --> 00:07:35.439
+and move it. And then each line started with points or pretty
+
+00:07:35.440 --> 00:07:37.239
+printed. I mean, the difference, the main difference
+
+00:07:37.240 --> 00:07:41.279
+between that and the command highlighted, what's the name
+
+00:07:41.280 --> 00:07:47.479
+again? I forget it all the time. The prog-mode command.
+
+00:07:47.480 --> 00:07:50.359
+prog-fill-reindent-defun is that
+
+00:07:50.360 --> 00:07:56.319
+it checks if it's in a string or not. If it's in a string or if
+
+00:07:56.320 --> 00:07:58.959
+it's in a comma, then it will refill. Otherwise, it's going
+
+00:07:58.960 --> 00:07:59.799
+to re-indent.
+
+00:07:59.800 --> 00:08:05.679
+That's, I think, as far as I see, that's going to be the main
+
+00:08:05.680 --> 00:08:09.599
+difference. If we have some long comments somewhere. Let's
+
+00:08:09.600 --> 00:08:15.439
+try that out. Yeah, that's the difference. I just, you can't
+
+00:08:15.440 --> 00:08:19.679
+see it, but I did try it. Okay, good. Thank you. You did a
+
+00:08:19.680 --> 00:08:22.119
+wonderful job describing visually what you're doing. All
+
+00:08:22.120 --> 00:08:26.759
+right, moving on to the next question, and we have about, we
+
+00:08:26.760 --> 00:08:28.759
+have just enough time to cover the last three questions,
+
+00:08:28.760 --> 00:08:32.239
+especially because the next one, I can pretty much surmise
+
+00:08:32.240 --> 00:08:33.143
+the answer.
+
+NOTE Q: Any plans for Emacs running in iOS?
+
+00:08:33.144 --> 00:08:36.759
+Any plans for Emacs running on iOS? Probably not
+
+00:08:36.760 --> 00:08:40.319
+because it's not, I mean, as I emphasized in the video, the
+
+00:08:40.320 --> 00:08:43.639
+Emacs port in Android is completely free. And to my
+
+00:08:43.640 --> 00:08:45.319
+knowledge, that's not something that's currently
+
+00:08:45.320 --> 00:08:49.799
+possible with iOS. You need Xcode or something like that to
+
+00:08:49.800 --> 00:08:56.639
+build iOS stuff. So that's a big no-no. I mean, maybe Apple's
+
+00:08:56.640 --> 00:09:00.919
+going to change their mind on that one. Well, I won't be the
+
+00:09:00.920 --> 00:09:04.039
+one liaising with Apple to make sure that they do, but PR
+
+00:09:04.040 --> 00:09:07.599
+welcomes, I guess, or motivated folks welcome. Second to
+
+00:09:07.600 --> 00:09:08.647
+last question.
+
+NOTE Q: I am worried about the situation on non-free systems. There was talk about the Windows and the macOS versions being as good as unmaintained. Where do we go from here?
+
+00:09:08.648 --> 00:09:11.719
+I am worried about the situation on non-free
+
+00:09:11.720 --> 00:09:14.519
+systems. There was talk about the Windows and the macOS
+
+00:09:14.520 --> 00:09:17.039
+versions being as good as unmaintained. Where do we go from
+
+00:09:17.040 --> 00:09:20.399
+here? I gather that most users of Emacs are still on non-free
+
+00:09:20.400 --> 00:09:24.799
+platforms and will remain to be there. I don't know about the
+
+00:09:24.800 --> 00:09:28.279
+last point, if that's true, because there's no statistics
+
+00:09:28.280 --> 00:09:35.039
+on that matter. But the main, I mean, someone has to, I know
+
+00:09:35.040 --> 00:09:37.959
+that Corwin is involved with the Mac, with the Windows
+
+00:09:37.960 --> 00:09:43.199
+stuff. Modestly. Sure, I'd love to jump in, but I'm far more
+
+00:09:43.200 --> 00:09:45.839
+interested in your thoughts than mine. Please, please
+
+00:09:45.840 --> 00:09:51.039
+continue. Someone has to do the work. Eli uses, as far as I
+
+00:09:51.040 --> 00:09:58.719
+know, Eli's on the Windows XP system. So as long as he's doing
+
+00:09:58.720 --> 00:10:02.519
+that, there's going to be Windows support for one form or
+
+00:10:02.520 --> 00:10:07.959
+another, or at least DOS. All right. And now you put a quarter
+
+00:10:07.960 --> 00:10:12.439
+in me, so I'll jump right back in. That's perfect for where I
+
+00:10:12.440 --> 00:10:14.519
+guess I would take the question. To me, it's an
+
+00:10:14.520 --> 00:10:17.439
+accessibility issue. Think about it this way. Maybe that
+
+00:10:17.440 --> 00:10:23.319
+Windows XP system is what someone can afford. Likewise,
+
+00:10:23.320 --> 00:10:27.679
+from a freedom versus I have to do my job and I have to use
+
+00:10:27.680 --> 00:10:31.679
+certain technology to do my job. Maybe Emacs is what
+
+00:10:31.680 --> 00:10:35.559
+somebody can afford right? It might be the only free tool
+
+00:10:35.560 --> 00:10:37.439
+that they use and they don't have a lot of choice about the
+
+00:10:37.440 --> 00:10:40.039
+operating system that they're in most of the day. In fact,
+
+00:10:40.040 --> 00:10:42.279
+somebody could be in the situation where their computing
+
+00:10:42.280 --> 00:10:45.839
+device at work is really their internet access, right? All
+
+00:10:45.840 --> 00:10:48.279
+of those situations are possible. Therefore, I tend to
+
+00:10:48.280 --> 00:10:53.479
+assume they all exist and when I ask, you know, how much It
+
+00:10:53.480 --> 00:10:58.039
+definitely is concerning when we hear about kind of black
+
+00:10:58.040 --> 00:11:02.079
+holes in the brain trust of something like support for the
+
+00:11:02.080 --> 00:11:06.359
+Windows port. I feel like I've heard a lot of people
+
+00:11:06.360 --> 00:11:10.959
+answering that call, but the importance of that is that it
+
+00:11:10.960 --> 00:11:14.119
+doesn't stop echoing, right? Free software goes as long as
+
+00:11:14.120 --> 00:11:16.399
+there are people that are irritated enough about something
+
+00:11:16.400 --> 00:11:20.839
+to sort of come hack on it. Yeah. And the same applies to Mac
+
+00:11:20.840 --> 00:11:25.199
+OS. But I don't know any concrete details about who's
+
+00:11:25.200 --> 00:11:28.079
+currently working on it. I can't recollect any details on
+
+00:11:28.080 --> 00:11:29.439
+who's currently working on what.
+
+00:11:29.440 --> 00:11:35.279
+Okay. And that leaves us with the last question of the day.
+
+NOTE Q: Is there a best practice on what Org to use when following emacs-latest?
+
+00:11:35.280 --> 00:11:38.159
+I'm a bit confused about what version of Org that I should
+
+00:11:38.160 --> 00:11:40.919
+write towards because there's Org in Emacs, the one that
+
+00:11:40.920 --> 00:11:44.279
+ships built-in. There's the one in ELPA. There's the one in
+
+00:11:44.280 --> 00:11:48.519
+Org, probably the Org ELPA, I assume. Is there a best
+
+00:11:48.520 --> 00:11:51.959
+practice on what Org to use when following Emacs latest?
+
+00:11:51.960 --> 00:11:58.919
+when following us latest. It depends on, I think, my rough
+
+00:11:58.920 --> 00:12:02.559
+heuristic is if you do use Org a lot and if you follow the
+
+00:12:02.560 --> 00:12:06.279
+newest features, then use the version on Elpa, because the
+
+00:12:06.280 --> 00:12:09.959
+Elpa version should be the most up-to-date one. The Org Elpa
+
+00:12:09.960 --> 00:12:14.999
+was deprecated, to my knowledge. If that seems true, please
+
+00:12:15.000 --> 00:12:18.319
+someone interrupt me before I make a fool of myself.
+
+00:12:18.320 --> 00:12:24.519
+No one's done that yet.
+
+00:12:24.520 --> 00:12:29.519
+I think a couple of years ago there were chats and then we
+
+00:12:29.520 --> 00:12:33.999
+deprecated the all contrib ELPA, but I think all the ELPA is
+
+00:12:34.000 --> 00:12:40.759
+still alive. I didn't know that about that. Okay, in that
+
+00:12:40.760 --> 00:12:44.839
+case, that relativizes how absolute my answer is.
+
+00:12:44.840 --> 00:12:49.559
+Personally, I just use the version in Emacs, which is
+
+00:12:49.560 --> 00:12:53.399
+bundled with Emacs, which is regularly updated on master
+
+00:12:53.400 --> 00:12:58.319
+whenever there's a release. But that might take maybe, it
+
+00:12:58.320 --> 00:13:03.559
+might be a short time behind the ELPA version, or the other
+
+00:13:03.560 --> 00:13:11.879
+ELPA, the Org ELPA, which we mentioned. But I'm a very light
+
+00:13:11.880 --> 00:13:16.119
+Org mode user, so please don't take my word for that one. No,
+
+00:13:16.120 --> 00:13:23.439
+and I'm happy to come to you. Yeah. I
+
+00:13:23.440 --> 00:13:27.719
+feel like we lost Leo again. OK. Well, that's all right. I
+
+00:13:27.720 --> 00:13:31.279
+wanted a bite at that, Apple. I'm a little bit. Yeah, I also
+
+00:13:31.280 --> 00:13:34.239
+describe myself as a light org user, but somehow your
+
+00:13:34.240 --> 00:13:37.159
+comment made me think, well, maybe I do use it just a little
+
+00:13:37.160 --> 00:13:41.719
+bit more than you, Philip.
+
+00:13:41.720 --> 00:13:45.359
+From my standpoint, I'm using it as a technical basis for
+
+00:13:45.360 --> 00:13:49.959
+dungeon mode in order to keep the game notes for the games
+
+00:13:49.960 --> 00:13:52.479
+that are made using this game engine I'm making that I talked
+
+00:13:52.480 --> 00:13:56.079
+about a few years ago. As soon as you said technical grounds,
+
+00:13:56.080 --> 00:13:59.319
+you definitely use it more. Right, right. So I've studied
+
+00:13:59.320 --> 00:14:04.159
+its internals a bit, and I have my own thoughts about this or
+
+00:14:04.160 --> 00:14:06.959
+that. But of course, I'm rolling with the punches because
+
+00:14:06.960 --> 00:14:10.119
+I'm just grateful that the bear dances. What an amazing
+
+00:14:10.120 --> 00:14:14.519
+thing is Org Mode. But Leo knows far more than me,
+
+00:14:14.520 --> 00:14:18.359
+conveniently having his stage right here, so he can't
+
+00:14:18.360 --> 00:14:22.359
+defend himself from this. But I've had thoughts around this
+
+00:14:22.360 --> 00:14:28.559
+space. Are you back, Leo? Yeah, sorry, I'm back. You save us
+
+00:14:28.560 --> 00:14:33.479
+all. Maybe closing remarks. I was trying to clear my throat
+
+00:14:33.480 --> 00:14:36.079
+to be very inconspicuous about me coming back, but
+
+00:14:36.080 --> 00:14:39.319
+apparently I was ousted. Yeah, I was trying to answer the
+
+00:14:39.320 --> 00:14:42.239
+question and I was trying to desperately save you from
+
+00:14:42.240 --> 00:14:45.999
+answering, Philip, because yes, the thing about Org Mode is
+
+00:14:46.000 --> 00:14:48.879
+that if you are the kind of people who tend to check out master
+
+00:14:48.880 --> 00:14:51.919
+on Org Mode, generally it's roughly pretty stable. Like
+
+00:14:51.920 --> 00:14:54.319
+when we were working with Org Element and stuff like this,
+
+00:14:54.320 --> 00:14:56.479
+Perhaps there were some elements of stability which
+
+00:14:56.480 --> 00:14:59.199
+weren't there quite yet, but usually now it's pretty
+
+00:14:59.200 --> 00:15:02.039
+stable. So I think that if you are really excited about
+
+00:15:02.040 --> 00:15:04.639
+contributing to Org Mode and stuff like this, I think there
+
+00:15:04.640 --> 00:15:08.199
+isn't all that many risks to just checking out Org Mode
+
+00:15:08.200 --> 00:15:10.999
+Master, so cloning the repository and just keeping up to
+
+00:15:11.000 --> 00:15:15.119
+date. Otherwise, ELPA is a fairly safe bet if you want to have
+
+00:15:15.120 --> 00:15:19.839
+the latest stable version. And we've got a question about
+
+00:15:19.840 --> 00:15:24.759
+[??] as with Emacs itself. You can follow whatever is
+
+00:15:24.760 --> 00:15:28.519
+published in your package archives or in your system
+
+00:15:28.520 --> 00:15:32.399
+distribution package manager. You can build it yourself if
+
+00:15:32.400 --> 00:15:36.839
+you want to contribute and fix bugs, add features, and so on.
+
+00:15:36.840 --> 00:15:40.399
+Yeah, and I don't think perhaps a little more with Emacs,
+
+00:15:40.400 --> 00:15:43.439
+because the features that tends to get introduced in Emacs
+
+00:15:43.440 --> 00:15:48.039
+are slightly more wild. Not wild in the sense that they are
+
+00:15:48.040 --> 00:15:50.679
+less stable, but wild in the sense that they tend to change a
+
+00:15:50.680 --> 00:15:54.119
+lot more stuff. The core of Org, at least during Bastien's
+
+00:15:54.120 --> 00:15:56.879
+maintenance ship, was very stable when you think about it.
+
+00:15:56.880 --> 00:15:59.719
+So things might change with Ihor right now in terms of how he
+
+00:15:59.720 --> 00:16:02.839
+wants to change some of the core behaviors, but it's usually
+
+00:16:02.840 --> 00:16:06.079
+pretty stable. And whether you use the latest major
+
+00:16:06.080 --> 00:16:09.159
+version, the latest minor version, things are probably
+
+00:16:09.160 --> 00:16:11.679
+going to be pretty stable. It's like you heard me while you
+
+00:16:11.680 --> 00:16:16.199
+were offline. And I do agree with that, in case you might have
+
+00:16:16.200 --> 00:16:18.319
+heard both our remarks and think we're talking different
+
+00:16:18.320 --> 00:16:22.439
+angles. Actually, I think we would tend to agree on this, Leo
+
+00:16:22.440 --> 00:16:26.759
+and I. For the record, when I'm saying, oh, I have to go keep up
+
+00:16:26.760 --> 00:16:30.719
+with org, that's because org grows behaviors that I've got
+
+00:16:30.720 --> 00:16:34.639
+my own. I had to figure out at some point my own way to do it, and
+
+00:16:34.640 --> 00:16:38.119
+now I'm learning how it's done, right? So I'm like, in my
+
+00:16:38.120 --> 00:16:41.279
+abstraction, blah, right? And those conversations
+
+00:16:41.280 --> 00:16:44.279
+usually end at, and somebody else took the time to figure out
+
+00:16:44.280 --> 00:16:48.039
+how to actually make Emacs do that. Go be quiet. And I do, and I
+
+00:16:48.040 --> 00:16:52.999
+do consider that under Bastien's tenure, it has been quite
+
+00:16:53.000 --> 00:16:57.039
+stable. We might notice the occasional like, oh, this
+
+00:16:57.040 --> 00:17:00.519
+highlights now and that didn't, right? But very often, very
+
+00:17:00.520 --> 00:17:03.599
+infrequently is it breaking my workflow as a user, any of it.
+
+00:17:03.600 --> 00:17:07.799
+It's interesting to me that this mirrors my experience with
+
+00:17:07.800 --> 00:17:12.679
+Emacs itself, where I think, in my perception, Emacs master
+
+00:17:12.680 --> 00:17:17.199
+is very stable and I might notice the slight changes between
+
+00:17:17.200 --> 00:17:21.839
+git pulls. But otherwise, in my experience, Org mode
+
+00:17:21.840 --> 00:17:24.879
+suddenly changes something, I don't know what changed or
+
+00:17:24.880 --> 00:17:29.439
+what's going on or what caused it, and it seemed... I
+
+00:17:29.440 --> 00:17:33.719
+perceive it as being a sudden uncontrolled change or
+
+00:17:33.720 --> 00:17:36.239
+something. I think that's apt. Right. That gets
+
+00:17:36.240 --> 00:17:40.159
+right at it. If we're following, if we're pulling for more
+
+00:17:40.160 --> 00:17:42.759
+pretty regularly, cronjob every night or pulling a few
+
+00:17:42.760 --> 00:17:44.639
+times a day or something like that, we're going to the
+
+00:17:44.640 --> 00:17:48.639
+internals yeah, we'll have a different experience than,
+
+00:17:48.640 --> 00:17:51.959
+you know, if we only remember to update Org once every four
+
+00:17:51.960 --> 00:17:54.759
+months. It really pays to stick with everything. And
+
+00:17:54.760 --> 00:17:59.199
+suddenly lots of things might change. Whatever broke in my
+
+00:17:59.200 --> 00:18:03.439
+own config, right? And so a lot of, like a lot of things within
+
+00:18:03.440 --> 00:18:06.759
+Emacs, but also within the free software tool chain, it's
+
+00:18:06.760 --> 00:18:09.559
+how much you're going to invent in the config, invest in the
+
+00:18:09.560 --> 00:18:14.199
+config, might limit you know, and maintaining your config
+
+00:18:14.200 --> 00:18:17.199
+may limit the depth of how far it makes sense for you to go with
+
+00:18:17.200 --> 00:18:21.759
+the tool at any given point in time. Actually just looked up
+
+00:18:21.760 --> 00:18:25.279
+my org config and it's four, I said four options, user
+
+00:18:25.280 --> 00:18:29.239
+options. So that's, if that's the measurements of org
+
+00:18:29.240 --> 00:18:32.119
+expertise, that's my level, it's four.
+
+00:18:32.120 --> 00:18:38.559
+That's all good then. Four of four, I'm assuming that is,
+
+00:18:38.560 --> 00:18:44.279
+right? Four of what? What was the metric there, four of like a
+
+00:18:44.280 --> 00:18:48.119
+thousand? Four out of the number of user options that Word
+
+00:18:48.120 --> 00:18:54.239
+provides. Oh, okay, I see. Four, yeah, more like 10,000. I'm
+
+00:18:54.240 --> 00:18:59.079
+there. Yeah. All right. On that note, I suggest we move to
+
+00:18:59.080 --> 00:19:00.999
+what's close because it's fairly late for me and I need to
+
+00:19:01.000 --> 00:19:03.119
+sleep. And Philip, I think it's pretty late for you as well,
+
+00:19:03.120 --> 00:19:07.239
+isn't it? I'm in Germany, so it's about... So it is pretty
+
+00:19:07.240 --> 00:19:09.799
+late. It's the same time zone as me. It's 11 p.m. for you.
+
+00:19:09.800 --> 00:19:16.399
+Truly, yeah. Yeah, so I suggest we both take the chance to go
+
+00:19:16.400 --> 00:19:20.359
+to bed as soon as we can. But Philip, thank you so much for
+
+00:19:20.360 --> 00:19:22.759
+both the presentation and also the answers that you
+
+00:19:22.760 --> 00:19:26.119
+provided to us and the nice little chat we had at the end. We
+
+00:19:26.120 --> 00:19:29.519
+look forward to seeing you again next year, perhaps for
+
+00:19:29.520 --> 00:19:34.159
+Emacs 31. I'm not sure. I was chatting with wasamasa
+
+00:19:34.160 --> 00:19:37.679
+trying to make prognostics about when Emacs 30 is going to be
+
+00:19:37.680 --> 00:19:40.839
+released. There's a pre-release coming soon. I should have
+
+00:19:40.840 --> 00:19:46.719
+mentioned that earlier. Well, there you go. Gone.
+
+00:19:46.720 --> 00:19:51.839
+All right. Well, thank you so much, Philip. We'll be moving
+
+00:19:51.840 --> 00:19:54.479
+towards close. Give us about two minutes to get set up in the
+
+00:19:54.480 --> 00:19:58.439
+other room. And Philip, we'll see you next time. Goodbye.
+
+00:19:58.440 --> 00:20:02.160
+Bye-bye. Thank you.
diff --git a/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt b/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt
new file mode 100644
index 00000000..510e556e
--- /dev/null
+++ b/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt
@@ -0,0 +1,720 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:08.119
+All right. Hey, thanks for bearing with us there. We had a
+
+00:00:08.120 --> 00:00:11.239
+couple of bumps in the road, a cross between a couple of
+
+00:00:11.240 --> 00:00:13.479
+different versions of our program that we deliver here,
+
+00:00:13.480 --> 00:00:17.959
+different ways that we bring this stream together between
+
+00:00:17.960 --> 00:00:22.359
+the recorded content that that speakers are putting
+
+00:00:22.360 --> 00:00:26.879
+together in advance in the live content, such as what you're
+
+00:00:26.880 --> 00:00:31.039
+seeing right here. So thanks go to Sacha and Leo, and
+
+00:00:31.040 --> 00:00:34.359
+everybody behind the stages gluing it all together. And
+
+00:00:34.360 --> 00:00:40.199
+we're back here now, and I'm speaking with Robin, who us
+
+00:00:40.200 --> 00:00:42.799
+ready to take on some of your questions and address some of
+
+00:00:42.800 --> 00:00:46.879
+the comments over here on the etherpad. If you want to jump in
+
+00:00:46.880 --> 00:00:51.319
+there, there's links in the chat. And thanks so much, Robin,
+
+00:00:51.320 --> 00:00:53.999
+for your talk. And it's also been a pleasure chatting with
+
+00:00:54.000 --> 00:00:57.919
+you just a little bit over the last couple of months on IRC.
+
+00:00:57.920 --> 00:01:33.319
+Yeah, absolutely. Great meeting you.
+
+00:01:33.320 --> 00:01:37.679
+All right. All right, everyone. I think I am streaming now.
+
+00:01:37.680 --> 00:01:42.439
+So let's look at it. Let's see. I see the IRC scrolling. So
+
+00:01:42.440 --> 00:01:47.199
+let's see where that's going. Yes, the Common Lisp is what I
+
+00:01:47.200 --> 00:01:50.519
+thought would piss people off. And because it's not part of
+
+00:01:50.520 --> 00:01:54.239
+either community, but I think it would be a good compromise
+
+00:01:54.240 --> 00:01:57.839
+for building a Lisp into a language that's more suitable for
+
+00:01:57.840 --> 00:02:01.879
+building large systems like the kind that we are building in
+
+00:02:01.880 --> 00:02:07.279
+Emacs today. I also left out an important part of the talk,
+
+00:02:07.280 --> 00:02:12.079
+which is part of the motivation for transitioning from C to
+
+00:02:12.080 --> 00:02:15.599
+Lisp. And that's the performance characteristics
+
+00:02:15.600 --> 00:02:19.399
+fundamentally change when you get a modern and high
+
+00:02:19.400 --> 00:02:23.559
+performance Lisp system involved. it starts getting less
+
+00:02:23.560 --> 00:02:27.799
+practical to just call out to C to speed up every operation.
+
+00:02:27.800 --> 00:02:31.559
+Among other things, you lose the ability to use more
+
+00:02:31.560 --> 00:02:34.759
+advanced control structures, like the limited
+
+00:02:34.760 --> 00:02:40.039
+continuations. And you also have to pay the overhead of
+
+00:02:40.040 --> 00:02:43.879
+calling out to our foreign function. So it gets to be an
+
+00:02:43.880 --> 00:02:47.879
+increasingly better deal to optimize your list
+
+00:02:47.880 --> 00:02:52.719
+implementation and provide ways for building faster list
+
+00:02:52.720 --> 00:02:55.879
+programs, such as type annotations, once you've gotten
+
+00:02:55.880 --> 00:03:01.479
+over a certain threshold of performance.
+
+NOTE Q: About fibers: My understanding is that the problem with making Elisp concurrent is that none of the data structures (buffer, cons, vector, window etc) are concurrency-safe.  How do fibers help with this?
+
+00:03:01.480 --> 00:03:07.359
+I'm going to look at the pad. Here we go. The first question is
+
+00:03:07.360 --> 00:03:12.519
+about fibers and whether they help with making Elisp
+
+00:03:12.520 --> 00:03:18.279
+concurrent in terms of its data structures. Yes, that's
+
+00:03:18.280 --> 00:03:23.879
+absolutely correct. Fibers by themselves do not provide
+
+00:03:23.880 --> 00:03:26.799
+thread safety for any of the existing Emacs data
+
+00:03:26.800 --> 00:03:32.879
+structures. What they are useful for is building things
+
+00:03:32.880 --> 00:03:38.199
+that don't use Emacs data structures, say a network client
+
+00:03:38.200 --> 00:03:44.559
+that reads input from a stream or in scheme, a port or a stream
+
+00:03:44.560 --> 00:03:49.679
+instead of a buffer. And we can also take a look at options for
+
+00:03:49.680 --> 00:03:54.199
+making more Emacs features concurrency safe or thread
+
+00:03:54.200 --> 00:03:58.079
+safe. For example, we could introduce the idea of a thread
+
+00:03:58.080 --> 00:04:03.039
+local buffer that didn't require locks for sharing between
+
+00:04:03.040 --> 00:04:09.239
+different threads. And I'm not sure how that would develop,
+
+00:04:09.240 --> 00:04:12.319
+but I'm sure the Emacs maintainers already have some ideas
+
+00:04:12.320 --> 00:04:17.519
+in this direction. Fibers will basically provide a
+
+00:04:17.520 --> 00:04:22.159
+high-performance system that you can use apart from
+
+00:04:22.160 --> 00:04:28.079
+ordinary Emacs-less constructs.
+
+NOTE Q: Do you have a rough idea of how much of Guile is written in C?
+
+00:04:28.080 --> 00:04:34.839
+Let's see. We have another question. Emacs is roughly 25% C.
+
+00:04:34.840 --> 00:04:38.839
+How much of Guile is in C?
+
+00:04:38.840 --> 00:04:45.679
+Well, part of my point about C is not so much that there, well,
+
+00:04:45.680 --> 00:04:50.279
+obviously, I phrased it a little provocatively, but the
+
+00:04:50.280 --> 00:04:54.719
+problem is not so much that there is C, but that there is so
+
+00:04:54.720 --> 00:05:00.279
+much C involved in every single layer of the application.
+
+00:05:00.280 --> 00:05:04.559
+So, for example, we're limited in our ability to use tools
+
+00:05:04.560 --> 00:05:08.159
+like limit continuations, which can be used to express
+
+00:05:08.160 --> 00:05:13.599
+buffer local variable binding in a few dozen lines, because
+
+00:05:13.600 --> 00:05:21.839
+Emacs has so much calling back and forth between guile and C,
+
+00:05:21.840 --> 00:05:26.599
+due to so much basic functionality being in primitive C
+
+00:05:26.600 --> 00:05:34.119
+subroutines. So that's one issue apart from the question of
+
+00:05:34.120 --> 00:05:38.359
+how much is in a particular language. To answer the question
+
+00:05:38.360 --> 00:05:45.879
+about Guile, Guile has about 165,000 lines of scheme code
+
+00:05:45.880 --> 00:05:51.599
+and about 160,000 lines of C code, so it's about half and
+
+00:05:51.600 --> 00:05:55.879
+half. And that shouldn't really be surprising given that it
+
+00:05:55.880 --> 00:06:00.359
+is actually focused on low-level things like building a
+
+00:06:00.360 --> 00:06:05.079
+high-performance bytecode compiler, and a just-in-time
+
+00:06:05.080 --> 00:06:09.719
+compiler, and so on, as well as providing its own fairly
+
+00:06:09.720 --> 00:06:14.999
+rich, but still far less complete than Emacs's standard
+
+00:06:15.000 --> 00:06:19.239
+library, in terms of Ice9 and other system libraries
+
+NOTE Q: A Common Lisp implementation for Guile sounds really cool! Is there already work on this underway?
+
+00:06:19.240 --> 00:06:24.359
+shipped with Guile. The next question is on a Common Lisp
+
+00:06:24.360 --> 00:06:27.759
+implementation for Guile, and whether work on it is
+
+00:06:27.760 --> 00:06:33.079
+underway. In fact, work on it is already underway. I've been
+
+00:06:33.080 --> 00:06:36.399
+working on it on and off in my spare time for a couple of years
+
+00:06:36.400 --> 00:06:40.039
+now. I've gotten, I think, a couple of chapters of the
+
+00:06:40.040 --> 00:06:43.519
+hyperspectin, if you want to measure it that way. But I've
+
+00:06:43.520 --> 00:06:51.719
+been focusing my work more on research and on what we need to
+
+00:06:51.720 --> 00:06:57.399
+do to have a LISP environment, a polyglot LISP environment,
+
+00:06:57.400 --> 00:07:02.759
+wherein the features of Common Lisp and Scheme and Emacs
+
+00:07:02.760 --> 00:07:08.919
+Lisp can all work easily and ergonomically together. So
+
+00:07:08.920 --> 00:07:13.879
+this involves things like the question of Lisps having
+
+00:07:13.880 --> 00:07:22.079
+Lisp1s versus Lisp2s. That is, a Lisp1-like scheme has one
+
+00:07:22.080 --> 00:07:27.599
+namespace, like every variable is a single name that can
+
+00:07:27.600 --> 00:07:31.999
+refer to one value, whereas in Lisp2s like EmacsLisp,
+
+00:07:32.000 --> 00:07:37.399
+symbols can have different definitions as functions and as
+
+00:07:37.400 --> 00:07:41.119
+variables, as well as other namespaces like property
+
+00:07:41.120 --> 00:07:45.719
+lists. So Kent Pittman has some interesting thoughts on
+
+00:07:45.720 --> 00:07:51.039
+this that I've been looking into. Another issue is the
+
+00:07:51.040 --> 00:07:57.519
+interaction between package and module systems. So I don't
+
+00:07:57.520 --> 00:08:01.839
+have really anything ready to publish just yet on this, but I
+
+00:08:01.840 --> 00:08:05.279
+have been looking into the background issues of
+
+00:08:05.280 --> 00:08:08.119
+integrating this into Guile in a useful way.
+
+00:08:08.120 --> 00:08:15.719
+And let's see, one other thing I was going to mention.
+
+00:08:15.720 --> 00:08:27.679
+Okay, I've lost it. But yeah, there is some work already. And
+
+00:08:27.680 --> 00:08:30.399
+if people are interested in moving Emacs in this direction,
+
+00:08:30.400 --> 00:08:34.479
+then we'll certainly start working on it in earnest.
+
+NOTE Q: Did switching from guile 2 to 3 give any performance benefits?
+
+00:08:34.480 --> 00:08:41.119
+Another question, did switching from Guile 2 to 3 give any
+
+00:08:41.120 --> 00:08:46.279
+performance benefits? Well, honestly, we're not really
+
+00:08:46.280 --> 00:08:50.759
+benchmarking stuff here because Guile Emacs has so much
+
+00:08:50.760 --> 00:08:55.759
+overhead from structuring the compiler to closely conform
+
+00:08:55.760 --> 00:08:59.879
+to Emacs in terms of like even things as simple as metadata
+
+00:08:59.880 --> 00:09:03.879
+layout for variable information.
+
+00:09:03.880 --> 00:09:11.999
+So I haven't actually noticed a perceptual change. I would
+
+00:09:12.000 --> 00:09:15.359
+guess based on the Gabriel benchmark results that is
+
+00:09:15.360 --> 00:09:21.399
+benefited from what somewhat from Gal 3's performance
+
+00:09:21.400 --> 00:09:27.479
+improvements but for Emacs I just don't know yet and working
+
+00:09:27.480 --> 00:09:30.199
+on the compiler's code generation and lowering the
+
+00:09:30.200 --> 00:09:33.719
+overhead is going to be the thing that provides the most
+
+00:09:33.720 --> 00:09:37.319
+return for improving that aspect of Gal Emacs.
+
+00:09:37.320 --> 00:09:54.079
+Let's see, I see SICL mentioned here, as well as SPCL. And it
+
+00:09:54.080 --> 00:09:56.919
+could certainly help with the implementation of
+
+00:09:56.920 --> 00:10:01.519
+Commonwealth and Guile, because a lot of the basic stuff is
+
+00:10:01.520 --> 00:10:05.559
+just providing a new interface to some bit of
+
+00:10:05.560 --> 00:10:08.879
+functionality. Like the sequence library, it's mostly
+
+00:10:08.880 --> 00:10:13.279
+stuff that we already have through SR5 and so on. The
+
+00:10:13.280 --> 00:10:16.879
+difficult, well, not the difficult but the time consuming
+
+00:10:16.880 --> 00:10:21.599
+parts are going to be all the little DSL sitcom on this path
+
+00:10:21.600 --> 00:10:26.999
+packed up inside it like pretty printing format loop and so
+
+00:10:27.000 --> 00:10:32.359
+on. It's for those high-level features that I think we could
+
+00:10:32.360 --> 00:10:34.959
+potentially share code with other Common Lisp
+
+00:10:34.960 --> 00:10:39.039
+implementations. And Common Lisp implementations do tend
+
+00:10:39.040 --> 00:10:43.239
+to be permissively licensed, SPCL's public domain, for
+
+00:10:43.240 --> 00:10:46.439
+example, so there's no barrier to sharing code with them.
+
+NOTE Q: Do you know if the Emacs maintainers are interested in switching to Guile as the engine for Emacs Lisp?
+
+00:10:46.440 --> 00:10:52.719
+There's another question about whether the Emacs
+
+00:10:52.720 --> 00:10:55.679
+maintainers are interested in switching to Guile as the
+
+00:10:55.680 --> 00:10:59.199
+engine for Emacs Lisp. I can't speak for the current
+
+00:10:59.200 --> 00:11:05.439
+maintainers. I can say that people have talked to previous
+
+00:11:05.440 --> 00:11:10.439
+Emacs maintainers about the whole idea, and their attitude
+
+00:11:10.440 --> 00:11:15.479
+was generally cautiously optimistic. As in, it's not
+
+00:11:15.480 --> 00:11:18.799
+something they, it's somewhat political, they didn't want
+
+00:11:18.800 --> 00:11:23.479
+to get into it, but they didn't think that it was a bad idea,
+
+00:11:23.480 --> 00:11:25.919
+and they wanted to know more about how it might evolve in the
+
+00:11:25.920 --> 00:11:31.879
+future. I can comment that Eli Zaretsky, who I believe is the
+
+00:11:31.880 --> 00:11:36.879
+current Emacs maintainer, is very concerned about
+
+00:11:36.880 --> 00:11:44.679
+cross-platform compatibility. And so if I can guess at his
+
+00:11:44.680 --> 00:11:48.519
+priorities correctly, I think that that's something that
+
+00:11:48.520 --> 00:11:52.599
+we'll have to make sure is rock solid before we propose any
+
+00:11:52.600 --> 00:11:58.359
+kind of upstreaming of Gala Emacs. but in general
+
+00:11:58.360 --> 00:12:03.719
+maintainers have been cautious but curious. So I just
+
+00:12:03.720 --> 00:12:06.719
+wanted to break in and note at this point that as lives I
+
+00:12:06.720 --> 00:12:09.519
+didn't sorry I couldn't do so more gracefully while we were
+
+00:12:09.520 --> 00:12:13.439
+still on stream but I wanted to let you know that just as of 10
+
+00:12:13.440 --> 00:12:17.399
+seconds ago or so we've had to cut away into our next talk but
+
+00:12:17.400 --> 00:12:22.199
+we can keep going here as long as we like. Okay, let's wrap up.
+
+00:12:22.200 --> 00:12:25.399
+There's only a couple questions left on the pad, so I'll
+
+00:12:25.400 --> 00:12:29.999
+answer those, and then I'll be available on IRC. So, the next
+
+NOTE Q: Do you think guile-emacs will be able to use or (collaborate with) some of the other awesome projects around Emacs Lisp?
+
+00:12:30.000 --> 00:12:33.319
+question is whether Guile Emacs will be able to collaborate
+
+00:12:33.320 --> 00:12:35.959
+with projects like Gypsum and
+
+00:12:35.960 --> 00:12:44.319
+the native compilation projects or the pre-scheme
+
+00:12:44.320 --> 00:12:48.039
+efforts. Oh, yes, that is one of the things I forgot to bring
+
+00:12:48.040 --> 00:12:53.199
+up in my talk. So, first of all, Gypsum is approaching a
+
+00:12:53.200 --> 00:12:58.199
+similar idea from a different direction. And we clearly
+
+00:12:58.200 --> 00:13:03.919
+have a different focus. My focus is on improving Emacs Lisp
+
+00:13:03.920 --> 00:13:09.279
+and making Emacs itself better by integrating Guile Elisp
+
+00:13:09.280 --> 00:13:15.159
+and Emacs, rather than replacing eLisp or deprecating it in
+
+00:13:15.160 --> 00:13:20.159
+any way. But given gypsum's requirements, I do think that we
+
+00:13:20.160 --> 00:13:26.439
+could share a lot of code required for emulating basic Emacs
+
+00:13:26.440 --> 00:13:29.839
+functionality. And this could even become interesting if
+
+00:13:29.840 --> 00:13:35.799
+we get to the point of rewriting parts of Emacs in Lisp. With
+
+00:13:35.800 --> 00:13:41.279
+respect to the native compilation effort, I'm familiar
+
+00:13:41.280 --> 00:13:45.879
+with it. I'm not that impressed with the results of it. It's a
+
+00:13:45.880 --> 00:13:52.359
+very impressive effort, but as far as I can tell, it's
+
+00:13:52.360 --> 00:13:57.239
+accelerating a bytecode interpreter that just simply has
+
+00:13:57.240 --> 00:14:02.719
+an out-of-date design, to be quite blunt. It's possible
+
+00:14:02.720 --> 00:14:08.919
+that Emacs's JIT has ideas that Guile should adopt, like
+
+00:14:08.920 --> 00:14:14.039
+perhaps libgccjit might perhaps be better than GNU
+
+00:14:14.040 --> 00:14:16.999
+Lightning, which is a relatively simple JIT that Guile
+
+00:14:17.000 --> 00:14:17.639
+uses.
+
+00:14:17.640 --> 00:14:25.839
+But it doesn't have to have a direct relationship to Guile
+
+00:14:25.840 --> 00:14:31.159
+Emacs. And as far as pre-scheme goes, I have been watching
+
+00:14:31.160 --> 00:14:36.199
+Flat Watson's work on pre-scheme with great interest
+
+00:14:36.200 --> 00:14:39.999
+because Scheme 48 used to be my favorite implementation.
+
+00:14:40.000 --> 00:14:44.919
+And I do think that it could be, it's a tool that we should look
+
+00:14:44.920 --> 00:14:47.879
+at when we're thinking about moving functionality into
+
+00:14:47.880 --> 00:14:53.199
+Lisp and could certainly make it easier to upstream some of
+
+00:14:53.200 --> 00:14:54.519
+the work we may end up doing.
+
+00:14:54.520 --> 00:15:04.199
+All right, do we have more questions?
+
+NOTE Q: SBCL, ...You mentioned Robert Strandh's SICL along with SBCL---does that work help with the implementation of CL in Guile?
+
+00:15:04.200 --> 00:15:13.159
+There's a question about SICL and SBCL. I think I answered
+
+00:15:13.160 --> 00:15:17.519
+that earlier. It should help us implement Common Lisp when
+
+00:15:17.520 --> 00:15:24.999
+it comes to high-level features and the various large
+
+00:15:25.000 --> 00:15:28.759
+subcomponents of Common Lisp. Another important factor is
+
+00:15:28.760 --> 00:15:32.279
+that Guile already has decent support for the Common Lisp
+
+00:15:32.280 --> 00:15:35.799
+object system. Without that, it would be far more
+
+00:15:35.800 --> 00:15:41.919
+difficult. But I do expect that we can share code with other
+
+00:15:41.920 --> 00:15:44.799
+Common Lisp implementations. I've personally rated
+
+00:15:44.800 --> 00:15:49.199
+Common Lisp compiler code when working on Guile Hoot, for
+
+00:15:49.200 --> 00:15:52.959
+example. So there are definitely places where they can
+
+00:15:52.960 --> 00:15:54.039
+contribute.
+
+00:15:54.040 --> 00:16:02.839
+Regarding the Hoot project and its relationship to
+
+00:16:02.840 --> 00:16:11.079
+Galimax, it's a purely speculative thing. First of all,
+
+00:16:11.080 --> 00:16:17.079
+Hoot is only tested on Scheme-to-WebAssembly
+
+00:16:17.080 --> 00:16:22.599
+compilations. I've heard some suggestions that some uses
+
+00:16:22.600 --> 00:16:26.439
+of Tree.io may not be compatible with the Hoot compiler. I'm
+
+00:16:26.440 --> 00:16:29.999
+not sure if that's the case or not.
+
+00:16:30.000 --> 00:16:41.199
+But it is a complete enough project that if Emacs is, say, 90%
+
+00:16:41.200 --> 00:16:45.119
+Lisp, there's only a few thousand lines of C code to
+
+00:16:45.120 --> 00:16:49.159
+implement, then it would be entirely practical to compile
+
+00:16:49.160 --> 00:16:54.159
+Emacs WebAssembly, as long as we had a back end, like one
+
+00:16:54.160 --> 00:16:58.119
+based on the browser's document object model, or some sort
+
+00:16:58.120 --> 00:17:04.439
+of graphical interface through WASI. And that may have some
+
+00:17:04.440 --> 00:17:07.359
+interesting applications for portability to unusual
+
+00:17:07.360 --> 00:17:11.359
+platforms. It may even bring performance advantages in
+
+00:17:11.360 --> 00:17:18.959
+cases where the WebAssembly implementation is connected
+
+00:17:18.960 --> 00:17:22.759
+to a tracing just-in-time compiler, because that may be
+
+00:17:22.760 --> 00:17:26.839
+more appropriate to the high level of dynamism the Emacs
+
+00:17:26.840 --> 00:17:32.439
+list has than the kind of simple template JITs that both
+
+00:17:32.440 --> 00:17:34.519
+Emacs and Guile are using.
+
+00:17:34.520 --> 00:17:39.799
+What a fascinating point. Just to break into active
+
+00:17:39.800 --> 00:17:43.999
+listening a little so this doesn't, to you, feel like you're
+
+00:17:44.000 --> 00:17:46.919
+talking to yourself. I can see from chat and the questions
+
+00:17:46.920 --> 00:17:51.439
+still coming in, you know, comments. You know, it isn't, but
+
+00:17:51.440 --> 00:17:54.999
+I just want you to be able to hear and feel that. Yeah, great,
+
+00:17:55.000 --> 00:18:00.679
+great point there. All right. Thank you. And yes, if there
+
+00:18:00.680 --> 00:18:04.679
+are more questions, keep throwing them at me. I should
+
+00:18:04.680 --> 00:18:07.999
+probably also mention I will have to jump out myself, but the
+
+00:18:08.000 --> 00:18:10.799
+recording will automatically end when we all jump out or
+
+00:18:10.800 --> 00:18:15.199
+just drop a note anywhere, ping me, whatever. And I'll come
+
+00:18:15.200 --> 00:18:18.439
+along and shut off the recording and we'll trim it up before
+
+00:18:18.440 --> 00:18:21.879
+we publish it. I'm looking forward to reading through
+
+00:18:21.880 --> 00:18:30.199
+anything I do miss. Thank you. Sounds good.
+
+00:18:30.200 --> 00:19:08.439
+All right, I'm not seeing changes in the etherpad. So I'm
+
+00:19:08.440 --> 00:19:14.999
+going to close this in maybe 30 seconds if there are no more
+
+00:19:15.000 --> 00:19:21.159
+additions. Thanks, everyone, for the interesting and very
+
+00:19:21.160 --> 00:19:26.399
+pointed questions on some of the most significant areas. I
+
+00:19:26.400 --> 00:19:31.919
+appreciate everyone's feedback. I'm glad this provoked so
+
+00:19:31.920 --> 00:19:33.679
+much curiosity in people.
+
+00:19:33.680 --> 00:19:44.519
+Thank you, janneke.
+
+00:19:44.520 --> 00:19:51.439
+All right, I think we are done with the Q&A session, so I'm
+
+00:19:51.440 --> 00:19:57.199
+going to close this BBB and we can continue with the rest of
+
+00:19:57.200 --> 00:19:58.719
+EmacsConf.
+
+00:19:58.720 --> 00:20:10.160
+You are currently the only person in this conference.
diff --git a/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt b/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt
new file mode 100644
index 00000000..0142a879
--- /dev/null
+++ b/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt
@@ -0,0 +1,725 @@
+WEBVTT
+
+00:00.069 --> 00:01.850
+Troy Hinckley's project that I'm talking about. I was going
+
+00:02.350 --> 00:22.139
+to mention this in my presentation, but it's possible,
+
+00:02.350 --> 00:22.139
+theoretically, that Troy Hinckley, his project could be
+
+00:02.350 --> 00:22.139
+used as a scheme of limitation that actually runs my own
+
+00:02.350 --> 00:22.139
+version of Emacs. And although, you know, This is
+
+00:25.478 --> 00:29.380
+completely theoretical, and I don't know how difficult
+
+00:25.478 --> 00:29.380
+that would be. But if Troy Hinckley implemented enough of
+
+00:30.781 --> 00:47.029
+the R7-RS standard in Rust, it would theoretically be
+
+00:30.781 --> 00:47.029
+possible to run the Gypsum editor in Troy Hinckley's own
+
+00:30.781 --> 00:47.029
+editor. I thought that was kind of interesting, and I
+
+00:48.270 --> 00:53.833
+thought it was worth mentioning, at least in the questions
+
+00:48.270 --> 00:53.833
+and answers.
+
+01:12.179 --> 01:14.080
+I also mentioned this in the presentation. I wanted to see
+
+01:14.940 --> 01:22.364
+Robin Templeton's project presentation, but
+
+01:14.940 --> 01:22.364
+unfortunately it's going to be at like four in the morning
+
+01:14.940 --> 01:22.364
+for me. So I'm going to try and watch that tomorrow, but
+
+01:22.984 --> 01:31.428
+that's also going to be a very interesting project to keep an
+
+01:22.984 --> 01:31.428
+eye on if you're interested in Scheme. That's the project
+
+01:33.149 --> 01:38.051
+where you've got the Guylain interpreter running inside of
+
+01:33.149 --> 01:38.051
+the Emacs process. It's dynamically linked as a library.
+
+02:04.699 --> 02:06.748
+I'm ready for questions from anybody. You can ask or you can
+
+02:07.431 --> 02:09.079
+type. It's up to you.
+
+02:32.319 --> 02:34.521
+Okay, let me check the etherpad.
+
+02:37.304 --> 02:38.245
+Let's see here.
+
+02:41.208 --> 02:42.830
+I'm not sure if I'm doing that right.
+
+02:46.373 --> 02:47.554
+Let me check one more time. Oh, there it goes.
+
+02:54.221 --> 02:55.702
+Let's see, so this is...
+
+03:00.151 --> 03:02.072
+I didn't know about that first bit of history. Oh, I've heard
+
+03:02.332 --> 00:03:09.369
+RMS say that Scheme Guile is just a nicer Lisp, but I didn't
+
+03:02.332 --> 03:09.776
+know there were concrete talks attempts to use Guile for
+
+03:02.332 --> 03:09.776
+Emacs that early. Let's see, that was from janneke.
+
+NOTE Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff?
+
+00:03:09.370 --> 00:03:19.241
+I'm curious to know how the hell Guile Emacs deals with all the
+
+03:14.318 --> 03:19.241
+dynamically scoped modules out there. Is there any effort
+
+03:20.181 --> 03:24.943
+to automatically modularize and name? Let's see.
+
+03:30.523 --> 03:35.806
+That might be a better question for Robin Templeton. In my
+
+03:36.727 --> 03:46.573
+own project,
+
+03:36.727 --> 03:46.573
+there's no module system for Emacs Lisp. There is a module
+
+03:46.693 --> 03:48.234
+system for Scheme. And the Emacs Lisp interpreter runs in
+
+03:49.695 --> 03:55.158
+its own environment. the require system or whatever module
+
+03:57.068 --> 04:11.736
+system that Emacs has, once it's implemented, all of that
+
+03:57.068 --> 04:11.736
+would just happen inside of the Emacs Lisp environment,
+
+03:57.068 --> 04:11.736
+which is inside of the Scheme environment. And
+
+04:12.437 --> 04:15.898
+environments are objects in Scheme.
+
+04:21.522 --> 04:24.103
+I think a more difficult question is how to handle
+
+04:26.420 --> 04:31.942
+threading, and Scheme has very good threading built in, in
+
+04:26.420 --> 04:31.942
+Serphe-18[??].
+
+04:34.283 --> 04:48.028
+But I don't think it will be easy to write Emacs Lisp form
+
+04:34.283 --> 04:48.028
+bindings to the Scheme multi-threading implementation.
+
+04:48.548 --> 04:50.749
+Emacs Lisp was just not cut out for that kind of thing. So I
+
+04:51.710 --> 04:59.894
+think each Emacs Lisp, you could, I suppose, have multiple
+
+04:51.710 --> 04:59.894
+threads each running their own Emacs Lisp environment.
+
+05:01.375 --> 05:02.956
+Scheme would make that very simple to do.
+
+05:06.018 --> 05:16.744
+And then there'd just be a question of how you would get those
+
+05:06.018 --> 05:16.744
+different interpreters to communicate with each other,
+
+05:06.018 --> 05:16.744
+perhaps using the same protocol that's used by the Emacs
+
+05:06.018 --> 05:16.744
+server. But I haven't thought that far ahead yet.
+
+NOTE Q: Would it be possible to support a GUI toolkit other than GTK?
+
+05:23.646 --> 05:28.709
+Would it be possible to support a GUI toolkit other than the
+
+05:23.646 --> 05:28.709
+GTK? Like, how is it still supports Lucid? Yes, this is
+
+05:31.291 --> 05:33.232
+absolutely a goal of the project. I'm trying to keep the back
+
+05:33.873 --> 05:38.416
+end separate as possible. The scheme has what you call
+
+05:39.817 --> 05:42.478
+parameters. And these are like global variables that are
+
+05:43.199 --> 05:46.221
+still somewhat thread safe. And every call to the GUI goes
+
+05:47.484 --> 05:51.225
+through a parameter. So the Emacs, the interpreter and the
+
+05:52.125 --> 05:59.367
+editor logic is all in one module. And then that module calls
+
+05:59.987 --> 06:04.309
+out into a separate GUI module. And then you can implement
+
+06:04.989 --> 06:07.690
+different GUI modules. So you could have one for GTK3, one
+
+06:08.430 --> 06:13.171
+for GTK4, if you want to write the extern C bindings around Qt
+
+06:13.843 --> 06:20.725
+or full tick, that would certainly be possible as well. It
+
+06:21.185 --> 06:32.168
+would be nice maybe to have an SDL implementation based
+
+06:21.185 --> 06:32.168
+maybe on Chikiti or some kind of immediate mode GUI,
+
+06:21.185 --> 06:32.168
+something like that. But definitely GTK3 through Guile GI
+
+06:33.808 --> 06:38.750
+is the reference implementation. Things start there. But
+
+06:41.298 --> 06:43.959
+I'm very interested in supporting other GUIs, yes. Let's
+
+06:45.199 --> 00:06:45.256
+see.
+
+NOTE Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme?
+
+00:06:45.257 --> 00:06:45.879
+Question, do you plan to provide improvements to ELisp
+
+06:47.540 --> 06:56.342
+as a language or focus on a compatibility layer to
+
+06:47.540 --> 06:56.342
+facilitate all new extensions in Scheme? Yeah, the second
+
+06:57.142 --> 06:57.962
+one. I want to move off to Scheme. I would like for this
+
+07:03.384 --> 07:05.264
+project to try and keep up to date with each new release of
+
+07:05.666 --> 07:10.789
+Emacs and Emacs Lisp. That's a difficult moving target to
+
+07:11.850 --> 07:14.552
+follow, I realize. But to the greatest extent possible, any
+
+07:15.152 --> 07:23.397
+new features to Emacs Lisp will be pulled in from GNU Emacs.
+
+07:25.419 --> 07:29.041
+If we happen to be able to implement something cool in
+
+07:25.419 --> 07:29.041
+Scheme, and be able to port it over to Emacs Lisp, then sure,
+
+07:29.437 --> 07:36.543
+it'd be nice to be able to upload or to submit that upstream to
+
+07:29.437 --> 07:36.543
+the GNU Emacs. But I think I would prefer to have new features
+
+07:38.584 --> 07:43.708
+written in Scheme. I would like this gypsum to be more of a
+
+07:43.989 --> 07:52.075
+Scheme app platform that just happens to be able to also run
+
+07:43.989 --> 07:52.075
+Emacs Lisp. That's how I see it. Of course, this will be a
+
+07:54.577 --> 07:56.699
+community project. I'm open to debate about that if anybody
+
+07:58.809 --> 08:02.012
+wants to convince me otherwise.
+
+08:08.439 --> 08:11.683
+Why is being able to interpret all of that EL a useful goal?
+
+08:12.464 --> 08:14.626
+Sure, there is a lot of code written in Elisp. Can we
+
+08:15.206 --> 08:17.749
+consider... Oh, it's still being written. Please go ahead
+
+08:18.390 --> 08:19.491
+and finish writing.
+
+NOTE Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality?
+
+08:29.673 --> 08:35.576
+Can we consider a translator like utility to convert eLisp
+
+08:29.673 --> 08:35.576
+to Scheme once Guile-Emacs has become a reality?
+
+08:36.716 --> 08:37.076
+Certainly. For the time being, I just wanted to get the
+
+08:38.717 --> 08:42.639
+interpreter running. So the actual, the Guile-Emacs Lisp,
+
+08:44.520 --> 08:58.666
+the one that was written in 2011 that I didn't write, that
+
+08:44.520 --> 08:58.666
+actually does compile to, I think it's the tree
+
+08:44.520 --> 08:58.666
+intermediate representation It's one of the intermediate
+
+08:59.076 --> 09:03.697
+languages that Guile uses to compile Guile scheme itself.
+
+09:04.817 --> 09:09.299
+So the Emacs lisp that was written before actually does
+
+09:04.817 --> 09:09.299
+that. It actually compiles and makes use of the entire Guile
+
+09:09.339 --> 09:20.761
+compiler tool chain and actually produces like JIT
+
+09:09.339 --> 09:20.761
+compilable binaries, which is really cool. Like I said,
+
+09:23.342 --> 09:25.943
+that's the one that I had trouble getting to work properly.
+
+09:29.209 --> 09:30.890
+Maybe we can follow that architecture. I'm not sure how to do
+
+09:33.052 --> 09:45.102
+that, but I would like to be able to do some kind of
+
+09:33.052 --> 09:45.102
+translating, keeping in mind that we want to have this be
+
+09:33.052 --> 09:45.102
+portable, do various schemes. And so Guile makes this very
+
+09:45.988 --> 09:50.289
+easy, but other schemes don't. Gambit might do this pretty
+
+09:51.549 --> 09:53.530
+well as well. It compiles to C and then compiles C down to a
+
+09:53.950 --> 10:01.471
+dynamically linkable library. So yeah, I think probably
+
+10:03.372 --> 10:09.373
+the most portable, I'm just thinking out loud right now,
+
+10:10.652 --> 10:21.715
+most portable implementation will just be able to
+
+10:10.652 --> 10:21.715
+translate Emacs Lisp directly to Scheme, which is not what
+
+10:10.652 --> 10:21.715
+the old Guile Emacs Lisp implementation does. That goes to
+
+10:21.755 --> 10:26.777
+TreeIL, so it's very, very Guile-specific, can't be
+
+10:21.755 --> 10:26.777
+ported. But yeah, if we could somehow get Emacs Lisp
+
+10:28.359 --> 10:42.045
+translated to Scheme and then compiled, say, in Shea Scheme
+
+10:28.359 --> 10:42.045
+or Gambit or MIT Scheme or one of those other compilers, that
+
+10:28.359 --> 10:42.045
+would be very cool. And I would absolutely love to do that.
+
+10:44.906 --> 10:49.948
+And I would very quickly accept any code into the code base
+
+10:44.906 --> 10:49.948
+that would do that.
+
+NOTE Q: Why is being able to interpret all of \`init.el\` an useful goal?
+
+10:54.390 --> 10:56.291
+Oh, and to answer the question about init.el,
+
+10:59.207 --> 11:17.215
+It's just because people spend a lot of time on their configs
+
+10:59.207 --> 11:17.215
+and it would be nice if, you know, you're starting to use this
+
+10:59.207 --> 11:17.215
+new editor and want it to be similar to Emacs users, just the
+
+10:59.207 --> 11:17.215
+Emacs community in general and people who are familiar with
+
+10:59.207 --> 11:17.215
+using Emacs. It would be more useful to everybody in the
+
+11:17.715 --> 11:25.379
+Emacs community if this were more compatible with GNU
+
+11:17.715 --> 11:25.379
+Emacs. And so that's why that's, I think that's an important
+
+11:25.679 --> 11:27.960
+goal.
+
+11:34.465 --> 11:35.467
+Question is not yet. Great. Oh, here comes another
+
+11:38.471 --> 11:39.613
+question.
+
+NOTE Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)?
+
+12:08.539 --> 12:17.742
+Okay, what is the plan to handle elisp packages that depend
+
+12:08.539 --> 12:17.742
+on third-party or external libraries like git or magit
+
+12:08.539 --> 12:17.742
+or ripgrep? So that's going to be tricky. It depends on how
+
+12:21.523 --> 12:26.224
+these external packages are linked into emacs. If it's
+
+12:26.844 --> 12:33.646
+going to be a dynamic library like Robin Templeton's
+
+12:26.844 --> 12:33.646
+project which you load the libgit library into the Emacs
+
+12:35.289 --> 12:41.931
+process, that is going to be extremely difficult. So if you
+
+12:44.032 --> 12:52.975
+have an external library like, I don't know, libgit or
+
+12:44.032 --> 12:52.975
+what's the GUI thing? Cabal. No, not Cabal. Cairo, libcairo
+
+12:57.736 --> 13:01.398
+to do SVG graphics and so on.
+
+13:04.483 --> 13:17.480
+You can do that very easily with Guile, but then on top of
+
+13:04.483 --> 13:17.480
+that, implementing Emacs list bindings to it, I mean,
+
+13:04.483 --> 13:17.480
+you've got two layers there, and that makes things pretty
+
+13:04.483 --> 13:17.480
+difficult. So it's possible. And to some degree, maybe
+
+13:21.935 --> 13:30.842
+necessary for example, Cairo, if we want to do SVG graphics
+
+13:21.935 --> 13:30.842
+the way that Emacs Lisp does, we're going to have to have
+
+13:21.935 --> 13:30.842
+that. So that would be necessary. We would have to have those
+
+13:32.643 --> 13:33.944
+two layers. Yes, let's do that. But if it's like for Magit,
+
+13:38.047 --> 13:50.596
+you can just call out to your git process, and then you're
+
+13:38.047 --> 13:50.596
+just using the regular process APIs that Emacs Lisp has. And
+
+13:51.451 --> 13:58.475
+that can be, already we, like Guile has some very good
+
+13:51.451 --> 13:58.475
+implementations for process management. And so it would
+
+13:59.055 --> 14:05.438
+just be a matter of wrapping up those in the Emacs lisp form
+
+13:59.055 --> 14:05.438
+bindings. So yeah, dynamic libraries, I wanna try to avoid.
+
+14:12.222 --> 14:20.366
+And I would prefer to do things more through, you know,
+
+14:12.222 --> 14:20.366
+launching a child process in the Emacs process. and then
+
+14:20.956 --> 14:24.798
+communicating over the standard in, standard out
+
+14:20.956 --> 14:24.798
+channels.
+
+14:29.460 --> 14:40.386
+That's the easier way to do things, I think, because then you
+
+14:29.460 --> 14:40.386
+can just use the process library that Emacs already has, and
+
+14:29.460 --> 14:40.386
+you can just reuse all of that code.
+
+14:43.969 --> 14:49.912
+I'm not sure how ripgrep works, unfortunately, but I
+
+14:43.969 --> 14:49.912
+believe that's also a process, a child process. So, we can
+
+14:50.412 --> 14:53.774
+just reuse all of the Emacs Lisp code that does that already.
+
+14:54.014 --> 15:05.979
+We just need to make sure that the process management
+
+14:54.014 --> 15:05.979
+implementation and scheme is properly bound to Emacs Lisp,
+
+14:54.014 --> 15:05.979
+and it works the same as GNU Emacs does. Once that's all set,
+
+15:06.360 --> 15:13.383
+then these porcelains, like around git, should fall into
+
+15:06.360 --> 15:13.383
+place. without too much difficulty, hopefully.
+
+NOTE Q: Not really a question, but how about Schemacs as a name?
+
+15:21.112 --> 15:22.593
+How about Schemax as a name? I like the name. I like that name.
+
+15:28.937 --> 15:32.920
+I haven't really looked into like, is that already used or is
+
+15:28.937 --> 15:32.920
+that going to be confusing? But certainly something we can
+
+15:33.380 --> 15:35.021
+discuss.
+
+15:38.243 --> 15:39.264
+Another thing I should mention,
+
+15:42.157 --> 15:48.278
+I should probably set up a server or something like Discord
+
+15:42.157 --> 15:48.278
+or something like that. Discourse, not Discord.
+
+15:51.619 --> 15:56.220
+Discourse, the open source one, where we could actually
+
+15:51.619 --> 15:56.220
+chat about this stuff. For the time being, ActivityPub,
+
+15:56.540 --> 16:05.562
+mostly Mastodon, is how I communicate with people in real
+
+15:56.540 --> 16:05.562
+time, that or email. So if you want to get a hold of me, check
+
+16:09.809 --> 16:15.571
+the notes for this presentation and just send me an email.
+
+16:16.752 --> 16:18.012
+Any question at all is fine. If you want to contribute code,
+
+16:19.633 --> 16:25.495
+if you want to just learn how to contribute code, send me any
+
+16:19.633 --> 16:25.495
+questions. It's fine. I'm happy to answer them. And we can
+
+16:30.256 --> 16:31.757
+talk about the name as well.
+
+NOTE Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile?
+
+16:45.931 --> 16:54.215
+Okay, why is it not feasible for the Emacs layer that
+
+16:45.931 --> 16:54.215
+interprets Emacs Lisp, the core in C, have a Scheme
+
+16:45.931 --> 16:54.215
+interpreter instead of using Guile? Let's see, I have to,
+
+16:55.496 --> 16:57.257
+okay. Emacs layer interprets Emacs Lisp, the core in C, have
+
+16:57.737 --> 17:05.942
+a Scheme interpreter instead of using Guile. Okay, so that,
+
+17:07.362 --> 17:13.906
+the question xlarsx is asking, xlars, x, So Lars is asking,
+
+17:14.744 --> 17:28.093
+is it not feasible for there to be an
+
+17:14.744 --> 17:28.093
+Emacs layer that interprets Emacs Lisp have a scheme
+
+17:14.744 --> 17:28.093
+interpreter? This is Robin Templeton's project. And
+
+17:30.815 --> 17:32.156
+they're presenting later today. So check the roster and be
+
+17:32.697 --> 17:41.303
+sure to see that presentation because that's exactly what
+
+17:32.697 --> 17:41.303
+Robin Templeton is doing. That's not what I'm doing though.
+
+17:44.419 --> 17:46.459
+I'm trying to create something in Scheme. But yes, there is
+
+17:48.280 --> 17:54.921
+an attempt to get an Scheme interpreter to run inside of
+
+17:48.280 --> 17:54.921
+Emacs itself. And it has its own method of binding to Emacs
+
+17:55.181 --> 18:05.323
+Lisp functions and translating data like Lisp structures
+
+17:55.181 --> 18:05.323
+between Guile Scheme and Emacs Lisp. Robin will explain all
+
+18:05.943 --> 18:08.284
+of that in their presentation.
+
+18:28.519 --> 18:33.020
+OK, I think I've got through all the questions on Etherpad.
+
+18:33.620 --> 18:35.500
+But I'm going to hang out here for a bit longer. And yeah, feel
+
+18:37.621 --> 18:46.182
+free to do a video chat with me or send me more questions on
+
+18:37.621 --> 18:46.182
+Etherpad or here in the big blue button. And so I'm just going
+
+18:47.002 --> 18:48.082
+to hang out. And thanks for asking all your questions. And
+
+18:51.663 --> 18:56.024
+yeah, I look forward to working with all of you if you're
+
+18:51.663 --> 18:56.024
+interested. take it easy. Thanks so much for the talk and
+
+18:59.935 --> 19:08.180
+looking forward to seeing some of your progress as this
+
+18:59.935 --> 19:08.180
+moves forward, exciting space. We'll go ahead and leave the
+
+19:09.261 --> 19:14.925
+room open for you and thanks for offering to hang out and chat
+
+19:09.261 --> 19:14.925
+with other people that come by. Feel free to throw something
+
+19:15.025 --> 19:18.287
+in the chat if you want to remind people you're still here.
+
+19:19.557 --> 19:25.143
+Meanwhile, on the stream, we have moved along to our next
+
+19:19.557 --> 19:25.143
+talk on Rust, and that is just getting started. But again,
+
+19:25.283 --> 19:30.549
+we're continuing to record this, and I'll just keep an eye on
+
+19:25.283 --> 19:30.549
+it to stop the recording. Thank you. Thank you. It was
+
+19:33.352 --> 19:33.853
+awesome.
+
+21:47.935 --> 21:50.558
+So it seems like it's slowed down here for the Q&A. I don't see
+
+21:50.638 --> 21:53.741
+anybody else on BBB, so I'm going to go ahead and stop the
+
+21:50.638 --> 21:53.741
+recording. We can start it back up. I would say, yes, there's
+
+21:55.282 --> 21:58.906
+a lot of things you can do with this. You can handle
+
+21:58.926 --> 22:00.627
+processing. Yeah, I'm going to try and join over the chat for
+
+22:02.029 --> 22:07.614
+the next talk. I'm not sure if I can do both big blue buttons at
+
+22:08.635 --> 22:11.538
+the same time. You should be able to just watch your mute
+
+22:13.206 --> 22:19.998
+settings and mute tab settings and whatever all you have to
+
+22:13.206 --> 22:19.998
+avoid bleed through. Okay.
diff --git a/2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt b/2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt
new file mode 100644
index 00000000..f1425353
--- /dev/null
+++ b/2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt
@@ -0,0 +1,690 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:12.919
+And I believe we are live. Hi, Mats, how are you doing? Oh, I'm
+
+00:00:12.920 --> 00:00:17.319
+fine. It's a pleasure to see you again after last year. And I
+
+00:00:17.320 --> 00:00:20.519
+was trying to think about it. We saw you last year, but didn't
+
+00:00:20.520 --> 00:00:26.919
+we see you as well in 2022? Yes. This is my third year. Yeah,
+
+00:00:26.920 --> 00:00:29.559
+well, thank you for being a regular at EmacsConf. It's
+
+00:00:29.560 --> 00:00:31.919
+always a pleasure to have you chat about hyperbole.
+
+00:00:31.920 --> 00:00:33.559
+Although I think you're the only one chatting about
+
+00:00:33.560 --> 00:00:37.159
+hyperbole this year compared to last year. Yes,
+
+00:00:37.160 --> 00:00:41.879
+unfortunately, that's, yeah, Bob has some family issues.
+
+00:00:41.880 --> 00:00:45.839
+So yeah, I'm here, but I'm here. Yeah, but we are happy to have
+
+00:00:45.840 --> 00:00:49.199
+you here. And as I was saying before, I'm not sure if you were,
+
+00:00:49.200 --> 00:00:52.519
+you had the time to watch the previous talk by Mohsen, you
+
+00:00:52.520 --> 00:00:56.239
+know, you had, there were plenty of ideas, I think that were
+
+00:00:56.240 --> 00:00:58.999
+very similar to what Hyperbole is trying to do by having
+
+00:00:59.000 --> 00:01:04.399
+buttons and having stuff that can be in any other mode that
+
+00:01:04.400 --> 00:01:08.399
+would allow you to supplement a coding file with extra
+
+00:01:08.400 --> 00:01:11.879
+information. So the ideas are living on. And even though
+
+00:01:11.880 --> 00:01:15.239
+hyperbole is one thing, I feel like other packages are also
+
+00:01:15.240 --> 00:01:17.759
+taking a lot of inspiration for it. So congratulations on
+
+00:01:17.760 --> 00:01:21.439
+being an inspiration, I suppose. Oh, thanks.
+
+00:01:21.440 --> 00:01:24.839
+Unfortunately, I have not had any time to watch anything of
+
+00:01:24.840 --> 00:01:29.759
+the Emacs conference since apparently my life is like every
+
+00:01:29.760 --> 00:01:33.559
+time it's Emacs conference, I do something else. So I've been
+
+00:01:33.560 --> 00:01:37.919
+just moving this weekend. So, I'm in a new apartment, but I'm
+
+00:01:37.920 --> 00:01:42.479
+connected and everything seems to work okay. So, I can't
+
+00:01:42.480 --> 00:01:45.199
+relate to what we said in any of the other talks, I'm afraid.
+
+00:01:45.200 --> 00:01:48.199
+So, sorry about that. No, that's okay. No, but that's
+
+00:01:48.200 --> 00:01:51.559
+completely fine, because you may be able to watch the talks
+
+00:01:51.560 --> 00:01:54.599
+at any point later on, because I'll remind the viewers that
+
+00:01:54.600 --> 00:01:57.319
+the talks are currently available on EmacsConf or the
+
+00:01:57.320 --> 00:02:01.199
+pre-recorded one. And I think we only had one live talk
+
+00:02:01.200 --> 00:02:04.239
+yesterday. All of them are already available with
+
+00:02:04.240 --> 00:02:08.039
+subtitles and all the funny stuff that we usually put. So
+
+00:02:08.040 --> 00:02:11.359
+that's an invitation for people to watch it. All right. So,
+
+00:02:11.360 --> 00:02:14.439
+Mats, before we start with the questions, I see people in the
+
+00:02:14.440 --> 00:02:17.959
+process of writing them. Was there anything else you wanted
+
+00:02:17.960 --> 00:02:21.159
+to add on top of your presentation? Maybe some supplements
+
+00:02:21.160 --> 00:02:29.039
+or whatnot? No, no. Nothing to add. Right. I mean, this year
+
+00:02:29.040 --> 00:02:31.519
+was more a bag of tricks, some new stuff that you've
+
+00:02:31.520 --> 00:02:36.159
+implemented in Hyperbole. And it's fun because I see the UI
+
+00:02:36.160 --> 00:02:40.159
+that you have for some of those modes. And earlier, you
+
+00:02:40.160 --> 00:02:42.399
+weren't able to watch those talks, but we were talking a lot
+
+00:02:42.400 --> 00:02:46.119
+about Transient and about what it allows you to do in terms of
+
+00:02:46.120 --> 00:02:51.039
+interactivity. I'm actually familiar with Transient. No,
+
+00:02:51.040 --> 00:02:56.279
+no, no. It's a mode written by Tarsius, so Jonas Bernoulli,
+
+00:02:56.280 --> 00:03:01.599
+the person behind Magit, and it's a very nice way to create
+
+00:03:01.600 --> 00:03:06.319
+menus for interactive setups. So, if you are interested in
+
+00:03:06.320 --> 00:03:10.039
+perhaps augmenting what you currently have with
+
+00:03:10.040 --> 00:03:12.959
+Hyperbole, it might be nice to look into Transient because I
+
+00:03:12.960 --> 00:03:16.359
+think this is heading towards eventually being merged into
+
+00:03:16.360 --> 00:03:18.879
+the core of Emacs. I mean, don't quote me on this. and I'm not
+
+00:03:18.880 --> 00:03:21.719
+sure how Tarsius feels about it, but because of the
+
+00:03:21.720 --> 00:03:25.879
+adoption, because Magit obviously uses transient, Org is
+
+00:03:25.880 --> 00:03:28.839
+trying to make a move towards adopting transient, it feels
+
+00:03:28.840 --> 00:03:32.479
+like Hyperbole would do well as well to adopt it because it's
+
+00:03:32.480 --> 00:03:36.799
+starting to become a grammar of general UI at this point.
+
+00:03:36.800 --> 00:03:40.839
+Yeah, now when you mention it, I remember because I'm a heavy
+
+00:03:40.840 --> 00:03:47.519
+user of Magic, of course. So I know Transient that way. I know
+
+00:03:47.520 --> 00:03:50.999
+also that people have been complaining about Hyperbole's
+
+00:03:51.000 --> 00:03:56.079
+menu system. You know that Hyperbole reach back to
+
+00:03:56.080 --> 00:04:02.639
+something like 1993, so it has some maybe things that are not
+
+00:04:02.640 --> 00:04:07.279
+modern in that sense. So we have it on the plate to maybe look
+
+00:04:07.280 --> 00:04:11.479
+into these things and how we can sort of make things modern,
+
+00:04:11.480 --> 00:04:16.279
+etc. Sure, but it's completely fine to take your time. You
+
+00:04:16.280 --> 00:04:19.359
+don't necessarily have to follow the latest fads when it
+
+00:04:19.360 --> 00:04:24.439
+comes to completion engines or interactive engines like
+
+00:04:24.440 --> 00:04:26.879
+Transient is. I'm not actually sure how you would call
+
+00:04:26.880 --> 00:04:31.519
+Transient. Is this a UI maker, an interaction engine? I
+
+00:04:31.520 --> 00:04:36.559
+don't know. I'll need to ask Tarsius at some point. All
+
+00:04:36.560 --> 00:04:41.439
+right. Okay. Okay so let's move on to the questions. We've
+
+00:04:41.440 --> 00:04:45.719
+got a couple of them and for the Q&A we'll have about five
+
+00:04:45.720 --> 00:04:49.199
+minutes and 30 seconds until we got to lunch. So starting
+
+00:04:49.200 --> 00:04:51.193
+with the first question.
+
+NOTE Q: How is the log buffer generated?
+
+00:04:51.194 --> 00:04:52.679
+How is the log buffer generated in
+
+00:04:52.680 --> 00:04:56.719
+your presentation? But it's a very quick answer to this.
+
+00:04:56.720 --> 00:04:59.839
+We recommend at EmacsConf that speakers use the
+
+00:04:59.840 --> 00:05:02.679
+interaction-log package, which allows you to have a
+
+00:05:02.680 --> 00:05:07.879
+slightly prettier lossage. Lossage being in Emacs how you
+
+00:05:07.880 --> 00:05:10.359
+call the comments that you've used. And so if you're
+
+00:05:10.360 --> 00:05:12.439
+interested in using this for your own presentation,
+
+00:05:12.440 --> 00:05:17.519
+interaction log, and you'll be able to find it fairly
+
+00:05:17.520 --> 00:05:18.999
+easily.
+
+00:05:19.000 --> 00:05:21.050
+Moving to the next question.
+
+NOTE Q: So, the "select a thing" C-c RET is similar to expand-region? How does it behave in codes (functions, class, ...)
+
+00:05:21.051 --> 00:05:23.651
+So the selector thing C-c RET
+
+00:05:23.652 --> 00:05:26.479
+is similar to expand-region. How does it behave in
+
+00:05:26.480 --> 00:05:31.999
+codes i.e functions or class?
+
+00:05:32.000 --> 00:05:45.319
+Well I think it behaves exactly the same. I mean in the
+
+00:05:45.320 --> 00:05:50.079
+In any sort of buffer, it might depend on what
+
+00:05:50.080 --> 00:05:54.679
+constitutes a word, et cetera, and a sentence in the mood.
+
+00:05:54.680 --> 00:06:00.799
+That's how I would say it. Right.
+
+00:06:00.800 --> 00:06:09.279
+I'm just, in that sense, I'm just a user of the function. I
+
+00:06:09.280 --> 00:06:12.359
+haven't implemented it. I haven't tested it more than that.
+
+00:06:12.360 --> 00:06:17.959
+We can do this as a demo that you start with maybe select a
+
+00:06:17.960 --> 00:06:21.999
+small thing and by hitting it over and over again, you select
+
+00:06:22.000 --> 00:06:26.399
+more and more. Yeah, but it's completely fine sometimes to
+
+00:06:26.400 --> 00:06:30.199
+merely be a user of something, you know. It's easy. It's a
+
+00:06:30.200 --> 00:06:33.079
+testament to how amazing Emacs is because everything is
+
+00:06:33.080 --> 00:06:35.759
+written in Lisp in the background, that as soon as you start
+
+00:06:35.760 --> 00:06:38.119
+becoming a maintainer of something, you kind of expect it to
+
+00:06:38.120 --> 00:06:40.639
+just be able to understand everything else. And whilst it's
+
+00:06:40.640 --> 00:06:43.919
+technically true, the limiter here is the amount of time
+
+00:06:43.920 --> 00:06:47.199
+that you can invest looking at the definitions,
+
+00:06:47.200 --> 00:06:50.359
+understanding what they do, and sadly we don't have the time
+
+00:06:50.360 --> 00:06:53.319
+to do all of this. And especially with Hyperbole, which is
+
+00:06:53.320 --> 00:06:55.959
+obviously interacting with major modes in something that
+
+00:06:55.960 --> 00:07:01.239
+is more involved than Org mode, for instance. We do have
+
+00:07:01.240 --> 00:07:05.879
+another question. So, I know you Hyperbole devs are active
+
+00:07:05.880 --> 00:07:08.919
+and interested in sharing and interoperating with other
+
+00:07:08.920 --> 00:07:09.971
+Emacs tools.
+
+NOTE Q: What is a recent tool that you find exciting to think about using in combination with Hyperbole, or would like to suggest using in combination with it?
+
+00:07:09.972 --> 00:07:11.839
+What is a recent tool that you find exciting to
+
+00:07:11.840 --> 00:07:14.799
+think about using in combination with Hyperbole or would
+
+00:07:14.800 --> 00:07:21.599
+like to suggest using in combination with it? Well, lately
+
+00:07:21.600 --> 00:07:24.519
+we've been focusing a lot of sort of trying to make Hyperbole
+
+00:07:24.520 --> 00:07:29.639
+work together with Org Mode and in in a good way so they can
+
+00:07:29.640 --> 00:07:36.119
+sort of, I mean... The idea with Hyperbole is not to be better
+
+00:07:36.120 --> 00:07:40.119
+than everything else, but more to be like the glue or spider
+
+00:07:40.120 --> 00:07:46.349
+that could integrate different modes in a good way together.
+
+00:07:46.350 --> 00:07:51.359
+So that being top of everything. And Org is a very
+
+00:07:51.360 --> 00:07:55.559
+popular mode, and there are a lot of sub-modes, or whatever
+
+00:07:55.560 --> 00:07:59.519
+you can call it, with Org for information management. And we
+
+00:07:59.520 --> 00:08:03.119
+would want Hyperbole to work together with Org in a good way,
+
+00:08:03.120 --> 00:08:09.119
+so Org users could benefit from Hyperbole as well. So we put
+
+00:08:09.120 --> 00:08:13.319
+in some effort in that. But I think there's a lot of way to go.
+
+00:08:13.320 --> 00:08:17.319
+There's much more that can be done there as well because
+
+00:08:17.320 --> 00:08:21.559
+different modes can easily compete in a bad way in the
+
+00:08:21.560 --> 00:08:26.519
+details. So it's a little bit of a tricky thing, especially
+
+00:08:26.520 --> 00:08:32.839
+like we have this and how probably we have this M-RET
+
+00:08:32.840 --> 00:08:36.319
+for the action production key and that's also used in many
+
+00:08:36.320 --> 00:08:40.639
+modes. So we would really, in the best of words, we would like
+
+00:08:40.640 --> 00:08:46.388
+Emacs to sort of come to some agreement on using of the
+
+00:08:46.389 --> 00:08:52.759
+M-RET in a good way for modes to sort of be able to work and
+
+00:08:52.760 --> 00:08:58.119
+live together. Yeah, I mean it's a tough thing to share the
+
+00:08:58.120 --> 00:09:01.759
+key bindings and the grammar of interaction between
+
+00:09:01.760 --> 00:09:04.719
+packages because you tell me M-RET, I don't want you
+
+00:09:04.720 --> 00:09:07.759
+to touch M-RET. For me it's just inserting a new line
+
+00:09:07.760 --> 00:09:10.639
+and not adding indentation at the start and everyone is
+
+00:09:10.640 --> 00:09:14.639
+going to have their own you know, feelings and thoughts about
+
+00:09:14.640 --> 00:09:17.959
+this, so it's really hard to impose any kind of system on
+
+00:09:17.960 --> 00:09:20.559
+this. But I'm glad to hear that you're looking into
+
+00:09:20.560 --> 00:09:23.239
+interaction with Org Mode because I remember the questions
+
+00:09:23.240 --> 00:09:26.359
+we were having on your first conference when people were
+
+00:09:26.360 --> 00:09:28.959
+asking, oh I'm so glad that you're talking about Hyperbole
+
+00:09:28.960 --> 00:09:31.719
+because the only way I'm interacting with it is when people
+
+00:09:31.720 --> 00:09:35.599
+chat about Org Mode and then whenever we had announcements
+
+00:09:35.600 --> 00:09:39.039
+about Hyperbole, be it on Reddit, be it on Hacker News,
+
+00:09:39.040 --> 00:09:41.999
+people would say, but don't we already have Org Mode? And we
+
+00:09:42.000 --> 00:09:44.879
+won't get into the topic again, because I think you've done a
+
+00:09:44.880 --> 00:09:47.279
+wonderful job of explaining the differences in previous
+
+00:09:47.280 --> 00:09:51.359
+years. And today, the conference, your talk at the
+
+00:09:51.360 --> 00:09:54.199
+conference also made it obvious that it's doing something
+
+00:09:54.200 --> 00:09:58.039
+that Org Mode is not able to do. But ultimately, being able to
+
+00:09:58.040 --> 00:10:00.254
+interface between the two is something great.
+
+NOTE On Ihor as the new maintainer for Org Mode
+
+00:10:00.255 --> 00:10:02.676
+And I kind of wanted to ask you as well the question,
+
+00:10:02.677 --> 00:10:04.719
+because you haven't
+
+00:10:04.720 --> 00:10:10.199
+seen the talk, but yesterday we had the announcement that
+
+00:10:10.200 --> 00:10:13.879
+Ihor Radchenko was becoming the new maintainer of Org Mode.
+
+00:10:13.880 --> 00:10:18.799
+So obviously, a new maintainer introduces idea of changes
+
+00:10:18.800 --> 00:10:23.719
+of, you know, philosophy and strategy and all this. Is this
+
+00:10:23.720 --> 00:10:28.199
+somehow on your end with Hyperbole inspiring you perhaps to
+
+00:10:28.200 --> 00:10:31.999
+also innovate in a sense to maybe try to change the way some
+
+00:10:32.000 --> 00:10:32.559
+things are done?
+
+00:10:32.560 --> 00:10:45.239
+Hmm, tricky question. I know, right? Yeah, no, well, I don't
+
+00:10:45.240 --> 00:10:46.159
+know.
+
+00:10:46.160 --> 00:10:52.799
+I don't know if it answers the question, but we have this
+
+00:10:52.800 --> 00:11:02.919
+idea that we meet and work from our point of view. And then we
+
+00:11:02.920 --> 00:11:07.679
+pick up maybe details from the outside world. So we're not
+
+00:11:07.680 --> 00:11:13.079
+heavily looking into what happens in the rest of the world
+
+00:11:13.080 --> 00:11:17.239
+when it comes to Emacs and personal information
+
+00:11:17.240 --> 00:11:21.159
+management, etc. But but we do pick up some ideas.
+
+00:11:21.160 --> 00:11:26.719
+Sometimes. But yeah, we mostly do hacking and then we want to
+
+00:11:26.720 --> 00:11:31.639
+we meet once a week and work on hyperbole and you know, so
+
+00:11:31.640 --> 00:11:35.599
+Yeah, that's already very cool. And the reason I'm
+
+00:11:35.600 --> 00:11:38.799
+mentioning this is not because I know that you are operating
+
+00:11:38.800 --> 00:11:42.079
+in a little bit of a silo when it comes to all of Hyperbole, but
+
+00:11:42.080 --> 00:11:45.399
+it's always nice for me personally to see a lot of energy
+
+00:11:45.400 --> 00:11:49.039
+being brought in by people. Whenever there's a new major
+
+00:11:49.040 --> 00:11:52.919
+version being published, be it Org Mode or be it Hyperbole,
+
+00:11:52.920 --> 00:11:55.519
+people are excited. There's a lot of energy in here because
+
+00:11:55.520 --> 00:11:58.039
+people are chatting about what you're doing. And that's why
+
+00:11:58.040 --> 00:12:02.399
+I find that people, a new maintenanceship for Org Mode
+
+00:12:02.400 --> 00:12:05.199
+actually benefits Hyperbole in a way because you get a lot of
+
+00:12:05.200 --> 00:12:07.559
+excitement, a lot of people thinking and bringing ideas to
+
+00:12:07.560 --> 00:12:12.279
+the table. And I think it's a prime time to actually try I'm
+
+00:12:12.280 --> 00:12:14.599
+using the word stealing, but in a very nice way, stealing in
+
+00:12:14.600 --> 00:12:17.519
+terms of floss, stealing some ideas and trying to see if you
+
+00:12:17.520 --> 00:12:21.199
+can run with them on your own end. And that's also why I was
+
+00:12:21.200 --> 00:12:24.479
+suggesting transient, because transient looks like it's
+
+00:12:24.480 --> 00:12:28.759
+on its path to reach core at some point. And it would be nice if
+
+00:12:28.760 --> 00:12:31.479
+you had the idea early on to integrate with it, because it
+
+00:12:31.480 --> 00:12:34.319
+might save you time later on and make your user happy,
+
+00:12:34.320 --> 00:12:37.319
+because they can find the same grammar between the Git,
+
+00:12:37.320 --> 00:12:41.639
+between org mode, and between hyperbole. All right. Is
+
+00:12:41.640 --> 00:12:46.439
+there... I don't think... Yeah, go on, please. Yeah, I just
+
+00:12:46.440 --> 00:12:49.879
+want to add on that, that, I mean, as an ultimate goal, in the
+
+00:12:49.880 --> 00:12:56.679
+far distance, we would want sort of Hyperbole or hyperbole
+
+00:12:56.680 --> 00:13:00.399
+type of functionality be part of the core Emacs. So in that
+
+00:13:00.400 --> 00:13:06.839
+sense, it's sort of totally sort of okay with us that
+
+00:13:06.840 --> 00:13:10.599
+different packages steal ideas and try to merge them into
+
+00:13:10.600 --> 00:13:16.359
+sort of the core system. Yeah. All right, I don't see any more
+
+00:13:16.360 --> 00:13:19.279
+questions, so I think we can move to close. Actually, we're
+
+00:13:19.280 --> 00:13:22.439
+actually three minutes over time, so I'm glad we managed to
+
+00:13:22.440 --> 00:13:24.759
+discuss a little more, but that's fine. Mats, do you have
+
+00:13:24.760 --> 00:13:31.519
+any last words? I'll try it out. Okay, well, then, you heard
+
+00:13:31.520 --> 00:13:35.479
+it, everyone. Just try it out. Try it out, and if you like it,
+
+00:13:35.480 --> 00:13:37.239
+you can join us on Sundays
+
+00:13:37.240 --> 00:13:41.959
+Right. And every Sunday, well, if you do not know what to do,
+
+00:13:41.960 --> 00:13:44.919
+you know, here's an idea for you. All right. Thank you so
+
+00:13:44.920 --> 00:13:47.079
+much, Mats, for coming again to Emacs Conf. And we look
+
+00:13:47.080 --> 00:13:50.319
+forward, perhaps, to seeing you next year. Yes. I'll be
+
+00:13:50.320 --> 00:13:55.119
+there. Hopefully, I can see some of the presentations live
+
+00:13:55.120 --> 00:13:58.399
+then. OK. That's OK. You've got the entire year to catch up on
+
+00:13:58.400 --> 00:14:01.159
+the ones you haven't seen this year and next year. But you'll
+
+00:14:01.160 --> 00:14:04.359
+have the time to catch another one live. All right. Yes.
+
+00:14:04.360 --> 00:14:09.519
+Great! For the folks watching, we will be taking a break, a
+
+00:14:09.520 --> 00:14:14.039
+one hour and one minute break. We'll be back at 1 p.m. EST and I
+
+00:14:14.040 --> 00:14:21.479
+think if my UTC conversion is working right, it should be 6
+
+00:14:21.480 --> 00:14:24.679
+p.m. UTC, so at least in one hour. All right, see you in a bit
+
+00:14:24.680 --> 00:14:30.159
+folks! Oh yes, and sorry, I've got a little elf speaking
+
+00:14:30.160 --> 00:14:32.999
+in my ears. In case you're interested in discussing further
+
+00:14:33.000 --> 00:14:35.999
+hyperbole with Mats, Mats is in the room right now and I see
+
+00:14:36.000 --> 00:14:39.919
+people have joined the BBB chat. So if you want to join and
+
+00:14:39.920 --> 00:14:42.439
+chat directly with Mats, I'm sure Mats would be more than
+
+00:14:42.440 --> 00:14:44.999
+happy to answer your questions. And obviously everything
+
+00:14:45.000 --> 00:14:48.239
+has been recorded and will be published later on. But for me,
+
+00:14:48.240 --> 00:14:54.119
+I will use the break to rest a little bit and I'll be back in the
+
+00:14:54.120 --> 00:14:59.039
+afternoon. All right, see you folks. Bye, take a break.
+
+00:14:59.040 --> 00:15:03.160
+Okay.
diff --git a/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt b/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt
new file mode 100644
index 00000000..7b377fed
--- /dev/null
+++ b/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt
@@ -0,0 +1,630 @@
+WEBVTT captioned by sachac
+
+NOTE New version of hyperdrive.el
+
+00:00:00.000 --> 00:00:02.596
+One thing I wanted to mention was that
+
+00:00:02.597 --> 00:00:08.596
+as with last year, I just released a new version of
+
+00:00:08.597 --> 00:00:13.476
+hyperdrive.el and it depends on the latest release of
+
+00:00:13.477 --> 00:00:19.156
+transient.el and so if you are going to install this
+
+00:00:19.157 --> 00:00:25.156
+package, make sure that you restart your Emacs after you
+
+00:00:25.157 --> 00:00:29.796
+install it, if you aren't already up to date with transient,
+
+00:00:29.797 --> 00:00:35.316
+which was released yesterday. Otherwise, since it, this
+
+00:00:35.317 --> 00:00:40.876
+latest version of transient.el updates the transient
+
+00:00:40.877 --> 00:00:46.316
+prefix EIEIO class, and it won't work unless you restart
+
+00:00:46.317 --> 00:00:50.996
+Emacs. Okay, well, good to know. I think that's a small price
+
+00:00:50.997 --> 00:00:57.076
+to pay to be on a bleedingest of bleeding edges. All right, I
+
+00:00:57.077 --> 00:00:59.596
+see there's a question here. Let me see if I can read it. Yeah,
+
+00:00:59.597 --> 00:01:01.276
+sure. Do you want me to field it to you or do you want to read it?
+
+00:01:01.277 --> 00:01:04.104
+Oh, sure. Go ahead. I'd love to hear you read it. Sure.
+
+00:01:04.105 --> 00:01:06.686
+Thank you. So first question. Hi there.
+
+NOTE Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?
+
+00:01:06.687 --> 00:01:07.787
+Thank you for the talk.
+
+00:01:07.788 --> 00:01:10.756
+I enjoyed watching it. I tried this tool last year and it
+
+00:01:10.757 --> 00:01:13.156
+seemed to work well, but I don't know anyone who actually
+
+00:01:13.157 --> 00:01:16.516
+uses it. Network effects are tricky. Do you know of any
+
+00:01:16.517 --> 00:01:19.636
+public shares people can join to try to try this tool out
+
+00:01:19.637 --> 00:01:24.396
+properly? Thank you. Network effects are indeed tricky.
+
+00:01:24.397 --> 00:01:29.916
+Yeah. That's kind of part of the purpose of the peer graph is
+
+00:01:29.917 --> 00:01:34.596
+to make it easier to discover peers in a way that's more, uh,
+
+00:01:34.597 --> 00:01:37.956
+more reliable and consistent than just somebody puts a
+
+00:01:37.957 --> 00:01:42.076
+public key on Reddit and then it's lost unless somebody
+
+00:01:42.077 --> 00:01:50.156
+finds it. Um, but the, the public keys that I know of are,
+
+00:01:50.157 --> 00:01:53.076
+there's the public key for the Ushin hyperdrive, which is
+
+00:01:53.077 --> 00:01:56.236
+basically just the same content that's on the website
+
+00:01:56.237 --> 00:02:00.156
+mirrored to a hyperdrive. Um, and then there are a few other
+
+00:02:00.157 --> 00:02:07.316
+ones. There's like, uh, hypha.coop has some WebZine
+
+00:02:07.317 --> 00:02:13.796
+content accessible via HyperDrive and also via IPFS. And
+
+00:02:13.797 --> 00:02:19.916
+then mauvesignweaver has a blog that's also available on
+
+00:02:19.917 --> 00:02:23.196
+Hyper. So that's blog.mauve.moe .
+
+00:02:23.197 --> 00:02:28.276
+But besides that, that's kind of the purpose of this
+
+00:02:28.277 --> 00:02:31.756
+peer graph thing is to make it easier to discover other
+
+00:02:31.757 --> 00:02:36.596
+peers. Yeah, to make it also very visual in a way, because,
+
+00:02:36.597 --> 00:02:40.436
+you know, I personally, it's funny because it reminded me of
+
+00:02:40.437 --> 00:02:45.156
+talks that I did in the past about the trust system for PGP
+
+00:02:45.157 --> 00:02:47.596
+keychains, because at the end of the day, you know, this
+
+00:02:47.597 --> 00:02:50.596
+trust system, whether you trust someone absolutely or
+
+00:02:50.597 --> 00:02:53.876
+relatively, the blocking system, it feels very related.
+
+00:02:53.877 --> 00:02:57.356
+Any kind of a chain of trust like this, feels very
+
+00:02:57.357 --> 00:03:00.436
+reminiscent, obviously, but it felt very nice that for you,
+
+00:03:00.437 --> 00:03:04.676
+you had a dynamic display of this web of trust. Whereas for
+
+00:03:04.677 --> 00:03:08.836
+me, I had to make fancy diagram in ticks, in latex, just to
+
+00:03:08.837 --> 00:03:14.956
+make sure that people understood what was actually going
+
+00:03:14.957 --> 00:03:21.596
+on. Yeah, one thing I want to point out is just the difference
+
+00:03:21.597 --> 00:03:25.556
+in utility for something like the PGP web of trust versus
+
+00:03:25.557 --> 00:03:29.956
+this kind of network of peers is, if I understand right, the
+
+00:03:29.957 --> 00:03:34.716
+main purpose of web of trust is to identify that a certain
+
+00:03:34.717 --> 00:03:42.516
+public key is actually created by the person that they claim
+
+00:03:42.517 --> 00:03:46.036
+to be. So you have a way of identifying that a key actually
+
+00:03:46.037 --> 00:03:49.996
+matches like a government identity. Whereas this kind of
+
+00:03:49.997 --> 00:03:53.356
+network of peers has nothing to do with authenticating a key
+
+00:03:53.357 --> 00:03:57.636
+or associating a key with an identity, like a government
+
+00:03:57.637 --> 00:04:03.396
+identity. The purpose is exclusively just to get more peers
+
+00:04:03.397 --> 00:04:07.276
+to be able to discover more peers who have things that are
+
+00:04:07.277 --> 00:04:07.676
+worth reading.
+
+00:04:07.677 --> 00:04:14.356
+Yeah, it's a different take on a concept, but even though the
+
+00:04:14.357 --> 00:04:18.836
+concept might be the same, I find there's a wealth of things
+
+00:04:18.837 --> 00:04:21.716
+that can be done thanks to this, because as you said, you
+
+00:04:21.717 --> 00:04:25.396
+trust someone to send you a file that is trustworthy. Well,
+
+00:04:25.397 --> 00:04:28.236
+with PGP, it's mostly about communication, but about file
+
+00:04:28.237 --> 00:04:33.356
+sharing, it just opens up completely new avenues. Yeah. Do
+
+00:04:33.357 --> 00:04:40.516
+you have anything else to add? And about that, I think one of
+
+00:04:40.517 --> 00:04:45.476
+the barriers to the PGP web of trust is that it required
+
+00:04:45.477 --> 00:04:48.916
+getting together to have key parties to meet people and
+
+00:04:48.917 --> 00:04:51.596
+verify identities. Whereas with this kind of thing,
+
+00:04:51.597 --> 00:04:54.076
+there's no need to do that because so long as your content is
+
+00:04:54.077 --> 00:04:57.876
+interesting, it doesn't matter that you're not who you
+
+00:04:57.877 --> 00:05:01.076
+claim to be or that you don't even claim to be anybody. Yeah, I
+
+00:05:01.077 --> 00:05:04.556
+mean, again, as you mentioned, it's not about identifying
+
+00:05:04.557 --> 00:05:08.196
+people, it's just about identifying value, in a way, in the
+
+00:05:08.197 --> 00:05:10.636
+content that people share. It has nothing to do with
+
+00:05:10.637 --> 00:05:13.916
+verifying their actual identity. But again, it's the same
+
+00:05:13.917 --> 00:05:16.596
+technology, it's the same understanding, but for
+
+00:05:16.597 --> 00:05:18.556
+different applications, which is lovely because
+
+00:05:18.557 --> 00:05:22.116
+programming is fractals all over. The same problems repeat
+
+00:05:22.117 --> 00:05:24.836
+themselves and the same solutions show up for widely
+
+00:05:24.837 --> 00:05:26.996
+different scenarios, which is always good. Yeah. Anything
+
+00:05:26.997 --> 00:05:32.676
+else? One more thing. Yeah. One more thing is that I wanted to
+
+00:05:32.677 --> 00:05:36.956
+give some kudos to, um, some of the other projects that
+
+00:05:36.957 --> 00:05:42.796
+inspired the pure graph work. One of them is Adam Porter's or
+
+00:05:42.797 --> 00:05:50.076
+graph view, um, which is a, um, a tool for visualizing
+
+00:05:50.077 --> 00:05:55.276
+different nodes in an org file and how they link to one
+
+00:05:55.277 --> 00:06:01.876
+another. Um, he did. the pioneering work to figure out how to
+
+00:06:01.877 --> 00:06:07.316
+render interactive graphs with GraphViz. And so we worked
+
+00:06:07.317 --> 00:06:12.476
+together on it and kind of hacked down the last parts that
+
+00:06:12.477 --> 00:06:16.796
+weren't working correctly. And so this is inspired a lot.
+
+00:06:16.797 --> 00:06:19.316
+The user interface is inspired a lot by Adam's work. And then
+
+00:06:19.317 --> 00:06:26.156
+also the idea of having people that you mark as blockers and
+
+00:06:26.157 --> 00:06:31.076
+block is inspired by another project called TrustNet by
+
+00:06:31.077 --> 00:06:37.196
+Alex Cobleigh. I can type in the link there. Alex, how do you
+
+00:06:37.197 --> 00:06:43.516
+spell it? Cobleigh? Yeah, I'll type it in here. Thank you. And I
+
+00:06:43.517 --> 00:06:50.596
+think the link is https://cblgh.org/trustnet. I think that is it.
+
+00:06:50.597 --> 00:06:57.836
+I'm not totally sure. But yeah. Okay, well, that's very good.
+
+00:06:57.837 --> 00:07:01.396
+and thank you for giving credits to the inspiration, because
+
+00:07:01.397 --> 00:07:05.556
+again, nothing is done without context, and it's always nice
+
+00:07:05.557 --> 00:07:08.516
+in the free software world to acknowledge people who have
+
+00:07:08.517 --> 00:07:11.676
+influenced us, because it's very nice when people start
+
+00:07:11.677 --> 00:07:14.556
+contributing, maintaining software, publishing stuff
+
+00:07:14.557 --> 00:07:17.916
+that they actually start collaborating with people who've
+
+00:07:17.917 --> 00:07:21.916
+inspired them, which is a nice way to climb over the shoulders
+
+00:07:21.917 --> 00:07:25.636
+of giants, which this community likes so much. All right,
+
+00:07:25.637 --> 00:07:28.676
+moving on to the next question. We are, we have about seven
+
+00:07:28.677 --> 00:07:31.063
+more minutes for questions, so we're still good.
+
+NOTE Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense
+
+00:07:31.064 --> 00:07:33.956
+Second question, one use case for this sharing and building upon
+
+00:07:33.957 --> 00:07:37.996
+second brain, sorry, one use case for this is sharing and
+
+00:07:37.997 --> 00:07:41.436
+building upon second brains, i.e. Zettelkasten, that's
+
+00:07:41.437 --> 00:07:44.396
+denote or what I'm actually doing, but a blocker for me
+
+00:07:44.397 --> 00:07:46.916
+wanting to make one public is wanting to use a block list or
+
+00:07:46.917 --> 00:07:51.556
+whitelist so that I can make them... Cautioning?
+
+00:07:51.557 --> 00:07:56.156
+Quarantining? Containing. Yes, definitely containing.
+
+00:07:56.157 --> 00:07:59.756
+Why did I go for quarantine rather than containing? I guess
+
+00:07:59.757 --> 00:08:04.636
+my brain went to a dark place from the 2020s. So I can make
+
+00:08:04.637 --> 00:08:08.996
+containing useful information for only me while also being
+
+00:08:08.997 --> 00:08:16.156
+useful in a public sense. Yes, I think your question is about
+
+00:08:16.157 --> 00:08:22.276
+how to keep some of the content of your Zettelkasten private
+
+00:08:22.277 --> 00:08:29.956
+and only have certain parts of it be public. If your desire is
+
+00:08:29.957 --> 00:08:35.796
+to only share certain files in your Zettelkasten, then you
+
+00:08:35.797 --> 00:08:43.596
+can use the hyperdrive mirror command that we demonstrated
+
+00:08:43.597 --> 00:08:48.596
+in the Emacs 2023 talk. In short,
+
+00:08:48.597 --> 00:08:53.916
+It lets you specify either a regular expression that
+
+00:08:53.917 --> 00:08:58.036
+matches only some of the files that'll get uploaded from a
+
+00:08:58.037 --> 00:09:02.236
+directory of files on your machine. And only the files that
+
+00:09:02.237 --> 00:09:05.716
+match that regex will be put into the hyperdrive and shared
+
+00:09:05.717 --> 00:09:08.796
+with the world. But it doesn't have to be a regex. It could be a
+
+00:09:08.797 --> 00:09:13.276
+lambda. So it could match based on file size or modification
+
+00:09:13.277 --> 00:09:18.996
+time or really whatever you like. So I hope that answers your
+
+00:09:18.997 --> 00:09:23.956
+question. Great. And I personally, as someone who loves
+
+00:09:23.957 --> 00:09:27.876
+tinkering with my Elisp, I particularly like the ability to
+
+00:09:27.877 --> 00:09:31.156
+specify things with a lambda because it just opens up the
+
+00:09:31.157 --> 00:09:34.356
+ceiling of the possibilities with interactions between
+
+00:09:34.357 --> 00:09:37.316
+different parts of software. And, you know, as I have worked
+
+00:09:37.317 --> 00:09:39.956
+significantly in Org Roam, I could definitely see
+
+00:09:39.957 --> 00:09:44.116
+interactions with lambdas here to make sure that we can send
+
+00:09:44.117 --> 00:09:47.156
+and share files based on the filter list that is
+
+00:09:47.157 --> 00:09:51.036
+incrementally added to thanks to those lambdas. So thanks
+
+00:09:51.037 --> 00:09:55.116
+for this. One more thing I want to add about that is that the,
+
+00:09:55.117 --> 00:10:00.116
+that same question of being able to upload only certain
+
+00:10:00.117 --> 00:10:04.316
+files while leaving others to be private was something
+
+00:10:04.317 --> 00:10:07.556
+that was inspired by Karl Voit. I had an email thread with
+
+00:10:07.557 --> 00:10:16.036
+him in which he talked about how he uses his file tags project
+
+00:10:16.037 --> 00:10:21.676
+to organize his files. And he'll put a public tag on the files
+
+00:10:21.677 --> 00:10:26.476
+in his org database that he wants to have be published to his
+
+00:10:26.477 --> 00:10:29.916
+website. And so you could very easily just set a regular
+
+00:10:29.917 --> 00:10:33.636
+expression matches that public tag and then all of the other
+
+00:10:33.637 --> 00:10:39.676
+files would be not shared. Yeah, and, oh, sorry, I was, I
+
+00:10:39.677 --> 00:10:42.716
+misclicked, I was talking to production for a second. First
+
+00:10:42.717 --> 00:10:45.636
+time it happens today, so I think this is a testament to the
+
+00:10:45.637 --> 00:10:47.996
+level of tightness. But yeah, as you were saying, whatever
+
+00:10:47.997 --> 00:10:51.396
+heuristics you want is actually a good thing. I think people
+
+00:10:51.397 --> 00:10:54.636
+are a little antsy because they tend to brain dump into their
+
+00:10:54.637 --> 00:10:59.836
+Org Roam, Zettelkasten, Denote, and they
+
+00:10:59.837 --> 00:11:02.516
+really don't want some of their personal notes being out
+
+00:11:02.517 --> 00:11:05.596
+there. And well, if you are worried about this, I think
+
+00:11:05.597 --> 00:11:09.356
+learning some Elisp and implementing some Lambda function
+
+00:11:09.357 --> 00:11:13.116
+that allows you to filter with intention might be the best
+
+00:11:13.117 --> 00:11:17.636
+solution for you. So I hope we've covered the question as
+
+00:11:17.637 --> 00:11:21.436
+well as we could have. Next question is more about an idea
+
+00:11:21.437 --> 00:11:24.996
+about trying hyperdrive to distribute the Worg. Does that
+
+00:11:24.997 --> 00:11:28.596
+make sense to you? Yeah, I mean, you could distribute
+
+00:11:28.597 --> 00:11:32.636
+whatever you wanted. I think that'd be a great idea. Okay,
+
+00:11:32.637 --> 00:11:36.116
+great. Moving to the next question, and we have about three
+
+00:11:36.117 --> 00:11:38.316
+minutes, so I think we'll cover the last two questions and
+
+00:11:38.317 --> 00:11:41.023
+we'll move on to the next talk after that.
+
+NOTE Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?
+
+00:11:41.024 --> 00:11:43.164
+Could you comment on the visualization thing,
+
+00:11:43.165 --> 00:11:44.716
+Org visualization, and your
+
+00:11:44.717 --> 00:11:47.236
+experience with this type of content in buffers and the
+
+00:11:47.237 --> 00:11:52.916
+various possibilities, SVG, et cetera?
+
+00:11:52.917 --> 00:11:59.916
+Sure. So one thing that we worked on was I added a patch that
+
+00:11:59.917 --> 00:12:05.156
+was merged as part of Emacs 30, which fixes the way that image
+
+00:12:05.157 --> 00:12:14.196
+maps scale when images are scaled. So as an Emacs 30, if you
+
+00:12:14.197 --> 00:12:19.276
+zoom in on an image or shrink an image or rotate an image, now
+
+00:12:19.277 --> 00:12:24.276
+the image map, which is the overlay, so it's not actually an
+
+00:12:24.277 --> 00:12:26.716
+overlay, but it's, so to speak, it's an overlay that allows
+
+00:12:26.717 --> 00:12:30.116
+the images to be clickable based on, you know, where the
+
+00:12:30.117 --> 00:12:32.756
+actual visual display is. You can also click on it or hit help
+
+00:12:32.757 --> 00:12:37.356
+echo. And as of Emacs 30, now that scales with the image
+
+00:12:37.357 --> 00:12:37.796
+itself.
+
+00:12:37.797 --> 00:12:45.236
+The code to make that work on previous versions of Emacs, you
+
+00:12:45.237 --> 00:12:51.756
+can see the advice that we added in hyperdrive-sbb-view, that
+
+00:12:51.757 --> 00:12:55.956
+file in hyperdrive.el, if you're curious to see how you
+
+00:12:55.957 --> 00:13:01.196
+could polyfill that code, so to speak, to make it work on
+
+00:13:01.197 --> 00:13:06.076
+previous versions of Emacs before Emacs 30. But it works
+
+00:13:06.077 --> 00:13:11.076
+great. The way that this works is we generate a GraphViz
+
+00:13:11.077 --> 00:13:16.716
+string that will be sent to GraphViz to render an SVG and also
+
+00:13:16.717 --> 00:13:23.676
+render a CMAPX string. We pipe those back into Emacs and then
+
+00:13:23.677 --> 00:13:27.596
+we generate the image map from the CMAPX file and then we put
+
+00:13:27.597 --> 00:13:32.596
+that image map with the SVG, and we render it in a buffer.
+
+00:13:32.597 --> 00:13:37.076
+Works pretty well. You can check out the code to see exactly
+
+00:13:37.077 --> 00:13:41.876
+how it works. OK, great. Well, sadly, I think we are a little
+
+00:13:41.877 --> 00:13:44.996
+short on time to cover the last two questions. So Joseph, if
+
+00:13:44.997 --> 00:13:47.236
+you want to take a little bit of time maybe to answer the
+
+00:13:47.237 --> 00:13:51.196
+questions in the BBB, you can just do this, even though the
+
+00:13:51.197 --> 00:13:54.476
+stream will be moving to the next talk. But I'll use the
+
+00:13:54.477 --> 00:13:57.716
+opportunity to thank you both for the talk and for your
+
+00:13:57.717 --> 00:14:00.316
+answers, because they were very insightful. And thank you
+
+00:14:00.317 --> 00:14:03.636
+so much for taking the time to be with us today. Thank you,
+
+00:14:03.637 --> 00:14:05.876
+Leo. Enjoy the rest of the conference. Any last words in
+
+00:14:05.877 --> 00:14:10.356
+about 15 seconds? Thank you. I'm grateful for your taking
+
+00:14:10.357 --> 00:14:14.076
+all this time to make this conference possible. Well, you
+
+00:14:14.077 --> 00:14:16.916
+know, the conference would be nothing without the speakers
+
+00:14:16.917 --> 00:14:19.676
+coming and chatting, so you are the ones to thank. I mean, we
+
+00:14:19.677 --> 00:14:21.796
+like the thanking, obviously, but it's mostly you doing the
+
+00:14:21.797 --> 00:14:26.156
+work. All right. Thank you, Joseph. We'll see you later.
+
+00:14:26.157 --> 00:14:26.796
+Bye-bye.
diff --git a/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt b/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt
new file mode 100644
index 00000000..d37f80ef
--- /dev/null
+++ b/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt
@@ -0,0 +1,346 @@
+WEBVTT
+
+NOTE Q: Do you have any suggestions for interactive debugging of Julia code in Emacs?
+
+00:00.089 --> 00:00.829
+... answer to that. I, I think the infrastructure for an
+
+00:01.509 --> 00:14.192
+ecosystem in Julia in general is as mature as other
+
+00:01.509 --> 00:14.192
+languages, and even debugger infiltrator themselves are
+
+00:01.509 --> 00:14.192
+not particularly well developed. And so I don't think
+
+00:15.853 --> 00:19.214
+there's much we can do about that right now. I think that it's
+
+00:21.570 --> 00:28.057
+unfortunate that most of the development for these type of
+
+00:21.570 --> 00:28.057
+tools is tightly linked to VS code. But even there, I don't
+
+00:29.218 --> 00:36.225
+think that there's much done in terms of interactive
+
+00:29.218 --> 00:36.225
+debugging. So I, yeah, I think this has to be worked on mostly
+
+00:36.866 --> 00:43.213
+on the Julia side first. And then probably Emacs can get
+
+00:43.820 --> 00:48.303
+something out of that. I know that there's development in
+
+00:49.183 --> 00:57.728
+debugger.jl itself for future releases to make it at least
+
+00:49.183 --> 00:57.728
+faster and more stable. But yeah, I think we're not there as
+
+00:58.809 --> 01:03.852
+Julia community itself. So let alone Emacs, integration
+
+01:04.192 --> 01:07.234
+with Emacs. The way I personally debug is mostly using,
+
+01:08.286 --> 01:15.508
+well, debugger and infiltrator with Julia REPL mode in
+
+NOTE Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs?
+
+01:08.286 --> 01:15.508
+Emacs. The second question, can you call out something that
+
+01:18.009 --> 01:24.891
+Julia has that Emacs does not and which could benefit Emacs?
+
+01:26.852 --> 01:27.852
+Nothing stands out to me except the usual multi-threading
+
+01:28.848 --> 01:32.552
+and things like this. I don't necessarily see something
+
+01:33.432 --> 01:46.783
+that Julia has going on that DMX doesn't have, but I see some
+
+01:33.432 --> 01:46.783
+differences and approaches that I think are important,
+
+01:33.432 --> 01:46.783
+like the community. I think Julia is a very active and tight
+
+01:47.384 --> 01:50.266
+community. Julia uses Slack and is very, very active. I
+
+01:54.093 --> 01:57.736
+think he might say something like that, but it's maybe more
+
+01:54.093 --> 01:57.736
+on Reddit, IRC. JuliaCon is big and brings together lots and
+
+01:59.078 --> 02:02.381
+lots of people. And I think the sense of community is really
+
+02:03.221 --> 02:05.263
+powerful. It's very easy to essentially meet people that
+
+02:06.364 --> 02:16.834
+are interested in what we're building and interested in
+
+02:06.364 --> 02:16.834
+what we're doing and interested in Julian, our, you know,
+
+02:06.364 --> 02:16.834
+hacker spirit. I think Emacs is a very strong community.
+
+02:21.228 --> 02:26.151
+We're here on a Saturday talking about Emacs, which again
+
+02:21.228 --> 02:26.151
+proves that we are doing this. But I'd like to emphasize that
+
+02:27.192 --> 02:35.696
+the community is a really important aspect in Julia that I
+
+02:27.192 --> 02:35.696
+think we should double down on our side. The next question is
+
+NOTE Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang?
+
+02:36.797 --> 02:44.841
+about Lisp syntax with Julia, like what we can do in Python.
+
+02:48.038 --> 02:53.180
+I don't think that's, I don't, I am not aware of any package
+
+02:48.038 --> 02:53.180
+that does that. I would bet that there's something there. I
+
+02:56.722 --> 02:58.063
+think that that's possible. Indeed, there used to be a Lisp
+
+02:59.243 --> 03:07.027
+interpreter in Julia itself until the latest release. The
+
+03:07.647 --> 03:12.229
+syntax parsing was done with a Lisp, it was called TemtoList
+
+03:07.647 --> 03:12.229
+indeed. I think this got rid, get rid of this for our more
+
+03:16.124 --> 03:23.489
+Julia-based solution that is faster and with better code
+
+03:16.124 --> 03:23.489
+provenance. I think that it should be possible to use the
+
+03:25.430 --> 03:35.437
+metaprogramming features in Julia to change the structure
+
+03:25.430 --> 03:35.437
+of your syntax to be a Lispy syntax. I do want to emphasize
+
+03:36.238 --> 00:03:44.664
+that Julia is heavily inspired by Lisp, so I wouldn't be
+
+03:36.238 --> 03:44.664
+surprised if if something like this were possible.
+
+03:49.309 --> 00:03:51.167
+I have tried Julia Snail.
+
+NOTE Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp.
+
+00:03:51.168 --> 00:03:51.070
+So the next question is about Julia
+
+03:51.270 --> 03:52.712
+Snail. I found Julia REPL to be a little bit easier to set up
+
+03:53.312 --> 03:58.436
+and use. So I just settled on that. I should maybe revisit
+
+04:00.918 --> 04:03.480
+that. In particular, I use the Julia REPL with the vterm
+
+04:03.720 --> 04:11.406
+backend, which essentially makes a companion REPL to my
+
+04:03.720 --> 04:11.406
+scripts. And that works for me. I do think that the tooling
+
+04:15.638 --> 04:16.518
+uh, could be improved. I think there is definitely much room
+
+04:17.399 --> 04:22.040
+and I would like to see improvement in that area. Um, and, uh,
+
+NOTE Q: Is there a data inspector for a Julia REPL available that you can use in Emacs?
+
+04:22.940 --> 04:28.322
+so we have data inspector for Julia REPL.
+
+04:32.043 --> 04:34.784
+I don't think so. I don't, is there any data inspector
+
+04:34.804 --> 04:39.826
+in for, for the Julia REPL that we can use in Emacs?
+
+04:43.223 --> 00:04:43.489
+I'm not sure. I don't think so.
+
+00:04:44.840 --> 00:04:47.839
+I think the way I look at data is
+
+00:04:47.840 --> 00:04:50.519
+essentially ignoring Emacs when encoded. It's just using the
+
+00:04:50.520 --> 00:04:54.759
+REPL. And again, with Julia REPL. So I'm not aware of any
+
+00:04:54.760 --> 00:04:57.720
+specialized tool And again, maybe this is, again, a good
+
+04:58.652 --> 05:05.595
+moment to emphasize that tooling, the Julia community
+
+04:58.652 --> 05:05.595
+clusters around VS Code. And there is tools like the, pretty
+
+05:06.315 --> 05:11.578
+much all the work with VS Code, unfortunately. And while
+
+05:12.578 --> 05:21.242
+there's a very, very decent Julia mode and Julia repo mode
+
+05:12.578 --> 05:21.242
+and Julia snail, there's definitely, definitely room for
+
+05:12.578 --> 05:21.242
+improvement.
+
+NOTE Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs?
+
+05:24.443 --> 05:28.145
+Next, we have a question about literate programming in
+
+05:24.443 --> 05:28.145
+Julia. I haven't done much of it with Org Babel or
+
+05:29.505 --> 05:32.906
+anything else. I haven't done much of it. I can say that Julia
+
+05:35.827 --> 05:46.070
+has developed a new iteration of notebooks called Pluto.
+
+05:46.090 --> 05:48.471
+Here I'm thinking about Jupyter notebooks. The Pluto
+
+05:51.021 --> 06:02.988
+notebooks for Julia try to remove a bunch of the pain points
+
+05:51.021 --> 06:02.988
+that Jupyter notebooks have, meaning you cannot easily
+
+05:51.021 --> 06:02.988
+commit them to Git or things like this.
+
+06:06.450 --> 06:09.152
+I haven't used them, but I know some people are very fond of
+
+06:06.450 --> 06:09.152
+them. And so I think that that's what some of the Julia
+
+06:09.872 --> 06:15.195
+community would use for notebooks. And I think they can
+
+06:15.315 --> 06:19.298
+interact with Emacs with no problem. And that would be a form
+
+06:20.974 --> 06:23.035
+of later programming. But if you can do it in Python, you can
+
+06:24.015 --> 06:27.696
+do it in Julia. I think there is no reason. And actually, you
+
+06:30.617 --> 06:38.719
+can take advantage of all this just-in-time or
+
+06:30.617 --> 06:38.719
+just-out-of-time compilation by keeping the same
+
+06:30.617 --> 06:38.719
+session. So I think it will be definitely a nice use case. So
+
+06:44.681 --> 06:47.222
+these are the questions that I see here. I'm going to scroll
+
+06:48.561 --> 06:54.486
+through the comments and see if there's something that I
+
+06:48.561 --> 06:54.486
+should say about comments. I'm excited people want to learn
+
+06:56.228 --> 06:57.669
+Julia. I have to say that if I want to do GPU computing
+
+06:58.990 --> 07:06.757
+nowadays, I find it much easier to do it with Julia than with
+
+06:58.990 --> 07:06.757
+CUDA. So I encourage people to look into that. And I do,
+
+07:11.758 --> 07:26.807
+again, I would like to share what makes me excited about
+
+07:11.758 --> 07:26.807
+Emacs, about this being open, being collaborative, being
+
+07:11.758 --> 07:26.807
+respectable with documentation is something that I find in
+
+07:11.758 --> 07:26.807
+Julia. So I think people that are excited about the same
+
+07:27.367 --> 07:35.192
+features will find a little bit of joy in working with Julia.
+
+07:38.214 --> 07:39.675
+I think I addressed what I have here. I don't know if there's
+
+07:40.189 --> 07:43.532
+anything else that I should add.
+
+07:51.718 --> 07:54.000
+It took me a minute to unmute there.
+
+00:07:54.040 --> 00:07:58.399
+No, I think that was awesome. And thank you so much.
+
+00:07:58.400 --> 00:08:00.399
+I guess I thought it would
+
+00:08:00.400 --> 00:08:06.559
+collapse that shared area on BBB, my mistake, on the stream,
+
+00:08:06.560 --> 00:08:12.399
+or I would have left it open. But in any case, no, I thought
+
+00:08:12.400 --> 00:08:15.079
+that was great. You did a great job of responding to all the
+
+00:08:15.080 --> 00:08:17.879
+questions and comments. And thank you again so much for your
+
+00:08:17.880 --> 00:08:20.920
+talk and getting us all excited to learn Julia. Thank you.
+
+08:24.094 --> 08:25.275
+Enjoy EmacsConf. And again, thanks so much for attending,
+
+08:25.335 --> 08:30.220
+for being EmacsConf. Thank you.
diff --git a/2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt b/2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt
new file mode 100644
index 00000000..009f023d
--- /dev/null
+++ b/2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt
@@ -0,0 +1,961 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:05.159
+I'm doing well. Thank you so much. I was supposed to chat and
+
+00:00:05.160 --> 00:00:08.799
+write down stuff in the etherpad, but you guys accommodated
+
+00:00:08.800 --> 00:00:12.439
+me very nicely, swiftly, efficiently, in spite of my quirky
+
+00:00:12.440 --> 00:00:16.599
+last minute requests. Yeah, but that's okay because, well,
+
+00:00:16.600 --> 00:00:19.479
+it's funny that you talk about accommodating you and doing
+
+00:00:19.480 --> 00:00:22.159
+all the things we need to do because, frankly, your talk is
+
+00:00:22.160 --> 00:00:24.199
+about getting things done and you've mentioned the book,
+
+00:00:24.200 --> 00:00:27.439
+obviously, but the philosophy of getting things done is
+
+00:00:27.440 --> 00:00:30.759
+ultimately what we've been applying with Emacs Conf so that
+
+00:00:30.760 --> 00:00:33.759
+when we have curveballs thrown at us, like you've done right
+
+00:00:33.760 --> 00:00:36.399
+now, we can accommodate them because we made sure that
+
+00:00:36.400 --> 00:00:41.039
+everything else was done. So we'll move to questions and I
+
+00:00:41.040 --> 00:00:45.039
+invite viewers to go to the pad, to the etherpad that is on IRC
+
+00:00:45.040 --> 00:00:48.199
+and also on the talk page and put your questions over there.
+
+00:00:48.200 --> 00:00:51.559
+But first I wanted to make sure, Bala, that if you had
+
+00:00:51.560 --> 00:00:54.639
+anything that you could not include in your presentation,
+
+00:00:54.640 --> 00:01:00.159
+just to give you some time to mention them now if you want. I
+
+00:01:00.160 --> 00:01:09.119
+think I mentioned most of what I wanted to convey. I wanted to
+
+00:01:09.120 --> 00:01:12.479
+keep it general with whichever format people are
+
+00:01:12.480 --> 00:01:15.719
+comfortable with, whether it's Org Mode, whether it's
+
+00:01:15.720 --> 00:01:21.599
+plain text, whether it is docx. In fact, I was speaking to one
+
+00:01:21.600 --> 00:01:25.799
+of my friends and he said, Hey, I use Google Sheets to note
+
+00:01:25.800 --> 00:01:28.679
+down everything, all the tasks that are coming. I said, suit
+
+00:01:28.680 --> 00:01:33.439
+yourself, whatever it is. So, in that way, this methodology
+
+00:01:33.440 --> 00:01:37.359
+or whatever, the way which we follow is quite flexible. The
+
+00:01:37.360 --> 00:01:41.679
+system is quite flexible in whichever way you want to use it.
+
+00:01:41.680 --> 00:01:46.919
+go ahead and use it. But start emptying your teacup. That
+
+00:01:46.920 --> 00:01:50.599
+will be my first and foremost. I have nothing else to add per
+
+00:01:50.600 --> 00:01:54.879
+se. Okay, cool. So we'll start with the first question and
+
+00:01:54.880 --> 00:01:58.279
+I'll be reading the questions to you. And just so we know, we
+
+00:01:58.280 --> 00:02:01.079
+have about eight minutes of Q&A until we need to move to the
+
+00:02:01.080 --> 00:02:03.553
+next talk. All right, so first question.
+
+NOTE Q: What is TRIZ?
+
+00:02:03.554 --> 00:02:06.399
+What is TRIZ? Okay,
+
+00:02:06.400 --> 00:02:11.679
+this is a Russian methodology. It's pardon my, I mean poor
+
+00:02:11.680 --> 00:02:16.679
+Russian, but it translates to theory of inventive problem
+
+00:02:16.680 --> 00:02:21.919
+solving. So, that's what it translates to. What it is, is it
+
+00:02:21.920 --> 00:02:26.119
+is said that all the inventions problem solved so far in
+
+00:02:26.120 --> 00:02:30.239
+humanity. If you can categorize them, they fall into
+
+00:02:30.240 --> 00:02:36.159
+exactly 40 principles. That's one of the core tenets in
+
+00:02:36.160 --> 00:02:40.959
+theory of inventive problem solving. Also, that creative
+
+00:02:40.960 --> 00:02:46.319
+people have a process they follow. and in defining a problem
+
+00:02:46.320 --> 00:02:49.839
+and solving a problem. So, this is what I was trained in a
+
+00:02:49.840 --> 00:02:55.359
+company that I work for and I started using it and started
+
+00:02:55.360 --> 00:02:59.199
+applying it. So, creative process starts with defining a
+
+00:02:59.200 --> 00:03:02.799
+problem and solving a problem in a very systematic manner
+
+00:03:02.800 --> 00:03:06.239
+and you can be as creative as the creatives that we know about
+
+00:03:06.240 --> 00:03:11.759
+as the methodology talks about. So, that is what TRIZ is,
+
+00:03:11.760 --> 00:03:15.639
+Theory of Inventive Problem Solving. There is lot of open
+
+00:03:15.640 --> 00:03:19.799
+source literature like we have in Emacs. It is the same way
+
+00:03:19.800 --> 00:03:24.159
+with TRIZ, people share very generous and you can learn
+
+00:03:24.160 --> 00:03:29.879
+about it. what it can be useful for what in the core of our talk
+
+00:03:29.880 --> 00:03:34.679
+also is that many times we face conflicts, that is, I don't
+
+00:03:34.680 --> 00:03:38.719
+want to spend a lot of time, you know, figuring out a system
+
+00:03:38.720 --> 00:03:42.919
+like this. However, I want everything in one place, you
+
+00:03:42.920 --> 00:03:46.839
+know, how can that happen? So start little by little is one
+
+00:03:46.840 --> 00:03:50.399
+suggestion I have. Don't And this is also a contradiction we
+
+00:03:50.400 --> 00:03:55.199
+have, right? So, we need to spend a lot of time to set up things
+
+00:03:55.200 --> 00:03:58.559
+before we can start organizing our life. But there's not a
+
+00:03:58.560 --> 00:04:01.599
+lot of time because we haven't organized our life. So, we
+
+00:04:01.600 --> 00:04:04.839
+don't have that's a conundrum or a contradiction. That's
+
+00:04:04.840 --> 00:04:09.479
+what TRIZ methodology is about to identify that this is a
+
+00:04:09.480 --> 00:04:15.039
+contradiction and we have to resolve it not compromise. So,
+
+00:04:15.040 --> 00:04:18.319
+resolve it in a manner that gives you enough time to set up a
+
+00:04:18.320 --> 00:04:22.439
+system and enough time, free time to enjoy your life or focus
+
+00:04:22.440 --> 00:04:26.559
+on a project and be present when you're working with
+
+00:04:26.560 --> 00:04:31.439
+something. So, that's what the crux of the methodology is.
+
+00:04:31.440 --> 00:04:34.359
+Okay, splendid answer. Thank you. Moving on to the next one.
+
+NOTE Q: Do you agree that learning similar but different things again and again is ultimately wasted bandwidth? What can we do as technologists to push back against this?
+
+00:04:34.360 --> 00:04:37.199
+Thank you for this talk. Very interesting. One of the things
+
+00:04:37.200 --> 00:04:40.199
+that frustrates me about modern web development is the rate
+
+00:04:40.200 --> 00:04:43.279
+of churn when it comes to useful knowledge. I think Emacs can
+
+00:04:43.280 --> 00:04:45.679
+help to counteract against this by building lasting tools
+
+00:04:45.680 --> 00:04:48.279
+where mastery can be built. Do you agree that learning
+
+00:04:48.280 --> 00:04:50.799
+similar but different things again and again is ultimately
+
+00:04:50.800 --> 00:04:54.079
+wasted bandwidth? What can we do as technologists to push
+
+00:04:54.080 --> 00:05:00.159
+back against this? Yeah, this is an interesting one
+
+00:05:00.160 --> 00:05:04.879
+because, I mean, I'm like everyone else where a new package
+
+00:05:04.880 --> 00:05:09.439
+shows up. I mentioned that in my talk also, the first
+
+00:05:09.440 --> 00:05:12.879
+introduction. Sajajo's newsletter is amazing. It has all
+
+00:05:12.880 --> 00:05:15.599
+these new things coming up and new developments coming up.
+
+00:05:15.600 --> 00:05:18.879
+Same thing with web dev, I guess, you have new things coming
+
+00:05:18.880 --> 00:05:25.519
+up. So you want to learn that new thing. However, you need to
+
+00:05:25.520 --> 00:05:31.559
+also be aware that there are so many other projects and
+
+00:05:31.560 --> 00:05:37.879
+hobbies or life that's also waiting for you. And it's not a
+
+00:05:37.880 --> 00:05:42.799
+balancing act, but if you if you pay attention and be present
+
+00:05:42.800 --> 00:05:46.199
+and give whatever is in front of you, it's full attention.
+
+00:05:46.200 --> 00:05:50.959
+Then look back and connect. That's an interesting way,
+
+00:05:50.960 --> 00:05:55.759
+because hindsight is 20 20. Use it to your advantage. So my I
+
+00:05:55.760 --> 00:05:59.679
+don't know, I don't want to push back against this because
+
+00:05:59.680 --> 00:06:02.879
+some of it is just amazing because it thinks that you think is
+
+00:06:02.880 --> 00:06:05.759
+a waste of time and it's a distraction right now. could
+
+00:06:05.760 --> 00:06:09.719
+potentially be. I'm not saying it will be because there are
+
+00:06:09.720 --> 00:06:13.359
+things that are truly a waste of time that could truly
+
+00:06:13.360 --> 00:06:17.250
+potentially tie back to something and be really helpful.
+
+NOTE org-mode export, CSS, WeasyPrint
+
+00:06:17.251 --> 00:06:22.039
+I can give you an example from our Emacs part of my life. I was
+
+00:06:22.040 --> 00:06:27.839
+experimenting with CSS and Cascade style sheets and how I
+
+00:06:27.840 --> 00:06:34.599
+can customize it to use it in org mode export. For me at the
+
+00:06:34.600 --> 00:06:38.639
+time, it seemed like a waste of time. I was spending so much
+
+00:06:38.640 --> 00:06:42.599
+time. Then I parked it. I didn't do much about it later. But
+
+00:06:42.600 --> 00:06:47.319
+then one of my students said, "Your slides are too bulky for me
+
+00:06:47.320 --> 00:06:49.588
+to scroll through to get to exactly what I am looking for."
+
+00:06:49.589 --> 00:06:55.319
+I was using the reveal HTML and I used to pass on the link
+
+00:06:55.320 --> 00:07:00.999
+before. And the student sort of hinted at a handout. And now
+
+00:07:01.000 --> 00:07:05.319
+that's not easy with the RevealJS framework. It's rather
+
+00:07:05.320 --> 00:07:08.439
+tricky. At least I couldn't figure it out. but then it
+
+00:07:08.440 --> 00:07:10.879
+occurred to me that, hey, wait a second i've already looked at
+
+00:07:10.880 --> 00:07:15.799
+this CSS thing and maybe that'll help. It did help. I can
+
+00:07:15.800 --> 00:07:18.995
+drop in the name of the tool that I use now.
+
+00:07:18.996 --> 00:07:23.016
+It's called WeasyPrint uh let me use the uh
+
+00:07:23.017 --> 00:07:24.877
+i don't know if some...
+
+00:07:24.878 --> 00:07:32.100
+If you can look it up, W-E-A-S-Y print.
+
+00:07:32.101 --> 00:07:32.519
+That's what it's called. And that's
+
+00:07:32.520 --> 00:07:36.399
+mighty useful. That's really, really useful. You can
+
+00:07:36.400 --> 00:07:40.919
+customize it. You can change everything. I think I can even,
+
+00:07:40.920 --> 00:07:44.519
+I'll probably even share the code later on. It's really
+
+00:07:44.520 --> 00:07:48.959
+useful and I've been able to, so what seemed like a waste of
+
+00:07:48.960 --> 00:07:52.039
+time is actually something that became useful later on. But
+
+00:07:52.040 --> 00:07:55.519
+there are several other things I have truly wasted and it's
+
+00:07:55.520 --> 00:07:58.439
+not been useful because I couldn't connect the dots. So,
+
+00:07:58.440 --> 00:08:06.239
+perhaps the, let's say, wasteful of time so that you look at
+
+00:08:06.240 --> 00:08:09.159
+something and see how to connect back like the Zettelkasten
+
+00:08:09.160 --> 00:08:12.839
+that everybody talks about. I do not use it, but I like the
+
+00:08:12.840 --> 00:08:15.399
+idea that you look at it keeping in mind that you could
+
+00:08:15.400 --> 00:08:19.359
+probably connect to something later on. Perhaps, just try
+
+00:08:19.360 --> 00:08:24.519
+it out. OK, great, Bala. Sadly, we are a little short on time
+
+00:08:24.520 --> 00:08:27.159
+to answer all the questions that we have. I see three
+
+00:08:27.160 --> 00:08:31.039
+questions currently that can still be answered, and I don't
+
+00:08:31.040 --> 00:08:33.919
+think any of them would be answerable within just one
+
+00:08:33.920 --> 00:08:37.559
+minute. So what I suggest we do, Bala, feel free. Do you have
+
+00:08:37.560 --> 00:08:40.919
+access to the pad on your end? Yes, I do. I do. I have it here.
+
+00:08:40.920 --> 00:08:43.707
+Okay, cool. I'm putting the link on BBB just in case you need
+
+00:08:43.708 --> 00:08:44.919
+to review it.
+
+00:08:44.920 --> 00:08:47.039
+We're going to leave the room open. By the way,
+
+00:08:47.040 --> 00:08:49.399
+if anyone in the crowd wants to join so that they can ask the
+
+00:08:49.400 --> 00:08:51.919
+question directly with their voice to Bala, feel free to do
+
+00:08:51.920 --> 00:08:56.119
+so. The links are on the website. But Bala, if no one shows up,
+
+00:08:56.120 --> 00:08:58.559
+if you could just answer the three questions that we haven't
+
+00:08:58.560 --> 00:09:01.239
+covered yet, actually. Well, three questions because
+
+00:09:01.240 --> 00:09:04.359
+Sacha just put the link right there. That'd be lovely. And
+
+00:09:04.360 --> 00:09:06.080
+we'll make sure that the entire Q&A
+
+00:09:06.120 --> 00:09:07.839
+finds its place into the
+
+00:09:07.840 --> 00:09:10.719
+website afterwards. How does that sound for you? Yeah,
+
+00:09:10.720 --> 00:09:14.559
+sounds great. Thank you so much. I'll do make sure that I will
+
+00:09:14.560 --> 00:09:17.159
+have the answers there, but I'm going to wait here for some
+
+00:09:17.160 --> 00:09:20.559
+time so that somebody can join. Okay, sure. Any last word in
+
+00:09:20.560 --> 00:09:26.799
+10 seconds for the public? Well, empty your teacup and enjoy
+
+00:09:26.800 --> 00:09:27.199
+your life.
+
+00:09:27.200 --> 00:09:29.879
+Splendid. Thank you so much, Bala, for coming
+
+00:09:29.880 --> 00:09:32.359
+again to EmacsConf this year, and hopefully we'll be seeing
+
+00:09:32.360 --> 00:09:36.439
+you next year with further talks to discuss. Yeah, thank you
+
+00:09:36.440 --> 00:09:39.559
+so much. All right, and right now we'll be moving to the next
+
+00:09:39.560 --> 00:09:42.039
+talk of the day in about five seconds. Thank you again, Bala,
+
+00:09:42.040 --> 00:09:46.799
+and see you later. Bye.
+
+00:09:46.800 --> 00:09:49.399
+All right, we are a fair. So, Bala, I'll need to move to make
+
+00:09:49.400 --> 00:09:51.759
+sure that everything is working for the next talk. So, do as
+
+00:09:51.760 --> 00:09:55.320
+we said, and everything will be fine. Okay.
+
+00:09:55.333 --> 00:09:58.879
+Okay, bye-bye, Bala. Bye. Bye, Leo.
+
+00:09:58.880 --> 00:10:15.119
+Okay.
+
+00:10:15.120 --> 00:10:21.679
+Hello everyone, do you want me to answer a question? I'll be
+
+00:10:21.680 --> 00:10:23.399
+happy to answer that. You want to discuss something? You
+
+00:10:23.400 --> 00:10:27.759
+want to share something? I'm here for that. Please let me
+
+00:10:27.760 --> 00:11:06.479
+know.
+
+00:11:06.480 --> 00:11:10.599
+I'll hang around for another 5 to 10 minutes. Please let me
+
+00:11:10.600 --> 00:11:14.439
+know if you have any questions or if you're the ones who ask
+
+00:11:14.440 --> 00:11:36.739
+those questions also, please let me know.
+
+00:11:36.740 --> 00:11:38.560
+Are you there?
+
+00:11:38.625 --> 00:11:44.359
+Hi, yes. Some tips I've found for getting
+
+00:11:44.360 --> 00:11:50.399
+things done with an image for this stuff is like for
+
+00:11:50.400 --> 00:11:53.919
+separations you have like your Zettelkasten, you're
+
+00:11:53.920 --> 00:11:56.799
+getting things done, and then beyond that you have like
+
+00:11:56.800 --> 00:12:00.559
+dailies and global.
+
+00:12:00.560 --> 00:12:06.439
+Daily Zettelkasten would be journaling. Okay, okay. And
+
+00:12:06.440 --> 00:12:10.479
+then, like, global or daily getting things done, I
+
+00:12:10.480 --> 00:12:11.919
+generally like doing it in a week.
+
+00:12:11.920 --> 00:12:13.800
+And then splitting the,
+
+00:12:13.833 --> 00:12:16.120
+like, core tasks, secondary tasks,
+
+00:12:16.121 --> 00:12:17.220
+unplanned tasks,
+
+00:12:17.221 --> 00:12:22.079
+because those are good categories.
+
+00:12:22.080 --> 00:12:26.439
+I like what you're doing.
+
+00:12:26.440 --> 00:12:32.199
+Sorry? Do you do things like that at all?
+
+00:12:32.200 --> 00:12:38.279
+Or are there separations like with Zettelkasten
+
+00:12:38.280 --> 00:12:45.839
+versus the Getting Things Done?
+
+00:12:45.840 --> 00:12:52.279
+That's very interesting, yes. Daily log and weekly log,
+
+00:12:52.280 --> 00:12:56.800
+that's really helpful. I've also been trying to do that but
+
+00:12:56.821 --> 00:13:02.279
+not being able to successfully do a daily log plus a weekly
+
+00:13:02.280 --> 00:13:06.879
+log. So I gave up on the daily log because it seemed to be like a
+
+00:13:06.880 --> 00:13:12.479
+lot of overhead for me, so I just switch to a weekly review
+
+00:13:12.480 --> 00:13:16.759
+where I would log what's going on and how it is. But it's also
+
+00:13:16.760 --> 00:13:19.759
+interesting to see how it connects back to something that
+
+00:13:19.760 --> 00:13:22.639
+we've already worked on, or we've already learned
+
+00:13:22.640 --> 00:13:26.039
+somewhere, which is essentially using the ZIP and custom
+
+00:13:26.040 --> 00:13:30.239
+method. I probably want to try that a bit later on also.
+
+00:13:30.240 --> 00:13:34.199
+That's a great suggestion, nice idea. Oh, so some of the
+
+00:13:34.200 --> 00:13:38.039
+reason for the separation would be with the daily log, like,
+
+00:13:38.040 --> 00:13:42.839
+for instance, the title for the journal would be, Audinet
+
+00:13:42.840 --> 00:13:47.359
+would be the day, and it starts blank. And then, so if you have
+
+00:13:47.360 --> 00:13:50.159
+a straight thought, if you know it can go straight to your
+
+00:13:50.160 --> 00:13:53.479
+Zettelkasten, it goes into your Zettelkasten. If you don't
+
+00:13:53.480 --> 00:13:57.679
+know where it goes, it goes into your journal. And then same
+
+00:13:57.680 --> 00:14:01.839
+thing for like the week, is like your weeks always start
+
+00:14:01.840 --> 00:14:04.879
+emptying, so like if you have your core tasks, like if it
+
+00:14:04.880 --> 00:14:08.119
+spells beyond three, it's probably not a core task. So it
+
+00:14:08.120 --> 00:14:11.359
+gives you the idea of like, did I actually do what I wanted to
+
+00:14:11.360 --> 00:14:16.999
+yesterday, rather than getting 20 things done that I don't
+
+00:14:17.000 --> 00:14:22.159
+really care about that much. Yes. True, true, true. Very
+
+00:14:22.160 --> 00:14:23.759
+true. Yeah.
+
+00:14:23.760 --> 00:14:30.959
+Nice, nice talk. Thank you so much for sharing that. I've
+
+00:14:30.960 --> 00:14:35.279
+been a, let's say a start and many times I've started on
+
+00:14:35.280 --> 00:14:40.799
+Zettelkasten, you know, with little notes. They have these
+
+00:14:40.800 --> 00:14:43.399
+fleeting notes and permanent notes. I've tried many of
+
+00:14:43.400 --> 00:14:48.199
+those, but somehow it's not sticky for me. I've not been
+
+00:14:48.200 --> 00:14:51.399
+able to get rid of that.
+
+00:14:51.400 --> 00:14:55.919
+Yeah, I've got multiple attempts of using these systems,
+
+00:14:55.920 --> 00:15:01.999
+becoming too big or complex, like I don't know where to put a
+
+00:15:02.000 --> 00:15:06.679
+new piece of information, so then I throw the whole system
+
+00:15:06.680 --> 00:15:14.639
+away. So, this is my favorite iteration that I've done so
+
+00:15:14.640 --> 00:15:23.399
+far. I'm sure it'll change with time. Okay, okay, okay, I
+
+00:15:23.400 --> 00:15:25.079
+see. Yeah, I...
+
+NOTE Daily log
+
+00:15:25.080 --> 00:15:31.759
+I like the way the daily log works, that it has an embedded,
+
+00:15:31.760 --> 00:15:36.799
+you know, you just have a name stamp and then you embed
+
+00:15:36.800 --> 00:15:40.479
+something from another project. And when you go to the
+
+00:15:40.480 --> 00:15:44.559
+project page, the same thing shows up there in the log also. I
+
+00:15:44.560 --> 00:15:48.679
+wanted to take that feature and have that in my optimal
+
+00:15:48.680 --> 00:15:53.399
+setup. I'm not well versed enough to get that set up because I
+
+00:15:53.400 --> 00:15:56.799
+like that with that. Anything I enter in the daily log should
+
+00:15:56.800 --> 00:16:00.359
+show up in my project log also and vice versa. I want to
+
+00:16:00.360 --> 00:16:04.799
+execute on my project. I need that notes where I'm looking
+
+00:16:04.800 --> 00:16:10.599
+for. That's a key feature of that is with logseq you just have
+
+00:16:10.600 --> 00:16:14.160
+a button that says go to today. So you don't think about it and
+
+00:16:14.161 --> 00:16:18.060
+it always starts empty. It's that blank sheet that's always
+
+00:16:18.061 --> 00:16:23.079
+confirming you want the things that I used that before.
+
+00:16:23.080 --> 00:16:26.360
+One of the things I really wanted was, I want this,
+
+00:16:26.397 --> 00:16:29.198
+but I want it for Getting Things Done on my journal.
+
+00:16:29.199 --> 00:16:36.279
+I want two separate ones.
+
+00:16:36.280 --> 00:16:45.319
+Yeah, I like the, also I'm trying to see how to create pages
+
+00:16:45.320 --> 00:16:51.119
+quickly from within Org Mode. I know we can do the square
+
+00:16:51.120 --> 00:16:55.879
+bracket thing and enter and it should go into a new page. but
+
+00:16:55.880 --> 00:17:00.879
+it's not as seamless as in logseq or obsidian i'm trying to
+
+00:17:00.880 --> 00:17:06.239
+see how which way do i do that quickly so that you don't spend
+
+00:17:06.240 --> 00:17:10.439
+time on organizing once you have the bigger setup of the
+
+00:17:10.440 --> 00:17:14.959
+folder structures and the to do then it's easier to
+
+00:17:14.960 --> 00:17:18.599
+integrate it but if i'm starting from a business point of
+
+00:17:18.600 --> 00:17:22.679
+view it's rather tough for them to set it all up because the
+
+00:17:22.680 --> 00:17:27.679
+setup costs are very high in terms of system first and then
+
+00:17:27.680 --> 00:17:30.639
+start with this. Or like you said, you know we could also
+
+00:17:30.640 --> 00:17:33.759
+start with a blank sheet and then start filling it up and then
+
+00:17:33.760 --> 00:17:39.159
+see how to link up things or move it around so that it fits into
+
+00:17:39.160 --> 00:17:44.719
+your larger system or evolve a system as it goes. Don't start
+
+00:17:44.720 --> 00:17:47.959
+with the system in mind, but evolve it because it then fits
+
+00:17:47.960 --> 00:17:52.559
+into how you are rather than the you trying to adapt to the
+
+00:17:52.560 --> 00:17:53.159
+system.
+
+NOTE Capturing
+
+00:17:53.160 --> 00:18:00.559
+So, Denote and org-roam, they'll have a feature, like the
+
+00:18:00.560 --> 00:18:05.199
+note, you have a command called, let's see, create or
+
+00:18:05.200 --> 00:18:09.479
+existing note, and org-roam has an equivalent to that, and
+
+00:18:09.480 --> 00:18:14.999
+what that, you need to consult with that, as you are browsing
+
+00:18:15.000 --> 00:18:19.279
+your notes, you see that, and so if you're making a new note,
+
+00:18:19.280 --> 00:18:23.119
+power generation or something like that you'll easily see
+
+00:18:23.120 --> 00:18:27.799
+if you have any notes that are in power generation or like
+
+00:18:27.800 --> 00:18:30.839
+let's say you have something in power and if you don't you
+
+00:18:30.840 --> 00:18:34.079
+just go down to where you're just you know you don't have
+
+00:18:34.080 --> 00:18:39.599
+anything selected or so it's your what's in your uh what your
+
+00:18:39.600 --> 00:18:46.719
+current so you're not pre-selecting something existing
+
+00:18:46.720 --> 00:18:51.599
+and voila now you have a file And then you have consult so you
+
+00:18:51.600 --> 00:18:57.879
+can preview them as you move up and down the list.
+
+00:18:57.880 --> 00:19:02.319
+And then you also got Emacs
+
+00:19:02.320 --> 00:19:10.719
+Org Capture to just pop up a template
+
+00:19:10.720 --> 00:19:16.599
+capture buffer that is blank that you can tell to go into
+
+00:19:16.600 --> 00:19:20.919
+something like a journal or a GTD inbox.
+
+00:19:20.920 --> 00:19:27.279
+And yeah, this allows you to just make it like a specific
+
+00:19:27.280 --> 00:19:30.999
+buffer to do that specific task. I think Protesilaos has a
+
+00:19:31.000 --> 00:19:35.479
+video about how to make that into just a pop-up window. Like
+
+00:19:35.480 --> 00:19:41.519
+for instance, you're in your browser, you pop it up, Uh, jot
+
+00:19:41.520 --> 00:19:49.599
+down your task, press enter, and it's gone. Hmm, okay. Okay,
+
+NOTE Note silos
+
+00:19:49.600 --> 00:19:54.919
+okay, makes sense, makes sense. Yeah, for me, I wanted to try
+
+00:19:54.920 --> 00:20:01.079
+denote, but my folder structure, I found it very difficult
+
+00:20:01.080 --> 00:20:04.559
+to move it to a denote kind of a structure where the folder
+
+00:20:04.560 --> 00:20:08.519
+hierarchy is not as important because all nodes are treated
+
+00:20:08.520 --> 00:20:12.639
+the same. But for me, because I'm focusing on a project, I
+
+00:20:12.640 --> 00:20:17.079
+need only the project files show up. It was tricky for me to,
+
+00:20:17.080 --> 00:20:20.599
+because sometimes I share the folder with my colleagues and
+
+00:20:20.600 --> 00:20:24.519
+who are not on Emacs or more. So I can't show them all the
+
+00:20:24.520 --> 00:20:28.879
+files, all the notes. I just want that folder to be shared and
+
+00:20:28.880 --> 00:20:32.439
+ignore the todo.org that is there because it's not readable
+
+00:20:32.440 --> 00:20:37.679
+for them. So, I find it easier to share a folder level or a
+
+00:20:37.680 --> 00:20:41.639
+project level and that's why I stuck to this format which is a
+
+00:20:41.640 --> 00:20:46.639
+hierarchy of folders with the to-do inside those folders.
+
+00:20:46.640 --> 00:20:49.719
+That works very well for me, particularly keeping in mind
+
+00:20:49.720 --> 00:20:52.479
+that I need to share some folders sometimes with my
+
+00:20:52.480 --> 00:20:57.439
+colleagues. Whereas Denote with a flat structure or
+
+00:20:57.440 --> 00:21:01.919
+Roam with a flat structure, I find it very tricky to do that.
+
+00:21:01.920 --> 00:21:06.079
+With Denote, you can actually have, there's a feature
+
+00:21:06.080 --> 00:21:07.759
+called silos that will
+
+00:21:07.760 --> 00:21:13.199
+allow you to do both and I think you can make customized
+
+00:21:13.200 --> 00:21:17.959
+commands to go that work only in specific silos. I haven't
+
+00:21:17.960 --> 00:21:20.919
+messed around to it. too much with them. I don't think org run
+
+00:21:20.920 --> 00:21:24.719
+has anything like that though. Yes, I don't think they have
+
+00:21:24.720 --> 00:21:28.239
+that. But I remember seeing silos. Maybe I should give it
+
+00:21:28.240 --> 00:21:32.119
+another spin and see if that works. Because if it can solve my
+
+00:21:32.120 --> 00:21:36.519
+creating new node quickly from the denote part itself while
+
+00:21:36.520 --> 00:21:40.439
+I'm writing the nodes itself rather than go through the R
+
+00:21:40.440 --> 00:21:45.439
+capture. That will really help me in linking back and seeing
+
+00:21:45.440 --> 00:21:49.399
+how it maps to another project that I've already worked on
+
+00:21:49.400 --> 00:21:53.999
+from an archive and then bring it there. I think that's a good
+
+00:21:54.000 --> 00:21:57.639
+idea. I'll look at silos again. Also, with the silos, let's
+
+00:21:57.640 --> 00:22:03.719
+say you're going to use ripgrep on the directory, you could
+
+00:22:03.720 --> 00:22:07.799
+intentionally keep your Zettelkasten and your journal
+
+00:22:07.800 --> 00:22:13.159
+separated. in different folders, like, yeah. So that,
+
+00:22:13.160 --> 00:22:19.039
+like, if you direct them, or if you wanted to share folder by
+
+00:22:19.040 --> 00:22:23.399
+folder basis, yeah, you don't have to be the all-in or
+
+00:22:23.400 --> 00:22:30.759
+nothing approach. Yeah, that works. That works.
+
+00:22:30.760 --> 00:22:35.119
+Excellent.
+
+00:22:35.120 --> 00:22:37.839
+OK.
+
+00:22:37.840 --> 00:22:44.159
+Well, thank you so much for your time and for sharing what is
+
+00:22:44.160 --> 00:22:47.919
+really helpful for me. I hope the talk was useful for you.
+
+00:22:47.920 --> 00:22:53.839
+Yep. Thanks for sharing. Have fun with the rest of the Emacs
+
+00:22:53.840 --> 00:23:00.799
+camp. Okay. All right. Then see you then. Happy Emacs month
+
+00:23:00.800 --> 00:23:06.200
+to you too. Okay. Bye. Bye.
diff --git a/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt b/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt
new file mode 100644
index 00000000..803d43df
--- /dev/null
+++ b/2024/captions/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt
@@ -0,0 +1,996 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:04.839
+I'm doing great. Good to hear from you guys. Yeah, I mean,
+
+00:00:04.840 --> 00:00:07.959
+you've been a regular of the show, I would say, for quite a
+
+00:00:07.960 --> 00:00:11.399
+while, and it's good. I really like the retrospective that
+
+00:00:11.400 --> 00:00:14.959
+you did the first time you attended EmacsConf. And when was
+
+00:00:14.960 --> 00:00:18.759
+it? Was it 2015? I can't actually remember. 2015 was when I
+
+00:00:18.760 --> 00:00:22.319
+presented that, but I did an earlier talk the year before. So
+
+00:00:22.320 --> 00:00:25.479
+yeah, that's why it's kind of thing. It's like, wow, it's
+
+00:00:25.480 --> 00:00:31.279
+been a decade. It's been a while. Yeah, and I'm glad that you
+
+00:00:31.280 --> 00:00:35.559
+are in a much better recording situation than you were in
+
+00:00:35.560 --> 00:00:39.439
+2015 at the back of your colleague's house. It's good to see
+
+00:00:39.440 --> 00:00:44.359
+you at your own place. Well, it's also nice to pre-record and
+
+00:00:44.360 --> 00:00:48.239
+then just share. Yeah, I mean, that's why we keep talking
+
+00:00:48.240 --> 00:00:51.519
+about pre-recording. You know, when we really pushed
+
+00:00:51.520 --> 00:00:53.759
+pre-recordings, I think it was five years ago when we
+
+00:00:53.760 --> 00:00:57.679
+started, people were not really liking it. They thought,
+
+00:00:57.680 --> 00:01:00.039
+oh, but most conferences are just asking you to come and
+
+00:01:00.040 --> 00:01:02.919
+chat. And, you know, I don't need to do the pesky
+
+00:01:02.920 --> 00:01:06.319
+pre-recording. But now, and especially for you regulars,
+
+00:01:06.320 --> 00:01:08.359
+you're really starting to realize that pre-recordings are
+
+00:01:08.360 --> 00:01:11.279
+actually amazing for everyone. You're less stressed on the
+
+00:01:11.280 --> 00:01:14.199
+day of the conference. We, the organizers, are way less
+
+00:01:14.200 --> 00:01:16.519
+stressed. So it's a win-win scenario for absolutely
+
+00:01:16.520 --> 00:01:19.359
+everyone in the equation. Okay, so there's some
+
+00:01:19.360 --> 00:01:22.519
+confirmation bias at work, but I'm not really arguing with
+
+00:01:22.520 --> 00:01:27.639
+what Leo says for the record. It may be that we are just that
+
+00:01:27.640 --> 00:01:30.759
+this stoked that we're lying to ourselves by the
+
+00:01:30.760 --> 00:01:33.959
+opportunity that we have to chat with each of you. Sure.
+
+00:01:33.960 --> 00:01:38.759
+Sure. Sure. I have really appreciated all of the, the
+
+00:01:38.760 --> 00:01:43.559
+transcripts. It's been great that, you know, to be able to
+
+00:01:43.560 --> 00:01:46.519
+read and copy and paste and all that kind of thing. Yeah, it's
+
+00:01:46.520 --> 00:01:49.959
+great. So yeah, let's answer some questions here.
+
+00:01:49.960 --> 00:01:58.159
+Let's see. Yeah, just feel free to jump onto the Etherpad and
+
+00:01:58.160 --> 00:02:01.239
+just drop on the questions. I'll keep answering them all day
+
+00:02:01.240 --> 00:02:07.399
+kind of thing and get better answers as we go along.
+
+NOTE Q: What's the largest code base you've ever tackled with the literate approach (esp. Emacs + Org-mode)?
+
+00:02:07.400 --> 00:02:12.439
+So yeah, the first question here is, what's my largest code base?
+
+00:02:12.440 --> 00:02:18.359
+I kind of touched it in my presentation. However, I think
+
+00:02:18.360 --> 00:02:22.439
+someone just went through and did a better count than it
+
+00:02:22.440 --> 00:02:27.879
+looks like. a little bit more. So
+
+00:02:27.880 --> 00:02:32.959
+as I joked about in the video, we've all worked on larger code
+
+00:02:32.960 --> 00:02:36.799
+bases, but that's still, it's kind of significant. So it's
+
+00:02:36.800 --> 00:02:43.679
+not, so yeah, anyway. So let's talk a little bit about
+
+00:02:43.680 --> 00:02:49.519
+searching for functions here. If you've got your functions
+
+00:02:49.520 --> 00:02:53.679
+in your code or code block, well, you can search for the
+
+00:02:53.680 --> 00:02:59.319
+descriptions, you know, as long as you've evaluated it. And
+
+00:02:59.320 --> 00:03:04.519
+so that wasn't so much of a problem, but I did want to like look
+
+00:03:04.520 --> 00:03:07.839
+at the commentary around any function that I would define.
+
+00:03:07.840 --> 00:03:14.039
+And that's where, yeah, you know, the C-x or the
+
+00:03:14.040 --> 00:03:18.919
+C-f to define that function and display it. It won't
+
+00:03:18.920 --> 00:03:22.279
+pull out the literate stuff around it, obviously, it'll
+
+00:03:22.280 --> 00:03:27.159
+only do the doc header. But if you could search for it and find
+
+00:03:27.160 --> 00:03:30.559
+it quick, then it might be just as useful. And I guess that's
+
+00:03:30.560 --> 00:03:36.079
+why I started getting into seeing if I can't tie that into the
+
+00:03:36.080 --> 00:03:40.839
+X ref. you know, just the standard ways. My first part, I
+
+00:03:40.840 --> 00:03:45.799
+noticed that evil has a different way of searching through
+
+00:03:45.800 --> 00:03:50.999
+for looking for code definitions. That was my first foray
+
+00:03:51.000 --> 00:03:53.959
+into it. It's like, oh, that's not a bad idea. Let's hook it up
+
+00:03:53.960 --> 00:03:58.079
+under, you know, in the standard way.
+
+NOTE Q: Have you ever used org-transclusion?
+
+00:03:58.080 --> 00:04:02.279
+Let's see. Have I ever used org-transclusion?
+
+00:04:02.280 --> 00:04:05.319
+No, I haven't, but I think I want to
+
+00:04:05.320 --> 00:04:08.439
+take a look at it. I haven't heard of it before.
+
+NOTE Q: What is your usage of dynamic blocks in such workflows?
+
+00:04:08.440 --> 00:04:16.519
+Let's see. What's my usage of dynamic blocks in my
+
+00:04:16.520 --> 00:04:21.439
+workflows? You know, that's a real good question. I haven't
+
+00:04:21.440 --> 00:04:26.319
+really used them a lot in all of my workflows, but yeah, it's
+
+00:04:26.320 --> 00:04:29.439
+an interesting, you know, we always start.
+
+00:04:29.440 --> 00:04:30.999
+At first, all
+
+00:04:31.000 --> 00:04:33.679
+we're doing is just taking a few notes, then we start
+
+00:04:33.680 --> 00:04:36.039
+organizing, then we've got links, and then we're writing
+
+00:04:36.040 --> 00:04:39.519
+code blocks, and then agendas, and table, you know, we keep
+
+00:04:39.520 --> 00:04:40.999
+building up on it.
+
+00:04:41.000 --> 00:04:44.399
+I guess I haven't really added that to
+
+00:04:44.400 --> 00:04:46.978
+my workflow, but maybe I'll have to come back
+
+00:04:46.979 --> 00:04:48.839
+and report on that.
+
+NOTE Q: Is the minibuffer being deliberately hidden in this video?
+
+00:04:48.840 --> 00:04:51.599
+Is the mini buffer being deliberately hidden in my
+
+00:04:51.600 --> 00:04:57.879
+video? Not deliberately. I recorded it first and
+
+00:04:57.880 --> 00:05:03.759
+accidentally not clipped the video and turned that all off.
+
+00:05:03.760 --> 00:05:07.359
+So I went through and started fixing all of it. But yeah, so
+
+00:05:07.360 --> 00:05:10.759
+you'll notice the mini buffer kind of comes and goes in the
+
+00:05:10.760 --> 00:05:12.444
+video. Sorry about that.
+
+00:05:12.445 --> 00:05:17.340
+So yeah, it wasn't intentional at all.
+
+NOTE Q: What's your take on Emacs+Org vs. Jupyter notebooks (for interactive programming)?
+
+00:05:17.341 --> 00:05:21.839
+What's my take on Emacs Org versus Jupyter? That's a real
+
+00:05:21.840 --> 00:05:29.519
+good question. I've been toying about seeing if I could do
+
+00:05:29.520 --> 00:05:32.479
+everything that some people do with Jupyter notebooks in
+
+00:05:32.480 --> 00:05:36.079
+order. I don't need to do it as much because I'm still kind of
+
+00:05:36.080 --> 00:05:40.319
+doing a lot of list programming and a lot of my DevOps, which
+
+00:05:40.320 --> 00:05:45.559
+is a lot of shell work and a lot of Python. Most of the Jupyter
+
+00:05:45.560 --> 00:05:49.639
+notebooks, they automatically include a lot of things in
+
+00:05:49.640 --> 00:05:56.679
+from either Julia or Python, like NumPy and all the dynamic
+
+00:05:56.680 --> 00:06:01.439
+stuff that's going on there. Since it has a server,
+
+00:06:01.440 --> 00:06:07.439
+it seems like it's running a lot more stuff and then just
+
+00:06:07.440 --> 00:06:10.719
+shipping it back off into the web app. That has been the
+
+00:06:10.720 --> 00:06:16.239
+biggest challenge as I've tried to kind of duplicate that. I
+
+00:06:16.240 --> 00:06:20.439
+don't really know NumPy and all the math stuff and that sort
+
+00:06:20.440 --> 00:06:25.039
+of stuff that well. So trying to do like matrix
+
+00:06:25.040 --> 00:06:27.359
+multiplications and that kind of thing that seemed to be
+
+00:06:27.360 --> 00:06:33.119
+pretty easy in the Jupyter, it's not very easy in Org. I've
+
+00:06:33.120 --> 00:06:36.639
+attempted to kind of work with Julia and the Julia support
+
+00:06:36.640 --> 00:06:45.759
+for Org is really limited it seems. That's the, So, yeah,
+
+00:06:45.760 --> 00:06:49.199
+there's some improvements we could probably make. So, I
+
+00:06:49.200 --> 00:06:53.159
+think if somebody is comfortable with Jupiter, and that
+
+00:06:53.160 --> 00:06:59.039
+seems to work, you may have to stay there. I don't know how
+
+00:06:59.040 --> 00:07:04.679
+easy. I would be curious to try to see what we could do as a
+
+00:07:04.680 --> 00:07:07.799
+community to kind of make that transition a lot easier.
+
+NOTE Q: Do you think any programming language is more suited to literate programming than another?
+
+00:07:07.800 --> 00:07:12.416
+Do you think any programming language
+
+00:07:12.417 --> 00:07:13.559
+is more suited to literate
+
+00:07:13.560 --> 00:07:16.959
+programming than another? Hey, that's a real good
+
+00:07:16.960 --> 00:07:22.359
+question. A lot of mine is with Emacs Lisp, and obviously
+
+00:07:22.360 --> 00:07:27.639
+that's a first-class citizen in Emacs. Go figure, right? So
+
+00:07:27.640 --> 00:07:33.519
+that one certainly works. A lot depends on the support in the
+
+00:07:33.520 --> 00:07:38.199
+OB version for the Babel work. Python is really well
+
+00:07:38.200 --> 00:07:45.599
+supported, and yeah, Emacs Lisp. Others, Shell, you know,
+
+00:07:45.600 --> 00:07:50.439
+it works, but it's hard to get both the values, the variables
+
+00:07:50.440 --> 00:07:53.479
+out of the environment variables into your thing. So most
+
+00:07:53.480 --> 00:07:58.959
+everything is just with the results of output. So, you know,
+
+00:07:58.960 --> 00:08:03.079
+some languages aren't quite as good as others for sure. I
+
+00:08:03.080 --> 00:08:06.879
+would love to see better support for more interesting
+
+00:08:06.880 --> 00:08:10.439
+languages, especially ones that are compiled. I've been
+
+00:08:10.440 --> 00:08:16.639
+dabbling with Rust and like, yeah, what can we do to have Rust
+
+00:08:16.640 --> 00:08:21.559
+more iterative as well? So...
+
+NOTE Q: Do you use inline org function calls and org babel library and such?
+
+00:08:21.560 --> 00:08:29.159
+Do you use inline org function calls in Org Babel library? So
+
+00:08:29.160 --> 00:08:33.599
+I used to do a lot of Org Babel libraries to kind of share
+
+00:08:33.600 --> 00:08:35.639
+things.
+
+00:08:35.640 --> 00:08:46.399
+Yeah. What I. But yeah. Sorry, I'm just kind of thinking
+
+00:08:46.400 --> 00:08:49.839
+through here. I've done a lot of it in the past. There were a
+
+00:08:49.840 --> 00:08:54.919
+lot of bugs in it. Oh, I don't know, eight years ago when I was
+
+00:08:54.920 --> 00:08:59.359
+playing with it. I bet things have improved a lot more and it
+
+00:08:59.360 --> 00:09:04.239
+probably saved me a lot more effort. Right now, most of the
+
+00:09:04.240 --> 00:09:08.639
+literate devops, the devops kind of stuff that I'm doing, is
+
+00:09:08.640 --> 00:09:14.079
+calling a lot of back-end programs and that sort of thing. So
+
+00:09:14.080 --> 00:09:19.359
+the Org Babel kind of has limited help in that regard. And as
+
+00:09:19.360 --> 00:09:23.999
+far as my Emacs work, well, it's just part of the session. So
+
+00:09:24.000 --> 00:09:26.759
+it's going to be available or not. So that hasn't been as
+
+00:09:26.760 --> 00:09:30.559
+helpful either. So it's kind of dropped off. But I bet if
+
+00:09:30.560 --> 00:09:34.519
+you're using something like, say, Python, it might be a lot
+
+00:09:34.520 --> 00:09:36.969
+more helpful.
+
+NOTE Q: How do you handle the cases where org markup may sometimes interfere with some of the code?
+
+00:09:36.970 --> 00:09:40.159
+Another question, how do you handle the cases
+
+00:09:40.160 --> 00:09:43.999
+where markup may sometimes interfere with some of the code
+
+00:09:44.000 --> 00:09:50.559
+in places where you can't escape? Oh, okay. All right. Let me
+
+00:09:50.560 --> 00:09:54.719
+see if I understand the question correctly.
+
+00:09:54.720 --> 00:10:01.759
+When I, like, when I'm making prose, and I'm talking about a
+
+00:10:01.760 --> 00:10:04.839
+function that I've written somewhere else, like, oh, I need
+
+00:10:04.840 --> 00:10:09.439
+to work on this, or this calls this, and yeah, I'll use the
+
+00:10:09.440 --> 00:10:14.839
+tildes or the equal signs on either side to make sure it's.
+
+00:10:14.840 --> 00:10:20.399
+that it's clear that it's code. In my xref, when I'm doing a
+
+00:10:20.400 --> 00:10:27.479
+thing-at-point so it can go look for that symbol, I do look for
+
+00:10:27.480 --> 00:10:31.919
+those things at the end and strip them off so that I can mark it
+
+00:10:31.920 --> 00:10:35.039
+up and still search and it's still okay. I'm not sure if
+
+00:10:35.040 --> 00:10:39.359
+that's the answer to the question. Yeah, clarifying. I'm
+
+00:10:39.360 --> 00:10:41.759
+making prose. I'm talking about a function I've written
+
+00:10:41.760 --> 00:10:47.319
+somewhere else. Yeah, yeah, yeah, that is what I'm talking
+
+00:10:47.320 --> 00:10:53.279
+about, where a function with tildes on either end, and if I do
+
+00:10:53.280 --> 00:10:57.359
+an xref search find for that symbol, it'll strip that off and
+
+00:10:57.360 --> 00:11:01.439
+then still look for the function name, so I can still mark it
+
+00:11:01.440 --> 00:11:06.219
+correctly.
+
+NOTE Q: You said at the start that literate didn't catch on in corporate DevOps - why not?
+
+00:11:06.220 --> 00:11:08.439
+You said at the start that literate didn't catch on in
+
+00:11:08.440 --> 00:11:14.719
+corporate devops, why not? You know,
+
+00:11:14.720 --> 00:11:18.919
+I guess the big thing is not everybody's using Emacs,
+
+00:11:18.920 --> 00:11:20.610
+and I don't think anybody would be
+
+00:11:20.611 --> 00:11:23.651
+doing literate programming if you didn't
+
+00:11:23.652 --> 00:11:25.199
+have Emacs. I mean, you got to have Org, or it just
+
+00:11:25.200 --> 00:11:29.420
+doesn't work that well, right?
+
+NOTE Q: Why not that full stack on Markdown?
+
+00:11:29.421 --> 00:11:36.359
+Why not that full stack on Markdown? Yeah, so I often do a lot
+
+00:11:36.360 --> 00:11:44.279
+of Markdown. I have got, so I've gone through and make my
+
+00:11:44.280 --> 00:11:49.039
+markdown look a lot like Org. So my headers are the same size
+
+00:11:49.040 --> 00:11:54.759
+as org. When I mark, do the triple back ticks, you know, and
+
+00:11:54.760 --> 00:11:59.279
+specify your language, we can now colorize that.
+
+00:11:59.280 --> 00:12:01.521
+So you can kind of now have it
+
+00:12:01.522 --> 00:12:05.679
+syntactically marked up. It would be
+
+00:12:05.680 --> 00:12:11.199
+interesting if we kind of expanded on Markdown so that I
+
+00:12:11.200 --> 00:12:14.479
+could do a C-c twice on it and run that code block.
+
+00:12:14.480 --> 00:12:22.119
+That's a real good idea. Maybe we should work on that.
+
+NOTE Corwin's aside on orgvm
+
+00:12:22.120 --> 00:12:28.039
+How does your management of TODOs, projects, and tasks
+
+00:12:28.040 --> 00:12:31.679
+interact with this literate mindset? I can't believe I'm
+
+00:12:31.680 --> 00:12:33.879
+going to do this, but Howard, I'm going to break right in
+
+00:12:33.880 --> 00:12:37.119
+there because I just can't. I need to talk about that. So this
+
+00:12:37.120 --> 00:12:41.799
+is I bought a domain. And really what I mean is I have this
+
+00:12:41.800 --> 00:12:45.599
+domain if somebody gets some work done in this area. I'm
+
+00:12:45.600 --> 00:12:48.839
+fascinated by this. That's mostly really actually my whole
+
+00:12:48.840 --> 00:12:52.599
+comment. But I just wanted to say, indeed, that is something
+
+00:12:52.600 --> 00:12:56.599
+maybe we should work on. Well said. I think the idea of having
+
+00:12:56.600 --> 00:12:59.559
+something that's full-stack baked around Emacs is pretty
+
+00:12:59.560 --> 00:13:03.079
+fascinating, just thinking about it as some command line
+
+00:13:03.080 --> 00:13:05.639
+tool that we can run to get some work done, and then there are
+
+00:13:05.640 --> 00:13:07.969
+documents involved, and as you know coming back
+
+00:13:07.970 --> 00:13:10.511
+to the kind of corporate
+
+00:13:10.512 --> 00:13:12.759
+sense of some of the things like there...
+
+00:13:12.760 --> 00:13:15.319
+that's a little dicey the same way a free software
+
+00:13:15.320 --> 00:13:19.038
+project raising money for itself is a little dicey.
+
+00:13:19.039 --> 00:13:21.720
+It might be a necessary way to get through
+
+00:13:21.721 --> 00:13:23.882
+certain kinds of things and like
+
+00:13:23.883 --> 00:13:26.559
+what the corporate side of the world brings to the table
+
+00:13:26.560 --> 00:13:31.989
+Here in my mind is that idea of I've got a formal process,
+
+00:13:31.990 --> 00:13:33.830
+like the process itself is an asset.
+
+00:13:33.831 --> 00:13:35.239
+If I were selling my company,
+
+00:13:35.240 --> 00:13:39.399
+that would be visibly of value to outside auditors that
+
+00:13:39.400 --> 00:13:43.257
+would help us arbitrate the sale. It's just empirical.
+
+00:13:43.258 --> 00:13:48.239
+Then tie that together with free software is maybe a little
+
+00:13:48.240 --> 00:13:53.159
+unstated ethos of doing our work in the open, and you might
+
+00:13:53.160 --> 00:13:58.759
+even deal with some of the ick factor. that you know that for a
+
+00:13:58.760 --> 00:14:05.119
+handler. Maybe so, but yeah, the downside to that is you'd
+
+00:14:05.120 --> 00:14:09.679
+still need to use Emacs to run through it, right? You know,
+
+00:14:09.680 --> 00:14:13.719
+for all those cool features, yes, it would be kind of a yet
+
+00:14:13.720 --> 00:14:17.519
+another killer app that we would have. So my domain name is
+
+00:14:17.520 --> 00:14:22.239
+orgvm, and my concept is really put org into a box, build a UI
+
+00:14:22.240 --> 00:14:25.119
+around it, it executes things that manipulate files that
+
+00:14:25.120 --> 00:14:30.239
+generate, let's say, And that's just one conceptual
+
+00:14:30.240 --> 00:14:34.359
+solution. But I really do think this is a super fun topic. And
+
+00:14:34.360 --> 00:14:37.479
+that's the space. I'm not sure my idea is that wonderful. I
+
+00:14:37.480 --> 00:14:42.439
+personally haven't soaked too many weekends into it. But I
+
+00:14:42.440 --> 00:14:45.159
+just love the way you're thinking in terms of, well, we
+
+00:14:45.160 --> 00:14:49.519
+should think more about that. Gosh, that's great to hear.
+
+NOTE Org and Markdown fragmentation
+
+00:14:49.520 --> 00:14:53.399
+Yeah. Yeah, I mean, just like the talk yesterday on the
+
+00:14:53.400 --> 00:14:57.639
+future of org, it's like, let's standardize it. Because,
+
+00:14:57.640 --> 00:15:03.239
+yeah, we don't want to have org fragmented like Markdown is.
+
+00:15:03.240 --> 00:15:06.839
+Markdown is terribly fragmented. You know, everybody's
+
+00:15:06.840 --> 00:15:10.199
+got different implementations. And Yeah, what I've ended
+
+00:15:10.200 --> 00:15:15.039
+up doing, I don't know if you've seen my blog, but I often I'm
+
+00:15:15.040 --> 00:15:19.119
+always just writing an org and talking to myself and writing
+
+00:15:19.120 --> 00:15:22.919
+questions and answers and essays come out of that. And then
+
+00:15:22.920 --> 00:15:26.319
+I'll put them on my web page and easy. It's easy to publish to a
+
+00:15:26.320 --> 00:15:30.079
+web page. Well, I do the same thing at work, but I need to have
+
+00:15:30.080 --> 00:15:33.319
+it marked down. I don't start Markdown though. I'm always
+
+00:15:33.320 --> 00:15:36.479
+starting an org because that, you know, I can really work
+
+00:15:36.480 --> 00:15:40.239
+through the problem space, you know, executing code blocks
+
+00:15:40.240 --> 00:15:44.759
+and making sure they work and all of that sort of stuff. And
+
+00:15:44.760 --> 00:15:47.959
+then I just export to Markdown and then go cleaned up a little
+
+00:15:47.960 --> 00:15:51.679
+bit if I need to. And that makes sense. But I am editing
+
+00:15:51.680 --> 00:15:55.999
+Markdown afterwards. So yeah, it would be nice. It would be
+
+00:15:56.000 --> 00:16:00.359
+nice. It's just, it's all done over here as opposed to, you
+
+00:16:00.360 --> 00:16:02.879
+know, Adding it over there, but yeah, let's think about
+
+00:16:02.880 --> 00:16:06.519
+every bit as much as as that. You know, I jumped in in the
+
+00:16:06.520 --> 00:16:09.959
+spirit of yes, let's think about it. You know, your, your
+
+00:16:09.960 --> 00:16:12.599
+comments about, let's think about the workflows that work
+
+00:16:12.600 --> 00:16:17.919
+for us. Wow. Does that hit home? Right? So great. Yeah. Yeah.
+
+NOTE Q: How does your management of "TODOs" (projects/tasks) interact with this literate mindset, any insightful things you do on that front?
+
+00:16:17.920 --> 00:16:25.279
+Yeah. Okay. So, uh, on to do's and that sort of thing, um. You
+
+00:16:25.280 --> 00:16:32.199
+know, a lot is the same as it was 10 years ago. At the beginning
+
+00:16:32.200 --> 00:16:33.319
+of every sprint,
+
+00:16:33.320 --> 00:16:38.279
+my company, we're using JIRA.
+
+00:16:38.280 --> 00:16:46.159
+All jokes are valid when I say that. But I just go to its web
+
+00:16:46.160 --> 00:16:49.639
+page. I copy all the tasks that I need to do that sprint. I
+
+00:16:49.640 --> 00:16:54.119
+wrote a function that takes that code and reformats it as a
+
+00:16:54.120 --> 00:16:58.199
+bunch of org tasks for me to do that I can just now have all my
+
+00:16:58.200 --> 00:17:02.799
+to-dos. And I start to work off of that from that point on. So
+
+00:17:02.800 --> 00:17:06.479
+it'll reference all the projects, and I do symlinks to every
+
+00:17:06.480 --> 00:17:12.479
+code base that I need to use. Most of the to-dos I put inside my
+
+00:17:12.480 --> 00:17:16.639
+code block is kind of just for me, just so I can remember it.
+
+00:17:16.640 --> 00:17:21.086
+Because the work that I have to do
+
+00:17:21.087 --> 00:17:24.119
+needs to be tracked a little more
+
+00:17:24.120 --> 00:17:30.629
+fine-grained, I guess. Yeah.
+
+NOTE Q: Do you LP also on larger projects?
+
+00:17:30.630 --> 00:17:33.439
+Do I use LP also on larger
+
+00:17:33.440 --> 00:17:37.199
+projects? More files and nested directories? Yeah, I
+
+00:17:37.200 --> 00:17:43.879
+haven't really done nested directories, but I can now. Now
+
+00:17:43.880 --> 00:17:49.839
+that I've now kind of realized that I have the feature that I
+
+00:17:49.840 --> 00:17:54.439
+demonstrated where I can just jump to any projects for a
+
+00:17:54.440 --> 00:17:59.559
+particular project, all the org files and all the headings
+
+00:17:59.560 --> 00:18:02.439
+show up, that works in nested directories.
+
+00:18:02.440 --> 00:18:10.999
+Oh, okay, yeah, somebody's typing it in. Yeah, so it's
+
+00:18:11.000 --> 00:18:15.359
+definitely possible. And I have now, since I recorded the
+
+00:18:15.360 --> 00:18:20.519
+talk, I've been busy typing in and trying to extract that out
+
+00:18:20.520 --> 00:18:24.479
+of my init file and make it into a package. I'm looking for a
+
+00:18:24.480 --> 00:18:30.239
+good name right now. I'm calling it jobs, jump to project
+
+00:18:30.240 --> 00:18:36.399
+sections. Anyway, but yeah, I think that's kind of a nice,
+
+00:18:36.400 --> 00:18:38.935
+useful feature.
+
+NOTE Q: Have you used Cucumber/Gherkin/BDD and do you think it has a strong overlap to what you talked about here?
+
+00:18:38.936 --> 00:18:41.919
+Have I used Cucumber, Gherkin, and other
+
+00:18:41.920 --> 00:18:44.479
+behavior-driven development?
+
+00:18:44.480 --> 00:18:50.719
+Have I, I mean, I do a lot of...
+
+00:18:50.720 --> 00:19:00.279
+more test driven. I do a lot of unit tests and I just put it
+
+00:19:00.280 --> 00:19:04.679
+right in my code base because if it's in my pros, I can just
+
+00:19:04.680 --> 00:19:07.199
+shove it in there. I've got the test right next to the
+
+00:19:07.200 --> 00:19:11.519
+function that I'm testing. I like that so I can kind of see it.
+
+00:19:11.520 --> 00:19:15.359
+I don't tangle it out to that same source file. I tangle it
+
+00:19:15.360 --> 00:19:19.119
+somewhere else if I tangle it at all because I don't need to. I
+
+00:19:19.120 --> 00:19:23.199
+can just, you know, C-c that and run it. I like that
+
+00:19:23.200 --> 00:19:24.879
+aspect of it.
+
+00:19:24.880 --> 00:19:29.319
+Yeah, just keeping things together. That's the big problem
+
+00:19:29.320 --> 00:19:32.479
+I have with a lot of tests is the tests are somewhere else.
+
+00:19:32.480 --> 00:19:35.319
+It's separate from the code. I like seeing it all together,
+
+00:19:35.320 --> 00:19:39.879
+but a lot depends on how extensive it is. So for a lot of the,
+
+00:19:39.880 --> 00:19:43.359
+you know, the tests that we end up doing where, you know,
+
+00:19:43.360 --> 00:19:47.759
+you've got to do a lot of mocks and a lot of startup and tear
+
+00:19:47.760 --> 00:19:51.839
+down, that kind of thing. Yeah, that doesn't help as much.
+
+00:19:51.840 --> 00:19:54.599
+And you probably have to kind of go old school on that.
+
+NOTE Q: What granularity are you looking for re your org files and contents, with respect to a codebase that it tangles to, or in non-coding contexts?
+
+00:19:54.600 --> 00:20:01.359
+What granularity I'm looking for with my org files and my
+
+00:20:01.360 --> 00:20:03.634
+subcontent? That's a real good question
+
+00:20:03.635 --> 00:20:05.255
+and really subjective.
+
+00:20:05.256 --> 00:20:13.159
+I change that over time. I begin by just dumping.
+
+00:20:13.160 --> 00:20:16.378
+I just dump everything in my head into a file
+
+00:20:16.379 --> 00:20:19.679
+and then I go through and start to refine it.
+
+00:20:19.680 --> 00:20:26.159
+My goal at one point was to have an Emacs config file that was
+
+00:20:26.160 --> 00:20:29.919
+really small and simple. And boy, that just doesn't happen.
+
+00:20:29.920 --> 00:20:35.759
+It's just too fun to add things and try new ideas. And I found
+
+00:20:35.760 --> 00:20:41.839
+my files were just littered with good ideas that were
+
+00:20:41.840 --> 00:20:47.119
+half-baked and not finished. And so it's like, oh, I need to
+
+00:20:47.120 --> 00:20:49.959
+extract these and put them into different files so I can keep
+
+00:20:49.960 --> 00:20:54.359
+it clean. And so I think it's like with any code base, you're
+
+00:20:54.360 --> 00:20:58.999
+just going to keep refactoring. It's an iterative process.
+
+00:20:59.000 --> 00:21:04.199
+So having the ability to, like with an Org file, where you can
+
+00:21:04.200 --> 00:21:09.159
+archive a subtree. Okay, this idea didn't pan out. Archive
+
+00:21:09.160 --> 00:21:13.519
+it. I can come back to it later. Being able to just kind of
+
+00:21:13.520 --> 00:21:20.399
+shove it somewhere else is really a nice little feature. All
+
+00:21:20.400 --> 00:21:25.079
+right. Not a question, just a comment. We need more of your
+
+00:21:25.080 --> 00:21:29.239
+insightful posts and videos. Oh, thanks.
+
+00:21:29.240 --> 00:21:35.519
+I appreciate it. Yes, it's been a fun journey. And I think we
+
+00:21:35.520 --> 00:21:38.519
+are coming up on our time, actually. So that is just an
+
+00:21:38.520 --> 00:21:41.919
+amazing quiz. And it helps me from manipulating, as I said,
+
+00:21:41.920 --> 00:21:46.959
+or as I put it earlier, like my chance as an organizer, or not
+
+00:21:46.960 --> 00:21:50.679
+manipulating, monopolizing my chance as an organizer to
+
+00:21:50.680 --> 00:21:53.439
+just get a chance to pick your brain on all kinds of things,
+
+00:21:53.440 --> 00:21:58.959
+which is too kind, too kind. Appreciate it. It's been fun.
+
+00:21:58.960 --> 00:22:04.679
+All right, I'll try answering more questions online as
+
+00:22:04.680 --> 00:22:07.959
+well. All right, talk to you later. And we appreciate your
+
+00:22:07.960 --> 00:22:10.399
+being in a huge resource that you are to the community.
+
+00:22:10.400 --> 00:22:14.199
+Thanks to everyone for tuning in and we'll be coming over to
+
+00:22:14.200 --> 00:22:18.239
+our next talk in just a moment here. And so bear with us
+
+00:22:18.240 --> 00:22:23.239
+through the transition as we slip into, I think it's our, is
+
+00:22:23.240 --> 00:22:26.919
+that our penultimate or our ultimate talk? We have one or two
+
+00:22:26.920 --> 00:22:30.119
+left, I'm not sure. I think we've got a couple of talks left.
+
+00:22:30.120 --> 00:22:34.079
+I'm back. Thank you, Howard. And we will be moving to the next
+
+00:22:34.080 --> 00:22:37.159
+talk in about six minutes. So if you need to grab some coffee,
+
+00:22:37.160 --> 00:22:42.119
+some tea, use the time wisely. And to confirm, we will have
+
+00:22:42.120 --> 00:22:44.319
+one, two, three more talks this afternoon. So there's still
+
+00:22:44.320 --> 00:22:48.160
+plenty to go around. See you in a bit, folks.
diff --git a/2024/captions/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt b/2024/captions/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt
new file mode 100644
index 00000000..812e174f
--- /dev/null
+++ b/2024/captions/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt
@@ -0,0 +1,574 @@
+WEBVTT
+
+NOTE I would love to see the GUI interacting with the scheduling stuff
+
+00:00:00.000 --> 00:00:01.999
+...volume of code I've written that.
+
+00:00:02.000 --> 00:00:06.319
+I will do a follow-up video with the kind of synchronized
+
+00:00:06.320 --> 00:00:12.519
+elisp-mode stuff because that is the point of the talk. Sorry
+
+00:00:12.520 --> 00:00:38.599
+for talking over you. Please continue.
+
+00:00:38.600 --> 00:00:41.879
+sachac is saying (car kill-ring).
+
+00:00:41.880 --> 00:00:57.559
+Oh, yeah, so this question, they're just asking in the
+
+NOTE Q: Or any other GUI stuff you've worked on in the past that you'd be comfortable showing?
+
+00:00:57.560 --> 00:01:01.319
+Scratchpad, is there any other GUI stuff I've worked on in
+
+00:01:01.320 --> 00:01:07.319
+the past? I guess my Toobnix channel, I was doing a bunch of
+
+00:01:07.320 --> 00:01:12.639
+that, so just Common Lisp development, homed around
+
+00:01:12.640 --> 00:01:16.359
+McCLIM. What is my Toobnix channel? If you find a Toobnix
+
+00:01:16.360 --> 00:01:21.519
+channel and it has a name like Screwtape, that'll
+
+00:01:21.520 --> 00:01:28.679
+presumably be that. So Toobnix is SDF.org's PeerTube.
+
+00:01:28.680 --> 00:01:35.719
+Nope, not that one.
+
+00:01:35.720 --> 00:01:41.319
+Sacha's got it here in the IRC. I think it's
+
+00:01:41.320 --> 00:01:47.959
+screwtape_channels/videos. Yeah. So the
+
+00:01:47.960 --> 00:01:52.639
+author of mastodon.el, which hopefully lots of us are using
+
+00:01:52.640 --> 00:01:58.079
+for our mastodoning, I used the name Screwtape as my
+
+00:01:58.080 --> 00:02:01.519
+username, and I think Wintermute said some kind of
+
+00:02:01.520 --> 00:02:06.119
+exasperated Emacs theme. You know what? Screw Lisp. Then
+
+00:02:06.120 --> 00:02:09.719
+Mousebot of mastodon.el rechristened me screwlisp. So
+
+00:02:09.720 --> 00:02:12.319
+sometimes you see my name written one way, and sometimes you
+
+00:02:12.320 --> 00:02:15.039
+see my name written the other way. I quite like it. A lot of
+
+00:02:15.040 --> 00:02:19.319
+people thought that I was quitting Emacs when I changed my
+
+00:02:19.320 --> 00:02:23.399
+name to be mainly screwlisp. I love it. That's a great story.
+
+00:02:23.400 --> 00:02:27.319
+Thank you. It's so great to have a name from somebody else. I
+
+00:02:27.320 --> 00:02:29.999
+was just thrilled. So thank you, mousebot. Everyone use
+
+00:02:30.000 --> 00:02:35.199
+mousebot's mode. Welcome to Green Guest. I'm with you
+
+00:02:35.200 --> 00:02:38.399
+there. All my kids want to choose their own names, and I'm
+
+00:02:38.400 --> 00:02:41.359
+just like, more power to you. I'm very glad that my parents
+
+00:02:41.360 --> 00:02:45.479
+picked mine for me, and that's one thing I never had to think
+
+00:02:45.480 --> 00:02:50.439
+about. All right, so do we have to cut short so I can go back to
+
+00:02:50.440 --> 00:02:55.839
+watching MPV? of the other stuff. We don't have to, but you
+
+00:02:55.840 --> 00:02:58.999
+are not obligated to sit here one moment more answering our
+
+00:02:59.000 --> 00:03:02.039
+questions than, you know, but of course, you know, we've
+
+00:03:02.040 --> 00:03:07.399
+talked a little before, but I, so I have a pile of questions.
+
+NOTE Lispy Gopher Show
+
+00:03:07.400 --> 00:03:11.159
+You promised to come on the Lispy Gopher show. That's right.
+
+00:03:11.160 --> 00:03:13.239
+I have so much to say. I could, I could, I could come right on
+
+00:03:13.240 --> 00:03:16.039
+your show and just talk to you there, but I'm just curious.
+
+00:03:16.040 --> 00:03:18.559
+Talk to us a little bit about that. Tell us more about the
+
+00:03:18.560 --> 00:03:23.799
+program. Oh, the Lispy Gopher climate. What do we do? So it's
+
+00:03:23.800 --> 00:03:29.039
+hosted by the Superdimensional Fortress, SDF.org, who are
+
+00:03:29.040 --> 00:03:32.919
+a public access Unix mainly. They do their own little radio
+
+00:03:32.920 --> 00:03:38.359
+thing as well. And so I guess for a few years now, I do a weekly
+
+00:03:38.360 --> 00:03:45.559
+show every zero hundred hours UTC. We always start off with
+
+00:03:45.560 --> 00:03:49.119
+kind of climate crisis topics, because that is a climate
+
+00:03:49.120 --> 00:03:54.439
+crisis topic. But there's a sort of joy in that, because Kent
+
+00:03:54.440 --> 00:03:58.279
+Pitman, who Kent Pitman you're familiar with from the
+
+00:03:58.280 --> 00:04:03.599
+Pit Manual and so forth, writes a kind of climate crisis
+
+00:04:03.600 --> 00:04:07.599
+haiku, which we kind of lead out with, and we kind of go into
+
+00:04:07.600 --> 00:04:10.239
+the discussions there. Then obviously the show has- It's a
+
+00:04:10.240 --> 00:04:16.959
+highlight, not gonna lie. Yeah, yeah, I love it. I try and do
+
+00:04:16.960 --> 00:04:19.479
+these dramatic readings, but it's often stumble over.
+
+00:04:19.480 --> 00:04:23.719
+Actually, when Sacha was on, there was an auxiliary poem
+
+00:04:23.720 --> 00:04:27.959
+that happened, which was pretty interesting, too. What was
+
+00:04:27.960 --> 00:04:31.319
+I going to say? Then, I mean, the way we got named the Lispy
+
+00:04:31.320 --> 00:04:33.839
+Gopher Climate was because, broadly speaking, I like to
+
+00:04:33.840 --> 00:04:37.959
+talk about kind of lisp, and most of my writing for a long time
+
+00:04:37.960 --> 00:04:41.919
+was on the Gopher. Though I accidentally locked myself out
+
+00:04:41.920 --> 00:04:45.679
+of the Gopher recently, so there hasn't been an update there
+
+00:04:45.680 --> 00:04:52.159
+for a while. I'm kind of around the IRCs and Mastodon quite a
+
+00:04:52.160 --> 00:04:56.759
+bit now. Lisp, I like to use the term Lisp inclusively,
+
+00:04:56.760 --> 00:04:59.719
+basically. Obviously this talk, I was making the point that
+
+00:04:59.720 --> 00:05:05.519
+I just could go through a 1978 paper written in, and so pre-D
+
+00:05:05.520 --> 00:05:10.279
+machine inter-LISP, right? And it basically just worked in
+
+00:05:10.280 --> 00:05:13.439
+modern Emacs LISP. Somebody was pointing out to me, who
+
+00:05:13.440 --> 00:05:20.119
+pointed out where I was like, I don't know what PUT is in,
+
+00:05:20.120 --> 00:05:23.039
+in Emacs Lisp, and somebody was saying definitely there's
+
+00:05:23.040 --> 00:05:28.319
+put in Emacs Lisp. So I'm going to come back to the recording
+
+00:05:28.320 --> 00:05:31.199
+of this talk, and I'm going to just pinpoint this moment the
+
+00:05:31.200 --> 00:05:34.519
+next time somebody says, we need to modernize Lisp. I'm
+
+00:05:34.520 --> 00:05:37.799
+going to say, no, no, no, this is modern Emacs Lisp. You see,
+
+00:05:37.800 --> 00:05:42.359
+here's people talking about, yeah, I'm just tripping over,
+
+00:05:42.360 --> 00:05:45.519
+not tripping over, I'm amused by your phrase there, but
+
+00:05:45.520 --> 00:05:48.599
+that's exactly how I see it too. And I take your point utterly
+
+00:05:48.600 --> 00:05:53.359
+that, you know, this tradition of Lisp of carrying forward
+
+00:05:53.360 --> 00:05:57.799
+ideas. And, you know, we, you know, especially in Emacs, it
+
+00:05:57.800 --> 00:06:00.799
+really is like a brain trust, right? Buckets of knowledge of
+
+00:06:00.800 --> 00:06:04.399
+how to get some sort of work done, or, you know, how to work
+
+00:06:04.400 --> 00:06:08.919
+with some kind of code or some kind of data. Yeah, but I had a
+
+00:06:08.920 --> 00:06:12.079
+kind of, interesting experience with some great friends of
+
+00:06:12.080 --> 00:06:15.799
+mine, whom I love dearly. Vidak, if you're watching this,
+
+00:06:15.800 --> 00:06:21.559
+I'm gossiping about you people over in Australia there.
+
+NOTE Lisp already did it
+
+00:06:21.560 --> 00:06:25.439
+Where people come to you with really exciting ideas that
+
+00:06:25.440 --> 00:06:30.359
+seem to be very cutting edge and like, you know, very much the
+
+00:06:30.360 --> 00:06:33.559
+current talk of the day, like you can hear in other
+
+00:06:33.560 --> 00:06:36.119
+programming languages, and they're telling you how they
+
+00:06:36.120 --> 00:06:39.639
+think you might be able to do this in Lisp. And you have to say,
+
+00:06:39.640 --> 00:06:43.719
+well, you know, if we go back to the late 70s, where the Lisp
+
+00:06:43.720 --> 00:06:47.959
+community really kind of pioneered this topic already.
+
+00:06:47.960 --> 00:06:51.399
+Here's how we did it in the late 70s. And there's actually
+
+00:06:51.400 --> 00:06:56.439
+quite a kind of awkward, just kind of disjunction there. I
+
+00:06:56.440 --> 00:06:59.079
+mean, that's the thing, right? Where use of Emacs in
+
+00:06:59.080 --> 00:07:03.759
+particular use of Lisp in general will unravel somebody's
+
+00:07:03.760 --> 00:07:06.319
+whole big bag of wind that they've built up around why
+
+00:07:06.320 --> 00:07:10.439
+something has to be rebuilt and well right but that's just a
+
+00:07:10.440 --> 00:07:13.359
+function you know it's data so we'll probably just think
+
+00:07:13.360 --> 00:07:16.679
+about that as I don't know sitting in a variable.
+
+00:07:16.680 --> 00:07:21.359
+Oh, so that whole problem, like the elegance of a solution
+
+00:07:21.360 --> 00:07:25.959
+can entirely fall away once you fall back to an earlier way of
+
+00:07:25.960 --> 00:07:29.479
+thinking about it. And then, you know, look at the pieces
+
+00:07:29.480 --> 00:07:32.039
+you've carried forward the idea of the declarative
+
+00:07:32.040 --> 00:07:37.119
+language, right? Declaring user experience. Yeah. Once
+
+00:07:37.120 --> 00:07:41.999
+again, tangentially to, um, to the actual talk we've just
+
+00:07:42.000 --> 00:07:47.479
+watched, which I will try and follow up on as well. But one
+
+00:07:47.480 --> 00:07:51.919
+example was After watching me use the Common Lisp loop
+
+00:07:51.920 --> 00:07:55.999
+facility so much, Kent pointed out to me, hey, you know, why
+
+00:07:56.000 --> 00:08:01.719
+don't you try using Richard Waters' series iteration
+
+00:08:01.720 --> 00:08:05.799
+stuff, which was kind of lazy evaluation of series that
+
+00:08:05.800 --> 00:08:09.119
+Waters did. And so after criticizing Haskell for a long
+
+00:08:09.120 --> 00:08:12.879
+time, me kind of saying, hey, you know, I don't think this
+
+00:08:12.880 --> 00:08:16.519
+lazy evaluation is important. then Kent pointed out to me
+
+00:08:16.520 --> 00:08:22.399
+that, for example, the series, like what is it? AIM 1082 or
+
+00:08:22.400 --> 00:08:28.799
+something published in 1989 was Lazy Evaluation in LISP
+
+00:08:28.800 --> 00:08:33.639
+with series. And so I thought, well, once I realized that
+
+00:08:33.640 --> 00:08:37.879
+this was part of kind of almost classic LISP history to have
+
+00:08:37.880 --> 00:08:43.679
+lazy evaluation, I adopted series, I kind of had to rethink
+
+00:08:43.680 --> 00:08:47.799
+my LISP worldview to realize it did already include lazy
+
+00:08:47.800 --> 00:08:51.679
+evaluation, which I attributed to the late 80s. And then
+
+00:08:51.680 --> 00:08:55.239
+when I actually read a little bit further, lazy evaluation,
+
+00:08:55.240 --> 00:08:59.159
+depending on your research group, has been, was kind of
+
+00:08:59.160 --> 00:09:02.719
+established in the late 70s by Waters again, actually.
+
+00:09:02.720 --> 00:09:05.719
+Sorry for the anecdote, just kind of the interesting
+
+00:09:05.720 --> 00:09:11.159
+medley. Not at all.
+
+00:09:11.160 --> 00:09:17.919
+Yeah.
+
+00:09:17.920 --> 00:09:25.639
+Ellis over in the IRC has come up with a good slime about
+
+00:09:25.640 --> 00:09:33.339
+async. Oh, I see. So yeah,
+
+00:09:33.340 --> 00:09:38.199
+I guess that would work. I have to try that. OK, so you're just
+
+00:09:38.200 --> 00:09:42.679
+getting me reading this. They have had a stab at resolving
+
+00:09:42.680 --> 00:09:49.279
+our asynchronous calls thing more elegantly than me. Left
+
+00:09:49.280 --> 00:09:53.879
+as an exercise to the listener. It's one of the big virtues of
+
+00:09:53.880 --> 00:09:56.799
+something like a convention. It'll bring us together with
+
+00:09:56.800 --> 00:10:01.079
+other people that can kind of see past the boats in our eyes.
+
+00:10:01.080 --> 00:10:06.239
+Oh yeah, that's easy for me. Yeah, definitely. Hearing
+
+00:10:06.240 --> 00:10:10.279
+somebody else's kind of thought process from you and from
+
+00:10:10.280 --> 00:10:16.639
+just the past speaker who was Robin, I think, because this
+
+00:10:16.640 --> 00:10:19.519
+was in the morning for me, so I just kind of got up and caught
+
+00:10:19.520 --> 00:10:25.919
+some of Robin. Yeah, it's so great, kind of vicariously
+
+00:10:25.920 --> 00:10:30.559
+experiencing somebody else's Emacs usage and how it kind of
+
+00:10:30.560 --> 00:10:34.799
+subtly backs onto their own development flows. Yeah, so I
+
+00:10:34.800 --> 00:10:37.319
+really appreciate this talk. I'm constantly cribbing from
+
+00:10:37.320 --> 00:10:40.519
+everyone I meet. And yeah, this talk has been eye-popping,
+
+00:10:40.520 --> 00:10:43.599
+just watching you casually navigate Emacs, actually.
+
+NOTE IELM
+
+00:10:43.600 --> 00:10:51.519
+Yeah, it's cool. Yeah, I enjoyed discovering IELM mode.
+
+00:10:51.520 --> 00:10:54.959
+That was going to be my other question for people. Are there
+
+00:10:54.960 --> 00:10:59.439
+any IELM Power users around? I could really go for an
+
+00:10:59.440 --> 00:11:05.679
+EmacsConf talk on IELM mode. Aha, yes. Very good. Note
+
+00:11:05.680 --> 00:11:12.199
+taken. Yeah. So, just thoughts for next year? Oh, well, I
+
+00:11:12.200 --> 00:11:15.999
+kind of want to get back onto the MPV, but thank you so much for
+
+00:11:16.000 --> 00:11:22.039
+this. You are cmak in the IRC, right? I am Corwin, same as you.
+
+00:11:22.040 --> 00:11:26.159
+So you're Corwin. There's also cmak, and I guess there are a
+
+00:11:26.160 --> 00:11:28.719
+few other people. Sorry that I'm tripping over the
+
+00:11:28.720 --> 00:11:31.359
+different people here. But you're going to come on the Lispy
+
+00:11:31.360 --> 00:11:35.719
+Gopher Climate later. Sure, I'm happy to. That sounds
+
+00:11:35.720 --> 00:11:38.479
+like fun. I always got a million things to talk about me or an
+
+00:11:38.480 --> 00:11:42.399
+opinion on everything. But of course, my favorite thing to
+
+00:11:42.400 --> 00:11:48.359
+talk about is just the huge thanks that, you know, sharing
+
+00:11:48.360 --> 00:11:53.639
+that, the generosity or the, you know, my appreciation for
+
+00:11:53.640 --> 00:11:57.159
+you and all the other members of the Emacs community that
+
+00:11:57.160 --> 00:12:00.519
+create talks like this and make the conference and the rest
+
+00:12:00.520 --> 00:12:04.839
+of the community so rich. Well, yeah, and thank you for your
+
+00:12:04.840 --> 00:12:09.759
+work. Sacha is just saying over in Lambda that when I say I
+
+00:12:09.760 --> 00:12:13.039
+want someone to give the talk, this means I'm volunteering
+
+00:12:13.040 --> 00:12:17.079
+to give the IELM talk. That's what I wrote down. Oh, yeah. I've
+
+00:12:17.080 --> 00:12:19.479
+been working for Sacha. I mean, helping Sacha with this
+
+00:12:19.480 --> 00:12:23.919
+conference for years. I know. No, I'm kidding. That would be
+
+00:12:23.920 --> 00:12:28.559
+cool. I will absolutely go to your ielm talk. I make a lot of use
+
+00:12:28.560 --> 00:12:32.879
+of that and could do more. Yeah, we're meant to suddenly
+
+NOTE Q: Are we going to get a McCLIM LambdaMOO client?
+
+00:12:32.880 --> 00:12:36.639
+stop. But a guest over in Lambda also said, are we going to get
+
+00:12:36.640 --> 00:12:41.239
+a McCLIM LambdaMOO client? And I actually had all my kind of
+
+00:12:41.240 --> 00:12:44.519
+Moo stuff I'd written in Common Lisp, which I was thinking of
+
+00:12:44.520 --> 00:12:47.639
+just kind of jettisoning. But you're right, I should make
+
+00:12:47.640 --> 00:12:51.479
+that into a client for Common Lisp. Anyway, I'm going to hang
+
+00:12:51.480 --> 00:12:55.839
+up so I can keep watching the conference sounds good so we'll
+
+00:12:55.840 --> 00:12:58.399
+just cut away with the stream throw some music and a
+
+00:12:58.400 --> 00:13:02.799
+countdown uh back on give us just a second to make that on bbb
+
+00:13:02.800 --> 00:13:05.359
+and then i'll give you the big thumbs up thank you thank you
+
+00:13:05.360 --> 00:13:08.359
+recording here we'll get it all posted up uh right next to
+
+00:13:08.360 --> 00:13:09.839
+your awesome pre-recorded talk
+
+00:13:09.840 --> 00:13:17.159
+thanks again like it's been fun chatting and uh Yeah,
+
+00:13:17.160 --> 00:13:20.799
+definitely seeing you around in the conference channel off
+
+00:13:20.800 --> 00:13:23.879
+off season. So to speak, you're like, you're totally
+
+00:13:23.880 --> 00:13:26.679
+welcome to use our chat like it to the extent you need to IRC
+
+00:13:26.680 --> 00:13:29.039
+channel that's been working on great for me. It's fun to fun
+
+00:13:29.040 --> 00:13:30.639
+to see it.
+
+00:13:30.640 --> 00:13:39.319
+All right, I'm gonna hang up this thing. All right. Happy day
+
+00:13:39.320 --> 00:13:44.119
+flowy. Sorry, I mean, screwlisp. Oh my gosh, I have
+
+00:13:44.120 --> 00:13:54.360
+conference brain. Bye bye. All right, later, later.
diff --git a/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt
new file mode 100644
index 00000000..a32b0da2
--- /dev/null
+++ b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt
@@ -0,0 +1,1294 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:05.039
+And I believe we are live. Okay. Hi again, Ihor. How are you
+
+00:00:05.040 --> 00:00:09.359
+doing? Ready to answer questions, right? Yes. Ready to
+
+00:00:09.360 --> 00:00:13.039
+answer questions and all this. I mean, ready for
+
+00:00:13.040 --> 00:00:14.999
+everything. It's not just a question, it's the maintenance
+
+00:00:15.000 --> 00:00:21.679
+that is now lying in front of you. So... Oh, that's not the end
+
+00:00:21.680 --> 00:00:25.159
+of the day. I mean, it's a rare thing indeed, because you
+
+00:00:25.160 --> 00:00:27.439
+might not be able to see it on BBB. I'm checking in, but we've
+
+00:00:27.440 --> 00:00:30.599
+got Ihor, obviously, but we also have Bastien and also
+
+00:00:30.600 --> 00:00:34.199
+Carsten in the room. So, we have three maintainers of Org
+
+00:00:34.200 --> 00:00:36.119
+Mode right there in the room to answer all your questions.
+
+00:00:36.120 --> 00:00:40.759
+So, it's a rare occasion that I invite all of you to seize the
+
+00:00:40.760 --> 00:00:44.679
+day on this. Ihor, do you have anything maybe to say before we
+
+00:00:44.680 --> 00:00:49.599
+start moving into the questions? Well, I hope that I said
+
+00:00:49.600 --> 00:00:51.759
+everything I wanted. Hello, Bastien. during the
+
+00:00:51.760 --> 00:00:55.519
+presentation. Well, actually, I can say a lot more, like
+
+00:00:55.520 --> 00:01:01.439
+infinitely, because when I first recorded it, it was like
+
+00:01:01.440 --> 00:01:05.999
+one hour. So yeah. I mean, you did a, I'll just let you know,
+
+00:01:06.000 --> 00:01:08.359
+you did a fine job condensing everything in just 40 minutes.
+
+00:01:08.360 --> 00:01:14.079
+So congratulations on this. Yeah, it's, yeah, usually one
+
+00:01:14.080 --> 00:01:18.039
+minute per slide is the best way. Otherwise, it's something
+
+00:01:18.040 --> 00:01:22.319
+that's wrong with this presentation. Right, so just moving
+
+00:01:22.320 --> 00:01:25.519
+into the question, and by the way we've got 20 minutes, we
+
+00:01:25.520 --> 00:01:27.799
+might be able to chat a little more if Bastien wants to say
+
+00:01:27.800 --> 00:01:29.919
+something as well and Carsten, you know, feel free to
+
+00:01:29.920 --> 00:01:33.119
+intervene at any point during the questions if you've got
+
+00:01:33.120 --> 00:01:35.279
+anything to contribute or our voice will just show the
+
+00:01:35.280 --> 00:01:37.879
+breeze later on. So the first question is relating to
+
+00:01:37.880 --> 00:01:41.479
+something you said about 10 minutes 34 that might speak more
+
+00:01:41.480 --> 00:01:42.685
+to you than to me.
+
+NOTE Q: Is the track-changes item about the org-element parser?
+
+00:01:42.686 --> 00:01:45.159
+Is the track changes item about the org
+
+00:01:45.160 --> 00:01:51.519
+element parser Yes, the track changes is a new library that
+
+00:01:51.520 --> 00:01:58.959
+helps to receive changes in buffers incrementally. So like
+
+00:01:58.960 --> 00:02:03.079
+you can, it has API where you can request what changes
+
+00:02:03.080 --> 00:02:07.999
+happened in buffer since last request, chunk by chunk. And
+
+00:02:08.000 --> 00:02:14.119
+in org mode, in org element parser, we do pretty much the same
+
+00:02:14.120 --> 00:02:19.879
+thing, but using timers. So this track changes library
+
+00:02:19.880 --> 00:02:25.159
+should improve things, first, because it's a bit faster,
+
+00:02:25.160 --> 00:02:29.279
+because we don't need to conjure every single change, and
+
+00:02:29.280 --> 00:02:32.119
+track changes can agglomerate changes into chunks much
+
+00:02:32.120 --> 00:02:36.039
+more efficiently. And second, it's a built-in library, so
+
+00:02:36.040 --> 00:02:40.439
+it's a good idea to use built-in library when there is such an
+
+00:02:40.440 --> 00:02:45.879
+option, instead of running out our own implementation.
+
+00:02:45.880 --> 00:02:49.399
+Definitely. Moving on to the second question, although I'm
+
+00:02:49.400 --> 00:02:52.664
+not sure it refers that much to what you can do.
+
+NOTE Q: Could you please keep IRC alive? I prefer it to Matrix
+
+00:02:52.665 --> 00:02:57.759
+Could you please keep IRC alive? And I prefer it to Matrix. I mean,
+
+00:02:57.760 --> 00:03:03.239
+you did talk about IRC, right? But did we talk about phasing
+
+00:03:03.240 --> 00:03:08.799
+it out? So I try to be live on IRC, but I use mobile client for
+
+00:03:08.800 --> 00:03:12.999
+IRC to keep connected. So I usually connected, I usually see
+
+00:03:13.000 --> 00:03:15.519
+messages, except certain times when I don't have mobile
+
+00:03:15.520 --> 00:03:19.239
+internet. Right. Okay. That's why many people will tell
+
+00:03:19.240 --> 00:03:23.399
+you, you need a bouncer and all this, but the IRC crowd is very
+
+00:03:23.400 --> 00:03:33.679
+loud. I just don't know a good bouncer. I don't have a good
+
+00:03:33.680 --> 00:03:36.399
+setup for a bouncer. Okay.
+
+00:03:36.400 --> 00:03:41.239
+Personally, I use WeChat usually to stay connected to
+
+00:03:41.240 --> 00:03:44.119
+email. It's obviously a client for IRC, but it also allows
+
+00:03:44.120 --> 00:03:47.959
+you to, you know, you can keep it as a bouncer, but it's not in
+
+00:03:47.960 --> 00:03:54.159
+Emacs. It is. I don't have a computer that is running 24
+
+00:03:54.160 --> 00:03:56.839
+hours, so. I mean, that's the thing. I do have a server to run
+
+00:03:56.840 --> 00:04:02.239
+it off. All right, moving on to the third question. That is
+
+00:04:02.240 --> 00:04:06.559
+what is running 24 hours. Right. Okay. All right. Moving on
+
+00:04:06.560 --> 00:04:07.987
+to the third question.
+
+NOTE Q: Is there any plan for adding support for other modalities of notes like handwritten,  audio, etc.?
+
+00:04:07.988 --> 00:04:09.519
+Is there any plan for adding support
+
+00:04:09.520 --> 00:04:11.959
+for other modalities of note-like, handwritten, audio,
+
+00:04:11.960 --> 00:04:14.919
+and et cetera? Would that be interesting to the community?
+
+00:04:14.920 --> 00:04:20.319
+It will definitely be useful for me. I didn't. Okay. So this
+
+00:04:20.320 --> 00:04:25.399
+is not the idea I hear frequently. So there's no plan for such
+
+00:04:25.400 --> 00:04:29.959
+thing. Modalities of notes like handwritten audio. I think
+
+00:04:29.960 --> 00:04:34.519
+John Kitchin did some handwritten note.
+
+00:04:34.520 --> 00:04:46.119
+John Kitchin. Yeah. And for audio, I think as well. I. So
+
+00:04:46.120 --> 00:04:48.999
+basically you can use attachments, you can use images to
+
+00:04:49.000 --> 00:04:54.279
+paste you. I think John Kitchin even use it to automatically
+
+00:04:54.280 --> 00:04:58.519
+recognize notes.
+
+00:04:58.520 --> 00:05:05.359
+I think the previous speaker was talking about a whisper to
+
+00:05:05.360 --> 00:05:10.399
+recognize voice. Right.
+
+00:05:10.400 --> 00:05:13.959
+Otherwise there is no special workflow and I'm not even sure
+
+00:05:13.960 --> 00:05:16.919
+what we can do to support this workflow specifically.
+
+00:05:16.920 --> 00:05:22.759
+Yeah, it definitely feels like Org Mode is a good format for
+
+00:05:22.760 --> 00:05:25.719
+textual stuff, and a lot of things are textual. I mean,
+
+00:05:25.720 --> 00:05:29.679
+that's the whole philosophy behind Emacs. But when it comes
+
+00:05:29.680 --> 00:05:34.439
+to voice, it feels like it's... I think the person asking the
+
+00:05:34.440 --> 00:05:36.799
+question probably needs to specify what they mean by voice.
+
+00:05:36.800 --> 00:05:40.279
+Is it just raw note-taking, as Blaine mentioned in a
+
+00:05:40.280 --> 00:05:43.199
+previous talk, or is it something else? Feel free to add up to
+
+00:05:43.200 --> 00:05:46.759
+the question and we'll return to it later on.
+
+00:05:46.760 --> 00:05:51.919
+I think this is kind of related to drag and drop. I think you
+
+00:05:51.920 --> 00:05:57.279
+would like to be able to have an audio file and drop it in and
+
+00:05:57.280 --> 00:06:00.879
+have it translated to text. I think that would be an
+
+00:06:00.880 --> 00:06:03.959
+interesting API to do this, right? So that you can integrate
+
+00:06:03.960 --> 00:06:07.599
+it into something like drag and drop. I think I'm going to
+
+00:06:07.600 --> 00:06:12.079
+talk with supporters in since overnight. So we have, I
+
+00:06:12.080 --> 00:06:14.959
+believe what constant is alluring to is the fact that not
+
+00:06:14.960 --> 00:06:17.679
+just pictures but imagine if you were bringing in an audio
+
+00:06:17.680 --> 00:06:20.399
+file maybe you could, I mean I'm not sure it would work with
+
+00:06:20.400 --> 00:06:24.279
+whisper but. transcribing it in a way and inserting it as
+
+00:06:24.280 --> 00:06:27.079
+text. Although I'm not sure how we would be able to do this,
+
+00:06:27.080 --> 00:06:30.159
+but it's an interesting idea though. It can work if you write
+
+00:06:30.160 --> 00:06:35.359
+some kind of automatic speech recognition. It's not really
+
+00:06:35.360 --> 00:06:39.479
+a job for work. If you have some library that can transform
+
+00:06:39.480 --> 00:06:43.959
+audio to text or transform image to text in Elixir, then we
+
+00:06:43.960 --> 00:06:47.599
+can happily use that library. Definitely, but I can tell you
+
+00:06:47.600 --> 00:06:50.119
+that Whisper is not something that works very quickly. We do
+
+00:06:50.120 --> 00:06:53.479
+use Whisper AI to transcribe some of the talks that we
+
+00:06:53.480 --> 00:06:56.879
+broadcast during EmacsConf, and I can tell you it takes a
+
+00:06:56.880 --> 00:06:59.359
+fair while. If you have a video that lasts one minute, it's
+
+00:06:59.360 --> 00:07:03.439
+definitely going to take more than one minute to try to
+
+00:07:03.440 --> 00:07:09.239
+transcribe the video. We had to wait for a few years until it
+
+00:07:09.240 --> 00:07:12.679
+passed. Probably, but it's good to have the ID now so
+
+00:07:12.680 --> 00:07:17.479
+that we are ready eventually to do this. There is the new
+
+00:07:17.480 --> 00:07:23.319
+asynchronous IP. It's called org-pending. It's work in
+
+00:07:23.320 --> 00:07:29.599
+progress. And that basically allows to defer inserting
+
+00:07:29.600 --> 00:07:34.199
+text into our buffers until later. And while it's being
+
+00:07:34.200 --> 00:07:37.719
+worked on, it will basically highlight the place where it
+
+00:07:37.720 --> 00:07:43.159
+will be inserted. And you can click on it, see the progress,
+
+00:07:43.160 --> 00:07:49.519
+and stuff like that. So this is for Babylon, but I imagine for
+
+00:07:49.520 --> 00:07:56.159
+things like voice recognition, it can also work.
+
+00:07:56.160 --> 00:07:59.799
+All right, what I suggest we do, we're going to fill the two
+
+00:07:59.800 --> 00:08:02.279
+questions that we have now, and then it'd be nice if we could
+
+00:08:02.280 --> 00:08:05.399
+hear a word from Bastien and from Carsten as well, because
+
+00:08:05.400 --> 00:08:08.719
+it's rare to have all of you three in a room, and it would be
+
+00:08:08.720 --> 00:08:11.439
+nice maybe to chat a little bit about this. So quickly, with
+
+NOTE Q: WRT IETF standardization, have you looked at Karl Voit's OrgDown?
+
+00:08:11.440 --> 00:08:14.199
+the last two questions, with regards to IETF
+
+00:08:14.200 --> 00:08:17.039
+standardization, have you looked at Karl Voit's Orgdown?
+
+00:08:17.040 --> 00:08:24.919
+So, of course, there was a discussion on the mailing list,
+
+00:08:24.920 --> 00:08:28.319
+and there was a lot of pushback to this idea, especially to
+
+00:08:28.320 --> 00:08:33.399
+simplify the syntax. So, in short, the conclusion from
+
+00:08:33.400 --> 00:08:37.799
+there is we want the full syntax, we don't want to have things
+
+00:08:37.800 --> 00:08:43.079
+like different versus Org mode. But for the syntax, we may
+
+00:08:43.080 --> 00:08:49.279
+specify different like coverage. So for example, it's a
+
+00:08:49.280 --> 00:08:53.119
+minimal, it has a minimal support so people can, there's
+
+00:08:53.120 --> 00:08:59.079
+some parsers or apps can support just whatever curl calls
+
+00:08:59.080 --> 00:09:04.239
+fork down like level zero or level one or whatever. But the
+
+00:09:04.240 --> 00:09:10.079
+key point is, when it goes to IETF, we want to have the full
+
+00:09:10.080 --> 00:09:13.119
+syntax. We don't want to split it into pieces.
+
+00:09:13.120 --> 00:09:18.959
+Makes a lot of sense. All right. And the last question we have
+
+NOTE Q: About a year ago we discussed switching GNU documentation from texinfo to org. Do you still consider this?
+
+00:09:18.960 --> 00:09:22.359
+for now. About a year ago, we discussed switching new
+
+00:09:22.360 --> 00:09:26.239
+documentation from texinfo to org. Do you still consider
+
+00:09:26.240 --> 00:09:30.879
+this? definitely contributed to some of the ideas about
+
+00:09:30.880 --> 00:09:34.479
+syntax. For example, the inline special blocks, I think
+
+00:09:34.480 --> 00:09:41.639
+about them with this in mind, so that, so basically, one
+
+00:09:41.640 --> 00:09:45.999
+clarity, we don't want to complicate our syntax, we don't
+
+00:09:46.000 --> 00:09:50.319
+want to have special built-in support for variable, or I
+
+00:09:50.320 --> 00:09:54.319
+don't know, function name, or all this kind of specific
+
+00:09:54.320 --> 00:10:00.959
+markup. But instead, the idea is to have some generic custom
+
+00:10:00.960 --> 00:10:06.479
+syntax. And then when it goes to software manuals, we want
+
+00:10:06.480 --> 00:10:09.759
+some like optional library that will provide certain
+
+00:10:09.760 --> 00:10:12.439
+syntax extensions, like inline special block for
+
+00:10:12.440 --> 00:10:15.479
+variables, inline special block for acronym and stuff like
+
+00:10:15.480 --> 00:10:20.999
+that. Then people who want to use Org mode for manuals should
+
+00:10:21.000 --> 00:10:26.119
+be able to use that new markup to achieve what they want.
+
+00:10:26.120 --> 00:10:34.359
+That's a distant idea. But the key point is we want to keep org
+
+00:10:34.360 --> 00:10:39.039
+mode as generic syntax. We don't want to specialize it for
+
+00:10:39.040 --> 00:10:43.799
+software specifically. But generic in the sense that it can
+
+00:10:43.800 --> 00:10:44.759
+be used for software as well.
+
+00:10:44.760 --> 00:10:50.959
+All right, well thank you so much for your answer here and
+
+00:10:50.960 --> 00:10:56.399
+that was very enlightening but I'd first like to give the mic
+
+00:10:56.400 --> 00:11:00.359
+to Bastien who might need to leave shortly and I just want to
+
+00:11:00.360 --> 00:11:03.559
+make sure that you get to chat a little bit Bastien because
+
+00:11:03.560 --> 00:11:06.199
+it's a big thing we've had you as a maintainer for however
+
+00:11:06.200 --> 00:11:13.199
+long now? Well, officially, it was 14 years. But obviously,
+
+00:11:13.200 --> 00:11:17.999
+EHO has been doing much of the groundwork as a de facto
+
+00:11:18.000 --> 00:11:20.239
+maintainer for several years now, I believe for three or
+
+00:11:20.240 --> 00:11:28.679
+four years. And before Before IHO, there was Nicolas Goaziou,
+
+00:11:28.680 --> 00:11:33.679
+who's doing a lot of work. Also Kyle Meyer, who is still
+
+00:11:33.680 --> 00:11:40.599
+active, backporting Emacs changes. So
+
+00:11:40.600 --> 00:11:46.039
+it's a relief that we can do things properly, that I didn't
+
+00:11:46.040 --> 00:11:51.439
+give up before someone could really step up. I'm glad we're
+
+00:11:51.440 --> 00:11:57.679
+doing this. And I'm glad there was so much help during the
+
+00:11:57.680 --> 00:12:01.959
+time when I was not available enough. Well, thank you,
+
+00:12:01.960 --> 00:12:05.039
+Bastien. I think on behalf of the community, I think I'd like
+
+00:12:05.040 --> 00:12:07.719
+to extend a big thank you for all the work you've done
+
+00:12:07.720 --> 00:12:12.279
+throughout those 14 years. And if we pull the rope just a
+
+00:12:12.280 --> 00:12:15.719
+little more, before those 14 years, we had someone else
+
+00:12:15.720 --> 00:12:18.199
+maintaining Org Mode, well, not actually just maintaining
+
+00:12:18.200 --> 00:12:20.879
+Org Mode, but also inventing it. Carsten, how are you doing?
+
+00:12:20.880 --> 00:12:26.799
+I am. I'm doing fine. A really great opportunity to be here.
+
+NOTE Community
+
+00:12:26.800 --> 00:12:31.279
+First, I would like to start by indeed thanking Bastien
+
+00:12:31.280 --> 00:12:34.839
+because, I mean, he was not only maintainer after I stopped,
+
+00:12:34.840 --> 00:12:37.839
+but already during the time I was there, he was one of the key
+
+00:12:37.840 --> 00:12:40.559
+contributors who helped the project along for quite a bit.
+
+00:12:40.560 --> 00:12:44.759
+So it's an incredible investment of time and energy that
+
+00:12:44.760 --> 00:12:48.399
+Basquiat has shown, which is really fantastic. And now I see
+
+00:12:48.400 --> 00:12:52.479
+Ihor taking over with, as far as I can see, deep knowledge and
+
+00:12:52.480 --> 00:12:56.199
+all the right ideas about philosophy. So I'm really
+
+00:12:56.200 --> 00:13:00.039
+impressed. For me, this is really totally amazing because I
+
+00:13:00.040 --> 00:13:04.719
+started hacking this more than 20 years ago. And to just see
+
+00:13:04.720 --> 00:13:07.679
+that there's a community that has sustained itself with the
+
+00:13:07.680 --> 00:13:11.439
+help of new maintainers for such a long time makes me
+
+00:13:11.440 --> 00:13:13.999
+extremely grateful. So thank you very much to all of you.
+
+00:13:14.000 --> 00:13:20.679
+Okay, well, amazing. I mean, I'm a little flustered, I must
+
+00:13:20.680 --> 00:13:23.559
+admit, because I'm seeing three players of the community in
+
+00:13:23.560 --> 00:13:27.639
+a way that have kept me busy with very fun stuff to do with Org
+
+00:13:27.640 --> 00:13:30.999
+Mode, and it's really amazing to see three giants of the
+
+00:13:31.000 --> 00:13:34.239
+community being able to maintain Org Mode for so long and
+
+00:13:34.240 --> 00:13:38.199
+contribute so much to it. So, again, thanks to all of you
+
+00:13:38.200 --> 00:13:40.981
+three. I must also admit that it's really amazing for me
+
+00:13:40.982 --> 00:13:45.442
+that all of you three stress the importance of the community
+
+00:13:45.440 --> 00:13:48.479
+a whole lot, and I know that Bastien, you've talked about
+
+00:13:48.480 --> 00:13:51.359
+maintaining software last year at Emacs Confs, and even
+
+00:13:51.360 --> 00:13:55.519
+today, during the one-minute little chat that you did in
+
+00:13:55.520 --> 00:13:59.279
+Ihor's chat, you stressed the importance of maintenance and to
+
+00:13:59.280 --> 00:14:06.559
+be future-oriented about it. I'm kind of wondering, why do
+
+00:14:06.560 --> 00:14:12.679
+you think community is so important to Org Mode in general?
+
+00:14:12.680 --> 00:14:14.679
+Like, obviously we've talked about maintainers and we've
+
+00:14:14.680 --> 00:14:16.879
+talked about volunteers, but don't you think there's
+
+00:14:16.880 --> 00:14:19.159
+something more about community in general, about Org Mode
+
+00:14:19.160 --> 00:14:20.950
+and the fact that we are all taking notes
+
+00:14:20.951 --> 00:14:34.799
+and doing so much with it? Yeah, are you asking me?
+
+00:14:34.800 --> 00:14:40.640
+I remember Carsten made his point during the Google talk about
+
+00:14:40.680 --> 00:14:45.159
+the core idea of Org Mode, about mixing note taking and to-do
+
+00:14:45.160 --> 00:14:49.959
+manager. It was really powerful. And also in the same
+
+00:14:49.960 --> 00:14:53.399
+presentation that 98%
+
+00:14:53.400 --> 00:14:57.047
+of the features were organically developed as ideas
+
+00:14:57.048 --> 00:15:00.668
+by the community. And Ihor just said the same today
+
+00:15:00.669 --> 00:15:03.589
+in the presentation, like most of the features,
+
+00:15:03.590 --> 00:15:06.875
+not only the ideas, but also the code came from
+
+00:15:06.876 --> 00:15:11.350
+the communities. So that's why the community is so rich.
+
+00:15:11.351 --> 00:15:12.759
+And another thing is
+
+00:15:12.760 --> 00:15:16.919
+also that I do remember. Now everyone is having kind of an open
+
+00:15:16.920 --> 00:15:20.799
+source fatigue and questions about how is it okay to be
+
+00:15:20.800 --> 00:15:24.039
+maintainer? How do you keep open source project
+
+00:15:24.040 --> 00:15:28.199
+sustainable? And I'm saying open source on purpose with
+
+00:15:28.200 --> 00:15:33.119
+this audience to see beyond just the small GNU project and
+
+00:15:33.120 --> 00:15:36.359
+the small free software community. So at large, there is
+
+00:15:36.360 --> 00:15:40.679
+some sense of fatigue. I remember that the Org community
+
+00:15:40.680 --> 00:15:44.079
+right from the beginning had a reputation of being an
+
+00:15:44.080 --> 00:15:48.839
+amazing community and I think it
+
+00:15:48.840 --> 00:15:54.879
+continues to be one and I'm amazed that sometimes when I'm,
+
+00:15:54.880 --> 00:15:59.199
+you know, sometimes I'm, I have this fatigue of moderating
+
+00:15:59.200 --> 00:16:01.839
+emails from the mailing list, for example, and filtering
+
+00:16:01.840 --> 00:16:06.199
+out spam. And then I go on the list and I read some emails and I
+
+00:16:06.200 --> 00:16:09.536
+feel like, okay, this is still there. And it's really
+
+00:16:09.537 --> 00:16:14.559
+a boost of energy. I wish that this repetition outside Org Mode,
+
+00:16:14.560 --> 00:16:19.239
+outside Emacs, of being a nice welcoming,
+
+00:16:19.240 --> 00:16:22.559
+community of knowledgeable people talking of things
+
+00:16:22.560 --> 00:16:25.319
+and learning from each other that we can
+
+00:16:25.320 --> 00:16:30.159
+keep up with this pace. Yeah, maybe if I
+
+00:16:30.160 --> 00:16:32.919
+can just add to this, I think you're making an extremely
+
+00:16:32.920 --> 00:16:36.679
+important point, Pascal. I think that was really, from the
+
+00:16:36.680 --> 00:16:39.639
+beginning, something that was really special. And I think
+
+00:16:39.640 --> 00:16:45.639
+the reason why we all community still works is that first me,
+
+00:16:45.640 --> 00:16:49.239
+but in particular also the two of you and more people have
+
+00:16:49.240 --> 00:16:53.359
+been able to keep up the friendly spirit in this community.
+
+00:16:53.360 --> 00:16:57.239
+Because we had very few fights on the mailing list. There
+
+00:16:57.240 --> 00:17:02.879
+were a few at some point, we had a few contributors with a
+
+00:17:02.880 --> 00:17:06.719
+little bit of fights. And I remember that I, for example, had
+
+00:17:06.720 --> 00:17:10.159
+to invest a lot of time to keep that one under control, but I
+
+00:17:10.160 --> 00:17:14.199
+think it was totally worth it because as a group, as a whole, I
+
+00:17:14.200 --> 00:17:18.679
+think it was really fantastic. Our friendly people
+
+00:17:18.680 --> 00:17:21.719
+always were, and I think that has spurred all the
+
+00:17:21.720 --> 00:17:22.640
+contributions that we had. Because
+
+00:17:22.680 --> 00:17:25.542
+if you are in a toxic environment, you will
+
+00:17:25.543 --> 00:17:29.458
+not be willing to stay and to invest all their time. And if you
+
+00:17:29.708 --> 00:17:32.291
+are in an appreciative environment where people support
+
+00:17:32.292 --> 00:17:35.191
+each other, it's a completely different game. So I really
+
+00:17:35.192 --> 00:17:38.566
+think that Org Mode is a great example for open source
+
+00:17:38.567 --> 00:17:43.774
+projects that many other communities can learn from.
+
+00:17:43.775 --> 00:17:52.441
+If I may just interject for a second, because we need to go
+
+00:17:52.442 --> 00:17:55.441
+into the next chat for the live stream. But as usual, I invite
+
+00:17:55.442 --> 00:17:57.524
+you, if you're interested with the discussion, we are
+
+00:17:57.525 --> 00:18:01.482
+staying on BBB, asking questions to Bastien, to Ihor and
+
+00:18:01.483 --> 00:18:04.316
+to Carsten. So feel free to join on BBB and chat with them
+
+00:18:04.317 --> 00:18:07.857
+live. The stream will be moving on to the next chat, but we
+
+00:18:07.858 --> 00:18:10.566
+will be recording the Q&A and posting it afterwards on
+
+00:18:10.567 --> 00:18:13.441
+emacsconf. So, I'll use the opportunity to thank you again,
+
+00:18:13.442 --> 00:18:18.941
+all three, for taking part in this EmacsConf, and enjoy the
+
+00:18:18.942 --> 00:18:27.482
+discussion, and we'll see you later! Thank you, bye bye! So,
+
+00:18:27.483 --> 00:18:31.274
+yeah, what I was starting to say actually is I feel that the
+
+00:18:31.275 --> 00:18:35.024
+Org Mode community and to the big extent the Emacs community
+
+00:18:35.000 --> 00:18:38.679
+is a bit like research in the early days when there was a bunch
+
+00:18:38.680 --> 00:18:43.959
+of enthusiasts who just exchanged mails together and tried
+
+00:18:43.960 --> 00:18:49.159
+to find out something new. And there was like no feeling of
+
+00:18:49.160 --> 00:18:52.719
+competition or too much competition at that time. Unlike
+
+00:18:52.720 --> 00:18:58.759
+now when we like we all rise for funding and stuff. So it's,
+
+00:18:58.760 --> 00:19:02.199
+it's really, it's really nice to, to, to have communities
+
+00:19:02.200 --> 00:19:05.919
+that has the spirit and they hope it can keep the spirit in
+
+00:19:05.920 --> 00:19:08.279
+future as well.
+
+00:19:08.280 --> 00:19:14.599
+Yeah. Yeah. I thought I'm very optimistic after. So I mean,
+
+00:19:14.600 --> 00:19:18.679
+actually had not been reading the mailing list for quite a
+
+00:19:18.680 --> 00:19:23.039
+while, but I started to read it again a little while ago and I
+
+00:19:23.040 --> 00:19:26.719
+could just see you also working on it and see how everything
+
+00:19:26.720 --> 00:19:30.919
+was going. That made me extremely happy to see that and made
+
+00:19:30.920 --> 00:19:37.679
+me very proud that this is still ongoing.
+
+00:19:37.680 --> 00:19:42.799
+I was interested about your point about the tables with
+
+00:19:42.800 --> 00:19:49.079
+multi-lines. My unsolicited advice is don't do it, because
+
+00:19:49.080 --> 00:19:52.639
+I think it's going to be a mess. Which I think is reflected
+
+00:19:52.640 --> 00:19:56.039
+also by you saying that nobody has a good idea on how to do
+
+00:19:56.040 --> 00:20:01.079
+this. I have certainly thought about it. It is requested so
+
+00:20:01.080 --> 00:20:04.599
+often. It's requested so often that it feels like it would be
+
+00:20:04.600 --> 00:20:07.959
+nice to come out with something. The question is, it is what?
+
+00:20:07.960 --> 00:20:11.399
+Yeah, that's a big question. Because I don't always ask
+
+00:20:11.400 --> 00:20:15.919
+eDocs, for example, and they do have multi line cells in
+
+00:20:15.920 --> 00:20:21.279
+tables, but that syntax is so ugly. Yes. Yeah, no, exactly. I
+
+00:20:21.280 --> 00:20:28.719
+think this is a problem and the question is, how far do you
+
+00:20:28.720 --> 00:20:33.639
+want to develop or want to be a completely full authoring
+
+00:20:33.640 --> 00:20:35.839
+system in the sense that you have all these options there
+
+00:20:35.840 --> 00:20:39.999
+because I think to me, the Org Mode tables have a specific
+
+00:20:40.000 --> 00:20:42.759
+application. They have this fast way of building
+
+00:20:42.760 --> 00:20:46.079
+something. And if I would have to go and build a hugely
+
+00:20:46.080 --> 00:20:50.279
+complicated table with different numbers of columns and
+
+00:20:50.280 --> 00:20:53.959
+columns going away and appearing further down the table, so
+
+00:20:53.960 --> 00:20:56.639
+I would probably go somewhere else. So for me, this seems to
+
+00:20:56.640 --> 00:21:00.319
+be overkill. So I don't want to curb anybody's enthusiasm.
+
+00:21:00.320 --> 00:21:04.919
+But I think it's really important to keep to keep the kind of
+
+00:21:04.920 --> 00:21:11.199
+functionality that it has. It's a very easy use and quick
+
+00:21:11.200 --> 00:21:15.879
+ability to do something interesting that I think is more
+
+00:21:15.880 --> 00:21:23.319
+important. There could be reasons to not do something. So
+
+00:21:23.320 --> 00:21:28.399
+again, the thing is, we don't have a good idea. But what I know
+
+00:21:28.400 --> 00:21:32.319
+100% is that we are not going to give up the existing syntax.
+
+00:21:32.320 --> 00:21:38.839
+Yeah, for sure. So even if you come up with something good,
+
+00:21:38.840 --> 00:21:42.279
+the existing syntax will remain working. And if people who
+
+00:21:42.280 --> 00:21:46.159
+need to use simple tables, they should remain possible in
+
+00:21:46.160 --> 00:21:52.759
+exactly the same way. But I know many people struggle and try
+
+00:21:52.760 --> 00:21:55.839
+in LaTeX and other workarounds just to create more complex
+
+00:21:55.840 --> 00:22:01.039
+tables. So there's clearly a demand. I think this is related
+
+00:22:01.040 --> 00:22:04.439
+to the other question that you asked earlier. I think it's
+
+00:22:04.440 --> 00:22:06.639
+related to the question about the different parsers. And
+
+00:22:06.640 --> 00:22:09.999
+then, of course, the way the tables are implemented now is by
+
+00:22:10.000 --> 00:22:11.944
+basically just looking at what's around you
+
+00:22:11.945 --> 00:22:13.484
+and doing the right things with
+
+00:22:13.485 --> 00:22:20.479
+this regular expression-based part of
+
+00:22:20.480 --> 00:22:24.279
+the parser. And you probably would have to fully use the
+
+00:22:24.280 --> 00:22:28.839
+other parts and to do all the changes in the formal structure
+
+00:22:28.840 --> 00:22:31.559
+in order to do something like this. So I have to be honest that
+
+00:22:31.560 --> 00:22:35.559
+I don't understand this well enough to really have a
+
+00:22:35.560 --> 00:22:39.679
+meaningful idea about it. Not only that, we'll also need to
+
+00:22:39.680 --> 00:22:42.799
+rewrite the spreadsheet functionality because it is
+
+00:22:42.800 --> 00:22:47.679
+completely using regular expressions. Exactly. Not only
+
+00:22:47.680 --> 00:22:50.639
+idea is missing that the roadmap will be very complicated if
+
+00:22:50.640 --> 00:22:57.519
+you get there. Yeah. I mean, I do remember. Yeah, go ahead.
+
+00:22:57.520 --> 00:23:03.359
+Yeah, sorry. I do remember Richard Stallman saying that
+
+00:23:03.360 --> 00:23:09.759
+Org Mode was doing too much. So my answer was just, coming from
+
+00:23:09.760 --> 00:23:14.159
+the inventor of Emacs, I took it as a compliment for Org Mode.
+
+00:23:14.160 --> 00:23:19.319
+But of course, that was just humor. And I agree that the
+
+00:23:19.320 --> 00:23:24.279
+simple things should keep being simple. And I like the
+
+00:23:24.280 --> 00:23:30.039
+custom syntax idea of Juan because it goes in the direction
+
+00:23:30.040 --> 00:23:34.159
+of flexibility while keeping things simple.
+
+00:23:34.160 --> 00:23:40.319
+And looking forward to what people will come up with. I like
+
+00:23:40.320 --> 00:23:44.839
+the idea that you want to formalize the syntax. I think that
+
+00:23:44.840 --> 00:23:48.479
+is really very good. I'd like to also submit it. I think that
+
+00:23:48.480 --> 00:23:52.359
+would be excellent. I'm also... I think it was proposed by
+
+00:23:52.360 --> 00:23:57.239
+Timothy, yeah. Initially. Okay. Yeah, that's really
+
+00:23:57.240 --> 00:24:02.839
+helpful. Pascal, are you still talking, I think? No, yeah, I
+
+00:24:02.840 --> 00:24:08.399
+just wanted to say also for the younger Emacs users, there is
+
+00:24:08.400 --> 00:24:12.839
+a lot of new things in Emacs the last five years. It has been so
+
+00:24:12.840 --> 00:24:17.719
+exciting. And I believe it's exciting for Org Mode too, the
+
+00:24:17.720 --> 00:24:22.439
+things you mentioned about track changes. uh native
+
+00:24:22.440 --> 00:24:25.639
+compilation and all that stuff that that's really good like
+
+00:24:25.640 --> 00:24:29.879
+some some performance problems that we had for org mode for
+
+00:24:29.880 --> 00:24:33.759
+the agenda and stuff like that were suddenly solved by uh the
+
+00:24:33.760 --> 00:24:38.159
+the crazy amazing work by Eli and emacs maintainers so
+
+00:24:38.160 --> 00:24:40.457
+it's really exciting for org as well.
+
+00:24:40.458 --> 00:24:43.566
+I don't know how you feel, Ihor, about this,
+
+00:24:43.567 --> 00:24:45.482
+but I know you are reading the Emacs
+
+00:24:45.483 --> 00:24:50.732
+development mailing list and keeping this is a job in
+
+00:24:50.733 --> 00:24:54.774
+itself, but it's really exciting for everyone, I guess. Not
+
+00:24:54.775 --> 00:24:58.274
+only that, I hope we can upstream org-ql, which will speed up
+
+00:24:58.275 --> 00:25:00.566
+agenda specifically even more.
+
+00:25:00.567 --> 00:25:06.982
+Okay. I need to fly away, but it was really nice connecting
+
+00:25:06.983 --> 00:25:13.899
+and I hope everyone has a great conference. Bye-bye. It was
+
+00:25:13.900 --> 00:25:16.107
+so good to see you. Thank you again for everything that you
+
+00:25:16.108 --> 00:25:21.399
+have done. Thanks to you both. Thank you. Bye-bye. Bye-bye.
+
+NOTE Off-stream Q&A
+
+00:25:28.520 --> 00:25:35.959
+All right. Is it only the two of us now? I don't really know who
+
+00:25:35.960 --> 00:25:40.239
+else. Can you see if there's anybody else in this room? I
+
+00:25:40.240 --> 00:25:45.079
+don't know. There are like two, four, six people and Sacha is
+
+00:25:45.080 --> 00:25:48.159
+one of them, so probably five people. Oh, Sacha is here.
+
+00:25:48.160 --> 00:25:51.999
+Okay. I haven't heard her say anything, but I see her in the
+
+00:25:52.000 --> 00:25:58.479
+chat. Okay. It's the same room, basically. Hi, Sacha. Oh,
+
+00:25:58.480 --> 00:26:02.199
+okay. They're also at her pad, so we may want to finish other
+
+00:26:02.200 --> 00:26:08.839
+questions, maybe, if there are some. This is just a circle.
+
+NOTE microemacs
+
+00:26:08.840 --> 00:26:12.079
+This is just a historical question, but Carsten, I think you
+
+00:26:12.080 --> 00:26:14.359
+used microemacs back in the day.
+
+00:26:14.360 --> 00:26:17.839
+Did that have any influence
+
+00:26:17.840 --> 00:26:23.879
+on Org? That is a really interesting question. I used
+
+00:26:23.880 --> 00:26:27.359
+microemacs as my first version of emacs, and then I stepped
+
+00:26:27.360 --> 00:26:33.359
+over to Emacs. I actually did two things at the same time. I
+
+00:26:33.360 --> 00:26:39.119
+also was working with so Awk basically, that language. I ran
+
+00:26:39.120 --> 00:26:45.599
+against walls with both Micro-Emacs and with Awk, where I had
+
+00:26:45.600 --> 00:26:48.639
+the feeling I don't have enough freedom to do everything
+
+00:26:48.640 --> 00:26:52.839
+that I wanted, so I switched to Perl on one side and to Emacs on
+
+00:26:52.840 --> 00:26:58.679
+the other side. That's what it was. Micro-Emacs absolutely
+
+00:26:58.680 --> 00:27:02.679
+had the function to pull me into Emacs, But it's not that I
+
+00:27:02.680 --> 00:27:04.759
+have specific microemacs features that would have
+
+00:27:04.760 --> 00:27:08.119
+triggered me to do something for Org Mode. I think that would be
+
+00:27:08.120 --> 00:27:14.207
+the answer to your question. All right, thanks.
+
+00:27:14.200 --> 00:27:21.639
+Are you a user of microemacs, George? I posted the source to
+
+00:27:21.640 --> 00:27:26.719
+CompSource's Amiga in 86, and I was somewhat responsible
+
+00:27:26.720 --> 00:27:31.959
+for it being in the wild. Oh, I'm so sorry that I didn't,
+
+00:27:31.960 --> 00:27:35.199
+wasn't really aware that I made the connection to your name.
+
+00:27:35.200 --> 00:27:39.719
+No, no, no, no. We all moved on and the world is a better place.
+
+00:27:39.720 --> 00:27:44.799
+Yeah. No, I actually did use it for something like, I think
+
+00:27:44.800 --> 00:27:47.440
+six years as my only admin at the time before I made the
+
+00:27:47.440 --> 00:27:51.359
+switch. No, I put it out to the list. David Lawrence ran with
+
+00:27:51.360 --> 00:27:55.399
+it and you know, that was about, that was the end of it. And I
+
+00:27:55.400 --> 00:27:57.599
+actually implemented something like fly spell for
+
+00:27:57.600 --> 00:28:02.359
+microemacs. I remember doing that at some point. Yeah, no, I
+
+00:28:02.360 --> 00:28:05.319
+don't want us to get stuck on that. I don't want us to get stuck
+
+00:28:05.320 --> 00:28:10.279
+on that, so. Yeah, yeah. Good. Thank you. Thank you for
+
+00:28:10.280 --> 00:28:17.679
+Org Mode. Yeah, you're most welcome.
+
+00:28:17.680 --> 00:28:22.199
+For microemacs, actually, I also tried it once. It feels
+
+00:28:22.200 --> 00:28:27.959
+like at home after Emacs, of course, the major downside was at
+
+00:28:27.960 --> 00:28:33.599
+this point is that there is no UTF support. I think that was
+
+00:28:33.600 --> 00:28:40.039
+like, unfortunately, that that's not going to work. I
+
+00:28:40.040 --> 00:28:43.959
+think I'm also going to disconnect now. But it was really
+
+00:28:43.960 --> 00:28:49.119
+fantastic to listen to your talk. I wish you all the best. I'm
+
+00:28:49.120 --> 00:28:53.479
+sure that is a good answer. Thank you for joining, and nice to
+
+00:28:53.480 --> 00:29:00.159
+meet you. Yeah, bye. Bye.
+
+00:29:00.160 --> 00:29:02.799
+Okay, so there are still people in the room, so if you want to
+
+00:29:02.800 --> 00:29:10.440
+ask questions, feel free to do it. I
+
+00:29:10.440 --> 00:29:12.679
+think there's one unanswered question in the etherpad
+
+00:29:12.680 --> 00:29:18.119
+also. Let me see.
+
+00:29:18.120 --> 00:29:21.639
+It's probably awkward to answer. Okay, I can answer and then
+
+00:29:21.640 --> 00:29:24.039
+probably answering the answer for this one. So there's a
+
+00:29:24.040 --> 00:29:28.519
+question about, from a person, I spent some time writing a
+
+00:29:28.520 --> 00:29:31.919
+library for myself, which involved working with Org files.
+
+NOTE Q: Is there/could there be a resource with which to recommend particularly well written codebases for review by others?
+
+00:29:31.920 --> 00:29:34.359
+One thing I struggled with was finding a good source of
+
+00:29:34.360 --> 00:29:41.599
+reference code which demonstrated idiomatic usage.
+
+00:29:41.600 --> 00:29:46.319
+particularly well-written code bases for review by
+
+00:29:46.320 --> 00:29:52.599
+others? That's a good question. We have some wiki pages.
+
+00:29:52.600 --> 00:29:57.039
+I'll put it in the answer later. You can also check Org Mode's
+
+00:29:57.040 --> 00:30:02.399
+code, but usually in org-element there are good usages, and
+
+00:30:02.400 --> 00:30:06.919
+in Org export.
+
+00:30:06.920 --> 00:30:10.279
+Otherwise, maybe something from Alphapapa, but I need to
+
+00:30:10.280 --> 00:30:13.320
+check that and probably reply later.
+
+00:30:16.167 --> 00:30:23.875
+Otherwise, that's all. So I'm going to end this.
+
+00:30:52.400 --> 00:32:09.720
+Bye bye.
diff --git a/2024/captions/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt b/2024/captions/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt
new file mode 100644
index 00000000..cd09d3cb
--- /dev/null
+++ b/2024/captions/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt
@@ -0,0 +1,2017 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:03.559
+...starting the recording here in the chat, and I see some
+
+00:00:03.560 --> 00:00:06.039
+questions already coming in. So thank you so much for your
+
+00:00:06.040 --> 00:00:09.359
+talk, Zac, and I'll step out of your way and let you field
+
+00:00:09.360 --> 00:00:10.279
+some of these questions.
+
+00:00:10.280 --> 00:00:21.999
+Sounds good. All right, so let's see. I'm going off of the
+
+00:00:22.000 --> 00:00:22.969
+question list.
+
+NOTE Q: Do you think a reduced version of this functionality could be integrated into isearch?
+
+00:00:22.970 --> 00:00:25.839
+So the first one is about having reduced
+
+00:00:25.840 --> 00:00:31.999
+version of the functionality integrated into iSearch. So
+
+00:00:32.000 --> 00:00:37.919
+yeah, with the way things are set up, it is essentially a
+
+00:00:37.920 --> 00:00:42.679
+framework. So
+
+00:00:42.680 --> 00:00:46.279
+you can create a candidate. So just a review from the talk. So
+
+00:00:46.280 --> 00:00:49.919
+you have these candidate generators which generate search
+
+00:00:49.920 --> 00:00:54.559
+candidates. So you can have a file system candidate which
+
+00:00:54.560 --> 00:00:58.519
+generates these file documents, which have text content in
+
+00:00:58.520 --> 00:01:01.799
+them. In theory, you could have like a website candidate
+
+00:01:01.800 --> 00:01:06.399
+generator, and it could be like a web crawler. I mean, so
+
+00:01:06.400 --> 00:01:10.519
+there's a lot of different options. So one option, it's on my
+
+00:01:10.520 --> 00:01:15.039
+mind, and I hope to get to this soon, is create a defun, like a
+
+00:01:15.040 --> 00:01:18.599
+defun candidate generator. So basically it takes a file,
+
+00:01:18.600 --> 00:01:22.279
+splits it up into like defunds, kind of like just like what
+
+00:01:22.280 --> 00:01:26.279
+iSearch would do. and then use each of those, the body of
+
+00:01:26.280 --> 00:01:30.959
+those, as a content for the search session. So, I mean,
+
+00:01:30.960 --> 00:01:35.359
+essentially you could just, you could start up a session,
+
+00:01:35.360 --> 00:01:39.479
+and there's like programmatic ways to start these up too. So
+
+00:01:39.480 --> 00:01:42.599
+you could, if such a candidate generator was created, you
+
+00:01:42.600 --> 00:01:49.559
+could easily, and just like, you know, one command. Get the
+
+00:01:49.560 --> 00:01:54.599
+defunds, create a search session with it, and then just go
+
+00:01:54.600 --> 00:02:01.439
+straight to your query. So, definitely, something
+
+00:02:01.440 --> 00:02:06.919
+just like this is in the works. And I guess another thing is
+
+00:02:06.920 --> 00:02:08.239
+interface.
+
+00:02:08.240 --> 00:02:17.079
+The whole dedicated buffer is helpful for searching, but
+
+00:02:17.080 --> 00:02:21.919
+with this isearch case, there's currently not a way to have a
+
+00:02:21.920 --> 00:02:27.839
+reduced UI, where it's just like, OK, I have these function
+
+00:02:27.840 --> 00:02:32.239
+defuns for the current file. I just want them to pop up at the
+
+00:02:32.240 --> 00:02:35.799
+bottom so I can quickly go through it. So currently, I don't
+
+00:02:35.800 --> 00:02:41.199
+have that. But such a UI is definitely, yeah, thinking about
+
+00:02:41.200 --> 00:02:45.359
+how that could be done.
+
+NOTE Q: Any idea how this would work with personal information like Zettlekastens?
+
+00:02:45.360 --> 00:02:50.359
+Alright, so yeah. So next question. Any idea how this
+
+00:02:50.360 --> 00:02:52.599
+will work with personal information like Zettelkasten?
+
+00:02:52.600 --> 00:02:58.319
+So this is, this is like, I mean, it's essentially usable as
+
+00:02:58.320 --> 00:03:04.559
+is with Zettelkasten method. So, I mean, that I mean
+
+00:03:04.560 --> 00:03:08.279
+basically what like for example org-roam, and I think other
+
+00:03:08.280 --> 00:03:12.159
+ones like Denote, they put all these files in the
+
+00:03:12.160 --> 00:03:15.919
+directory, and so with the already existing file system
+
+00:03:15.920 --> 00:03:19.679
+candidate generator all you'd have to do is set that to be the
+
+00:03:19.680 --> 00:03:23.199
+directory of your Zettelkasten system and then it would
+
+00:03:23.200 --> 00:03:26.799
+just pick up all the files in there and
+
+00:03:26.800 --> 00:03:28.799
+then add those as search candidates. So you could easily
+
+00:03:28.800 --> 00:03:33.279
+just search whatever system you have.
+
+00:03:33.280 --> 00:03:36.039
+Based off of the ways it's set up, if you had maybe your
+
+00:03:36.040 --> 00:03:40.999
+dailies you didn't want to search, it's just as easy to add a
+
+00:03:41.000 --> 00:03:44.519
+criteria saying, I don't want dailies to be searched. Like
+
+00:03:44.520 --> 00:03:47.599
+give, like just eliminate the date, like the things from the
+
+00:03:47.600 --> 00:03:51.679
+daily from the sub directory. And then there you go. you have
+
+00:03:51.680 --> 00:03:57.799
+your Zettelkasten search engine, and you could just copy
+
+00:03:57.800 --> 00:03:59.999
+the, you know, there's, I mean, I need, I'm working on
+
+00:04:00.000 --> 00:04:03.519
+documentation for this to kind of set this up easily, but,
+
+00:04:03.520 --> 00:04:06.679
+you know, you could just create your simple command, just
+
+00:04:06.680 --> 00:04:10.679
+like, your simple command, just like, just take in a text
+
+00:04:10.680 --> 00:04:14.359
+query, run it through the system, and then just get your
+
+00:04:14.360 --> 00:04:19.599
+search results right there. So yeah, definitely that is a
+
+00:04:19.600 --> 00:04:22.040
+use case that's on top of my mind.
+
+NOTE Q: How good does the search work for synonyms especially if you use different languages?
+
+00:04:22.041 --> 00:04:23.239
+So next one, how good does a
+
+00:04:23.240 --> 00:04:26.439
+search work for synonyms, especially if you use different
+
+00:04:26.440 --> 00:04:30.719
+languages? Okay, this is a good question because with the
+
+00:04:30.720 --> 00:04:34.719
+way that VM25 works, it's essentially just like trying to
+
+00:04:34.720 --> 00:04:41.119
+find where terms occur and just counts them up.
+
+00:04:41.120 --> 00:04:43.999
+I mean, this is something I couldn't get into. There's just
+
+00:04:44.000 --> 00:04:46.919
+too much on the topic of information retrieval to kind of go
+
+00:04:46.920 --> 00:04:52.879
+into this, but there is a whole kind of field of just like, how
+
+00:04:52.880 --> 00:04:58.279
+do you, given a search term, how do you know what you should
+
+00:04:58.280 --> 00:05:02.519
+search for? So like popular kind of industrial search
+
+00:05:02.520 --> 00:05:07.519
+engines, like they have kind of this feature where you can
+
+00:05:07.520 --> 00:05:11.039
+like define synonyms, define, term replacement. So
+
+00:05:11.040 --> 00:05:14.079
+whenever you see this term, it should be this. And it even
+
+00:05:14.080 --> 00:05:15.091
+gets even further.
+
+NOTE Plurals
+
+00:05:15.092 --> 00:05:19.439
+If someone searches for a plural string,
+
+00:05:19.440 --> 00:05:22.279
+how do you get the singular from that and search for that? So
+
+00:05:22.280 --> 00:05:27.559
+this is a huge topic that currently p-search doesn't
+
+00:05:27.560 --> 00:05:33.519
+address, but it's on the top of my mind as to how. So that's one
+
+00:05:33.520 --> 00:05:33.882
+part.
+
+NOTE Different languages
+
+00:05:33.883 --> 00:05:38.999
+The next part is for different languages, one thing
+
+00:05:39.000 --> 00:05:42.839
+that kind of seems like it's promising is vector search,
+
+00:05:42.840 --> 00:05:47.399
+which, I mean, with the way p-search is set up, you could
+
+00:05:47.400 --> 00:05:51.159
+easily just create a vector search prior, plug it into the
+
+00:05:51.160 --> 00:05:54.599
+system, and start using it. The only problem is that kind of
+
+00:05:54.600 --> 00:05:58.879
+the vector search functions, like you have to do like cosine
+
+00:05:58.880 --> 00:06:03.639
+similarity, like if you have like 10,000 documents, If
+
+00:06:03.640 --> 00:06:06.679
+you're writing Elisp to calculate the cosine similarity
+
+00:06:06.680 --> 00:06:09.879
+between the vectors, that's going to be very slow. And so now
+
+00:06:09.880 --> 00:06:14.159
+the whole can of worms of indexing comes up. And how do you do
+
+00:06:14.160 --> 00:06:17.479
+that? And is that going to be native elisp? And so that's a
+
+00:06:17.480 --> 00:06:21.839
+whole other can of worms. So yeah, vector search seems
+
+00:06:21.840 --> 00:06:25.959
+promising. And then hopefully maybe other traditional
+
+00:06:25.960 --> 00:06:33.439
+synonyms, stemming, that kind of stuff for alternate
+
+00:06:33.440 --> 00:06:40.199
+terms, that could also be incorporated.
+
+NOTE Q: When searching by author I know authors may setup a new machine and not put the exact same information. Is this doing anything to combine those into one author?
+
+00:06:40.200 --> 00:06:43.719
+Okay, next one. When searching by author, I know authors may
+
+00:06:43.720 --> 00:06:47.119
+set up a new machine and not put the exact same information.
+
+00:06:47.120 --> 00:06:49.519
+Is this doing anything to combine these two in one author?
+
+00:06:49.520 --> 00:06:54.399
+Okay, so for this one, it's not. So it's like the way the get
+
+00:06:54.400 --> 00:06:58.119
+prior is currently set up is that it just does like a get
+
+00:06:58.120 --> 00:07:01.999
+command to get all the get authors. You select one and then it
+
+00:07:02.000 --> 00:07:07.959
+just uses that. But the thing is, is if you knew the two emails
+
+00:07:07.960 --> 00:07:12.519
+that user might have used, the two usernames, you could just
+
+00:07:12.520 --> 00:07:14.279
+set up the
+
+00:07:14.280 --> 00:07:19.799
+two priors. One for the old user's email, and then just add
+
+00:07:19.800 --> 00:07:24.079
+another prior for the new user's email. And then that would
+
+00:07:24.080 --> 00:07:29.279
+be a way to just get both of those set up. So that's kind of a
+
+00:07:29.280 --> 00:07:32.959
+running theme throughout p-search is that It's made to be
+
+00:07:32.960 --> 00:07:36.239
+very flexible and very kind of like Lego block ish kind of
+
+00:07:36.240 --> 00:07:39.959
+like you can just, you know, if you need, you know, if
+
+00:07:39.960 --> 00:07:41.919
+something doesn't meet your needs, you know, it's easy to
+
+00:07:41.920 --> 00:07:45.959
+put pieces in, create new components of the search
+
+00:07:45.960 --> 00:07:51.799
+engine. Let's see, a cool powerful grep "Rak" to maybe have
+
+00:07:51.800 --> 00:07:58.839
+some good ideas. I have searches record code while
+
+00:07:58.840 --> 00:08:04.039
+searching. Okay. So. Okay, that's interesting. I'll have
+
+00:08:04.040 --> 00:08:05.239
+to look into this
+
+00:08:05.240 --> 00:08:15.279
+tool. I haven't seen that. I do kind of keep my eyes out for
+
+00:08:15.280 --> 00:08:18.199
+these kind of things. One thing I have seen that was kind of
+
+00:08:18.200 --> 00:08:24.439
+that, I mean, looked interesting was kind of like AST, like
+
+00:08:24.440 --> 00:08:29.519
+the treesitter, the treesitter grep tools. But like, you
+
+00:08:29.520 --> 00:08:35.359
+can grep for a string in the language itself. So that's
+
+00:08:35.360 --> 00:08:37.959
+something I think would be cool to implement either,
+
+00:08:37.960 --> 00:08:41.359
+because I mean, there's treesitter in Emacs, so it's
+
+00:08:41.360 --> 00:08:44.519
+possible to do a new list. If not, there are those kind of like
+
+00:08:44.520 --> 00:08:47.719
+treesitter. So that's, that's something that I think would
+
+00:08:47.720 --> 00:08:50.719
+be cool to incorporate.
+
+NOTE Q: Have you thought about integrating results from using cosine similarity with a deep-learning based vector embedding?
+
+00:08:50.720 --> 00:08:58.279
+Let's see. Have you thought about integrating results from
+
+00:08:58.280 --> 00:09:00.999
+using cosine similarity with a deep learning based vector
+
+00:09:01.000 --> 00:09:06.679
+embedding? Yeah, exactly. So yeah, this kind of goes back to
+
+00:09:06.680 --> 00:09:09.759
+the topic before it. Definitely the whole semantic search
+
+00:09:09.760 --> 00:09:12.679
+with vector embeddings, that's something that, I mean, it
+
+00:09:12.680 --> 00:09:15.479
+would be actually kind of trivial to implement that in
+
+00:09:15.480 --> 00:09:20.239
+p-search. But like I said, computing the cosine similarity
+
+00:09:20.240 --> 00:09:25.959
+in elisp, it's probably too slow.
+
+00:09:25.960 --> 00:09:34.879
+And then also there's a whole question of how do you get the embeddings?
+
+00:09:34.880 --> 00:09:36.919
+Like, how do you get the system running locally on your
+
+00:09:36.920 --> 00:09:41.239
+machine if you want to run it that or, I mean, so that's
+
+00:09:41.240 --> 00:09:48.879
+actually another kind of aspect that I need to look into.
+
+00:09:48.880 --> 00:10:01.939
+Okay, so let's see.
+
+NOTE Q: Is it possible to save/bookmark searches or search templates so they can be used again and again?
+
+00:10:01.940 --> 00:10:06.319
+Okay, next question. Let's see. I'm sorry if this has been
+
+00:10:06.320 --> 00:10:09.079
+covered. Is it possible to save/bookmark searches or search
+
+00:10:09.080 --> 00:10:14.559
+templates so they can be used again and again? Exactly. So
+
+00:10:14.560 --> 00:10:18.199
+just recently I added bookmarking capabilities. So
+
+00:10:18.200 --> 00:10:21.119
+you can essentially just bookmark whatever search session you
+
+00:10:21.120 --> 00:10:26.359
+have. And yeah, and it's just, it was just a bookmark. You can
+
+00:10:26.360 --> 00:10:29.839
+just open and just like reopen that, rerun that search from
+
+00:10:29.840 --> 00:10:36.119
+where you left off. So there's that. And then also, I tried to
+
+00:10:36.120 --> 00:10:40.559
+set this up so that there is a one-to-one mapping of a Lisp
+
+00:10:40.560 --> 00:10:44.759
+object to the search session. So from every search session
+
+00:10:44.760 --> 00:10:49.519
+you make, you should be able to get a, there's a command to do
+
+00:10:49.520 --> 00:10:55.199
+this, to get a data representation of the search. So it would
+
+00:10:55.200 --> 00:11:00.079
+just be like some plist. All you have to do is just take that
+
+00:11:00.080 --> 00:11:04.479
+plist, call this function p-search-setup-buffer with that
+
+00:11:04.480 --> 00:11:09.119
+data. And then that function should set up the session as you
+
+00:11:09.120 --> 00:11:12.599
+left off. So then like, you know, you could make your
+
+00:11:12.600 --> 00:11:15.359
+commands easy. You can make custom search commands super
+
+00:11:15.360 --> 00:11:18.919
+easy. You just get the data representation of that search,
+
+00:11:18.920 --> 00:11:22.519
+find what pieces you want the user to be able to, you know, the
+
+00:11:22.520 --> 00:11:26.333
+search term, make that a parameter in the
+
+00:11:26.334 --> 00:11:29.079
+command, in the interactive code. So you'd have like
+
+00:11:29.080 --> 00:11:31.906
+print on top and then there you go. You have,
+
+00:11:31.907 --> 00:11:34.327
+you have a command to do the search
+
+00:11:34.328 --> 00:11:35.759
+just like just right there. So, so
+
+00:11:35.760 --> 00:11:38.519
+there's a lot of those things and there's a lot more that
+
+00:11:38.520 --> 00:11:40.999
+could be done. Like maybe having, you know, there's kind of
+
+00:11:41.000 --> 00:11:45.479
+in the works and like thinking about having groups of groups
+
+00:11:45.480 --> 00:11:48.959
+of these things, like maybe you can set up like, Oh, I always
+
+00:11:48.960 --> 00:11:51.919
+add these three criteria together. So I, you know, maybe I
+
+00:11:51.920 --> 00:11:54.559
+can make a preset out of these and make them easy, easily
+
+00:11:54.560 --> 00:11:58.079
+addable. So yeah. A lot of things like that are, you know, I'm
+
+00:11:58.080 --> 00:12:02.799
+thinking about a lot of things about that, so.
+
+NOTE Q: You mentioned about candidate generators. Could you explain about to what the score is assigned to?
+
+00:12:02.800 --> 00:12:06.079
+Okay, so next question. You mentioned about candidate
+
+00:12:06.080 --> 00:12:08.479
+generators. Could you explain about what the score is
+
+00:12:08.480 --> 00:12:12.199
+assigned to? Is this to a line or whatever the candidate
+
+00:12:12.200 --> 00:12:17.079
+generates? How does it work with our junior demo? Okay,
+
+00:12:17.080 --> 00:12:21.799
+yeah, so this is a, this is, so actually I had to implement, I
+
+00:12:21.800 --> 00:12:26.719
+had to rewrite p-search just to get this part right. So the
+
+00:12:26.720 --> 00:12:31.159
+candidate generator generates documents. Documents have
+
+00:12:31.160 --> 00:12:36.919
+properties. So the most notable property is the content
+
+00:12:36.920 --> 00:12:40.599
+property. So essentially what happens is that when you
+
+00:12:40.600 --> 00:12:42.879
+create a file system candidate generator and give it a
+
+00:12:42.880 --> 00:12:45.919
+directory, the code goes into the directory, kind of
+
+00:12:45.920 --> 00:12:49.079
+recursively goes through all the directories, and
+
+00:12:49.080 --> 00:12:51.559
+generates a candidate, which is just like a simple list
+
+00:12:51.560 --> 00:12:55.679
+form. It's saying, this is a file, the file path is this. So
+
+00:12:55.680 --> 00:13:00.799
+that's the document ID. So this is saying, this is a file,
+
+00:13:00.800 --> 00:13:05.559
+it's a file, and its file path is this. And so from that, you
+
+00:13:05.560 --> 00:13:09.279
+get all of the different properties, the sub properties. If
+
+00:13:09.280 --> 00:13:11.719
+you're given that, you know how to get the content. If you're
+
+00:13:11.720 --> 00:13:15.439
+given that, you know how to... So all these properties come
+
+00:13:15.440 --> 00:13:18.839
+out. And then also the candidate generator is the thing that
+
+00:13:18.840 --> 00:13:25.439
+knows how best to search for the terms. So for example, there
+
+00:13:25.440 --> 00:13:29.159
+is a buffer candidate generator. What that does is it just
+
+00:13:29.160 --> 00:13:34.759
+puts all your buffers as search candidates. So obviously
+
+00:13:34.760 --> 00:13:37.879
+you can't, you can't run ripgrep on buffers like you can't you
+
+00:13:37.880 --> 00:13:41.759
+can't do that, you can't run ripgrep on just like yeah just
+
+00:13:41.760 --> 00:13:44.319
+just like buffers that don't have files attached or, for
+
+00:13:44.320 --> 00:13:47.559
+example, maybe there's like an internet search candidate
+
+00:13:47.560 --> 00:13:51.279
+generator, like a web crawler thing. You just imagine it
+
+00:13:51.280 --> 00:13:55.759
+goes to a website, kind of crawls all the links and all that,
+
+00:13:55.760 --> 00:13:58.119
+and then just gets your web pages for the candidates.
+
+00:13:58.120 --> 00:14:01.159
+Obviously, you can't use ripgrep for that either. So, every
+
+00:14:01.160 --> 00:14:04.679
+candidate generator knows how best to search for the terms
+
+00:14:04.680 --> 00:14:08.919
+of what candidate it's generating. So, the file system
+
+00:14:08.920 --> 00:14:12.359
+candidate generator will say, okay, I have a base
+
+00:14:12.360 --> 00:14:17.239
+directory. So, if you ask me, the file system candidate
+
+00:14:17.240 --> 00:14:21.239
+generator, how to get the terms, it knows it's set up to use
+
+00:14:21.240 --> 00:14:25.199
+ripgrep. And so, it runs ripgrep, and so then it goes
+
+00:14:25.200 --> 00:14:29.439
+through, it runs the command, gets the counts, and then
+
+00:14:29.440 --> 00:14:32.359
+store those counts. So, the lines have nothing. At this
+
+00:14:32.360 --> 00:14:35.999
+point, the lines have nothing. There's no notion of lines at
+
+00:14:36.000 --> 00:14:40.559
+all. It's just document, document ID with the amount of
+
+00:14:40.560 --> 00:14:43.839
+times it matched. And that's all you need to run this BM25
+
+00:14:43.840 --> 00:14:47.519
+algorithm. But then when you get the top results, you
+
+00:14:47.520 --> 00:14:51.359
+obviously want to see the lines that matched. And so there's
+
+00:14:51.360 --> 00:14:56.399
+another thing, another method to kind of get the exact
+
+00:14:56.400 --> 00:15:00.559
+thing, to kind of match out the particular lines. And so
+
+00:15:00.560 --> 00:15:03.159
+that's a separate mechanism. And that can be done in Elist,
+
+00:15:03.160 --> 00:15:05.719
+because if you're not displaying, that's kind of a design
+
+00:15:05.720 --> 00:15:09.319
+decision of P-Search, is that it only displays like maybe 10
+
+00:15:09.320 --> 00:15:12.519
+or 20. It doesn't display all the results. So you can have
+
+00:15:12.520 --> 00:15:16.679
+Elist just go crazy with just like highlighting things,
+
+00:15:16.680 --> 00:15:22.719
+picking the best kind of pieces to show. So yeah, that's how
+
+00:15:22.720 --> 00:15:27.359
+that's set up.
+
+00:15:27.360 --> 00:15:38.279
+So, here's perhaps a good moment for me to just jump in and
+
+00:15:38.280 --> 00:15:42.079
+comment that in a minute or so we will break away with the live
+
+00:15:42.080 --> 00:15:47.439
+stream to give people an hour of less content to make sure
+
+00:15:47.440 --> 00:15:50.639
+everybody goes and takes their lunch and break a little bit.
+
+00:15:50.640 --> 00:15:55.039
+But if you would like to keep going in here, Love to love to
+
+00:15:55.040 --> 00:15:59.839
+take as many questions. And, of course, we will include
+
+00:15:59.840 --> 00:16:06.159
+that all when we publish the Q and A. Sounds good. Yeah, I'll go
+
+00:16:06.160 --> 00:16:12.199
+and stick around on the stream as we cut away, as we've got a
+
+00:16:12.200 --> 00:16:15.999
+little video surprise we've all prepared to play, just some
+
+00:16:16.000 --> 00:16:19.359
+comments from an Emacs user dated in 2020 or something like
+
+00:16:19.360 --> 00:16:29.679
+this. I forget the detail. Thank you again so much, Zac, for
+
+00:16:29.680 --> 00:16:30.959
+your fascinating talk.
+
+00:16:30.960 --> 00:16:32.301
+Yeah, so, okay.
+
+NOTE Q: easy filtering with orderless - did this or something like this help or infulce the design of psearch?
+
+00:16:32.302 --> 00:16:33.359
+This makes me really think about the
+
+00:16:33.360 --> 00:16:35.999
+emergent workflows with Denote and easy filtering with
+
+00:16:36.000 --> 00:16:36.639
+orderless.
+
+00:16:36.640 --> 00:16:42.039
+Did this or something like this help influence the design of
+
+00:16:42.040 --> 00:16:47.359
+p-search? Yeah, exactly. So, I mean, yeah, I mean, there's
+
+00:16:47.360 --> 00:16:49.919
+just so many different searches. Like, it's just kind of
+
+00:16:49.920 --> 00:16:52.519
+mind-boggling. Like, you could search for whatever you want
+
+00:16:52.520 --> 00:16:54.599
+on your computer. Like, there's just so much, like, you
+
+00:16:54.600 --> 00:17:01.199
+can't, yeah, you can't just like, you can't just like hard
+
+00:17:01.200 --> 00:17:04.159
+code any of these things. It's all malleable. Like maybe
+
+00:17:04.160 --> 00:17:09.279
+somebody wants to search these directories. And so, yeah,
+
+00:17:09.280 --> 00:17:10.639
+like
+
+00:17:10.640 --> 00:17:18.399
+exactly like that use case of having a directory of files
+
+00:17:18.400 --> 00:17:18.959
+where
+
+00:17:18.960 --> 00:17:25.919
+they contain your personal knowledge management system.
+
+00:17:25.920 --> 00:17:33.479
+Yeah, that use case definitely was at the top of my mind.
+
+00:17:33.480 --> 00:17:35.879
+Let's see.
+
+00:17:35.880 --> 00:17:56.959
+Let's see, so Git covers the multiple names thing itself.
+
+NOTE Q: Notmuch with the p-search UI
+
+00:17:56.960 --> 00:18:00.359
+Okay, yeah,
+
+00:18:00.360 --> 00:18:09.599
+so something about notmuch with p-search UI. Actually,
+
+00:18:09.600 --> 00:18:16.399
+interestingly, I think notmuch is, I haven't used it
+
+00:18:16.400 --> 00:18:22.759
+myself, but that's the, email something about yeah so i mean
+
+00:18:22.760 --> 00:18:25.679
+this is like these things are just like these these kind of
+
+00:18:25.680 --> 00:18:30.479
+extensions could kind of go go forever but one thing i
+
+00:18:30.480 --> 00:18:33.369
+thought about is like i use mu4e for email
+
+00:18:33.370 --> 00:18:41.119
+and that uses a full-fledged index. And so having
+
+00:18:41.120 --> 00:18:44.879
+some method to kind of reach into these different systems
+
+00:18:44.880 --> 00:18:47.938
+and kind of be kind of like a front end for this.
+
+00:18:47.939 --> 00:18:52.000
+Another thing is maybe SQL database.
+
+00:18:52.001 --> 00:18:55.823
+You can create a candidate generator from a SQLite query
+
+00:18:55.824 --> 00:19:01.919
+and then... yeah...
+
+00:19:02.583 --> 00:19:05.519
+I've had tons of ideas of different things you could
+
+00:19:05.520 --> 00:19:09.559
+incorporate into the system. Slowly,
+
+00:19:09.560 --> 00:19:13.599
+they're being implemented. Just recently, I implemented
+
+NOTE Info
+
+00:19:13.600 --> 00:19:17.039
+an info file candidate generator. So it lists out all the
+
+00:19:17.040 --> 00:19:21.559
+info files, and then it creates a candidate for each of the
+
+00:19:21.560 --> 00:19:26.759
+info nodes. So it turns out, yeah, I mean, it works pretty, I
+
+00:19:26.760 --> 00:19:32.559
+mean, just as well as Google. So I'm up for my own testing.
+
+00:19:32.560 --> 00:19:39.999
+Let's see, you can search a buffer using ripgrep feeding in
+
+00:19:40.000 --> 00:19:44.759
+as standard in to the ripgrep process, can't you? Yep, yeah,
+
+00:19:44.760 --> 00:19:50.039
+you can definitely search a buffer that way. So, yeah, I
+
+00:19:50.040 --> 00:19:56.359
+mean, based off of I mean, if this, yeah, so one thing that
+
+00:19:56.360 --> 00:19:59.039
+came up is that the system wants, I mean, I wanted the system
+
+00:19:59.040 --> 00:20:03.559
+to be able to search a lot of different things. And so it came
+
+00:20:03.560 --> 00:20:05.999
+up that I had, you know, implementing,
+
+00:20:06.000 --> 00:20:10.159
+doing these search things, having an Elist
+
+00:20:10.160 --> 00:20:13.079
+implementation, despite it being slow, would be
+
+00:20:13.080 --> 00:20:17.399
+necessary. So like anything that isn't represented as a
+
+00:20:17.400 --> 00:20:21.639
+file, Elisp, there's a mechanism in p-search to search for
+
+00:20:21.640 --> 00:20:23.319
+it.
+
+00:20:23.320 --> 00:20:29.719
+So, yeah, so having that redundancy kind of lets you get into
+
+00:20:29.720 --> 00:20:32.799
+the, you know, using kind of ripgrep for the big scale
+
+00:20:32.800 --> 00:20:37.759
+things. But then when you get to the individual file, you
+
+00:20:37.760 --> 00:20:40.999
+know, just going back to Elisp to kind of get the finer
+
+00:20:41.000 --> 00:20:47.199
+details seems to, you know, seems to end up working pretty
+
+00:20:47.200 --> 00:21:04.239
+well.
+
+00:21:04.240 --> 00:21:27.399
+Thank you all for listening. Yeah, sounds like we're about
+
+00:21:27.400 --> 00:21:31.279
+out of questions. Hi, Zacc. I have a question or still a
+
+00:21:31.280 --> 00:21:34.119
+question. I just want to thank everybody one more time for
+
+00:21:34.120 --> 00:21:37.719
+their participation, especially you for speaking, Zack. I
+
+00:21:37.720 --> 00:21:41.239
+look forward to playing with p-search myself. Thank you.
+
+00:21:41.240 --> 00:21:44.039
+Yeah, there might be one last question. Is there someone?
+
+00:21:44.040 --> 00:21:48.519
+Yes, there is. I don't know if you can understand me, but
+
+00:21:48.520 --> 00:21:50.359
+thank you for making this lovely thing
+
+00:21:50.360 --> 00:21:57.919
+I feel inspired to try it out and I'm thinking about how to
+
+00:21:57.920 --> 00:22:04.199
+integrate it because it sounds modular and nicely thought
+
+00:22:04.200 --> 00:22:09.799
+out. One small question. Have you thought about Project L
+
+00:22:09.800 --> 00:22:13.719
+integration? And then I have a little bigger question about
+
+00:22:13.720 --> 00:22:14.879
+the interface.
+
+NOTE project.el integration
+
+00:22:14.880 --> 00:22:20.799
+Yeah, project.el integration, it's used in a couple of ways.
+
+00:22:20.800 --> 00:22:25.719
+It's kind of used to kind of as like kind of like a default.
+
+00:22:25.720 --> 00:22:31.279
+This is the directory I want to search for the default
+
+00:22:31.280 --> 00:22:33.639
+p-search command. It does, yeah, it kind of goes off of
+
+00:22:33.640 --> 00:22:37.119
+project.el. If there is a project, it kind of says, okay, this,
+
+00:22:37.120 --> 00:22:40.319
+I want to search this project. And so it kind of, it used that
+
+00:22:40.320 --> 00:22:46.119
+as a default. So there's that. Because I use the project-grep
+
+00:22:46.120 --> 00:22:50.679
+or git-grep search a lot and maybe this is a better solution to
+
+00:22:50.680 --> 00:22:55.319
+the search and the interface you have right now for the
+
+00:22:55.320 --> 00:22:56.476
+search results.
+
+NOTE Q: How happy are you with the interface?
+
+00:22:56.477 --> 00:22:58.719
+How happy are you with it and have you
+
+00:22:58.720 --> 00:23:02.599
+thought about improving or have you ideas for
+
+00:23:02.600 --> 00:23:06.639
+improvements? Yeah, well actually what you see in the demo
+
+00:23:06.640 --> 00:23:09.199
+in the video isn't... There's actually, there is an
+
+00:23:09.200 --> 00:23:13.959
+improvement in the current code. Basically, what it
+
+00:23:13.960 --> 00:23:17.239
+does is it scans there's the current default as it scans
+
+00:23:17.240 --> 00:23:20.054
+the entire file for all of the searches.
+
+00:23:20.055 --> 00:23:25.959
+It finds the window that that has the highest score. So it kind
+
+00:23:25.960 --> 00:23:29.599
+of goes through entire file and just says... And it kind of finds
+
+00:23:29.600 --> 00:23:33.479
+like the piece of the section of text that has the most
+
+00:23:33.480 --> 00:23:37.919
+matches with the terms that score the best. So it's, I mean,
+
+00:23:37.920 --> 00:23:40.119
+that section is pretty good. I mean, that, so yeah, that,
+
+00:23:40.120 --> 00:23:44.519
+that ends up working pretty well. So I mean, in terms of other
+
+00:23:44.520 --> 00:23:46.879
+UI stuff, there's, there's tons, there's tons more that
+
+00:23:46.880 --> 00:23:50.159
+could be done, like, especially like debug ability or like
+
+00:23:50.160 --> 00:23:53.799
+introspection. Like, so this, this result, like, for
+
+00:23:53.800 --> 00:23:57.119
+example, this result ranks really high. Maybe you don't
+
+00:23:57.120 --> 00:24:01.719
+know why though. It's like, because of this, this text query
+
+00:24:01.720 --> 00:24:04.479
+arrow, was it because of this criteria? I think
+
+00:24:04.480 --> 00:24:09.039
+there's some UI elements that could kind of help the user
+
+00:24:09.040 --> 00:24:12.519
+understand why results are scoring high or low. So that's
+
+00:24:12.520 --> 00:24:15.639
+definitely... And that makes a lot of sense to me. You know, a
+
+00:24:15.640 --> 00:24:19.039
+lot of it is demystifying, like understanding what you're
+
+00:24:19.040 --> 00:24:22.719
+learning better and not just finding the right thing. A lot
+
+00:24:22.720 --> 00:24:26.519
+of it is, you know, kind of exploring your data. I love that.
+
+00:24:26.520 --> 00:24:31.639
+Thanks. Okay. I'm not trying to hurry us through either by
+
+00:24:31.640 --> 00:24:36.599
+any stretch. I would be happy to see this be a conversation.
+
+00:24:36.600 --> 00:24:42.359
+I also want to be considerate of your time. And I also wanted to
+
+00:24:42.360 --> 00:24:45.479
+make a quick shout out to everybody who's been updating and
+
+00:24:45.480 --> 00:24:50.479
+helping us capture the questions and the comments and the
+
+00:24:50.480 --> 00:24:53.639
+etherpad. That's just a big help to the extent that people
+
+00:24:53.640 --> 00:24:57.199
+are jumping in there and you know, revising and extending
+
+00:24:57.200 --> 00:24:59.799
+and just doing the best job we can to capture all the
+
+00:24:59.800 --> 00:25:00.799
+thoughtful remarks.
+
+00:25:00.800 --> 00:25:14.839
+Yeah, thank you, Zac. I'm not too sure what to ask anymore,
+
+00:25:14.840 --> 00:25:20.559
+but yes, would love to try it out now. Yeah, I mean,
+
+00:25:20.560 --> 00:25:22.076
+definitely feel free to...
+
+00:25:22.077 --> 00:25:25.679
+any feedback, here's my mail, or issues...
+
+00:25:25.680 --> 00:25:29.039
+I mean I'm happy to get any any feedback. It's
+
+00:25:29.040 --> 00:25:31.679
+still in the early stages, so still kind of a lot of
+
+00:25:31.680 --> 00:25:35.599
+documentation that needs to be writing. There's a lot.
+
+00:25:35.600 --> 00:25:38.439
+There's a lot on the roadmap, but yeah, I mean, hopefully, I
+
+00:25:38.440 --> 00:25:42.759
+could even publish this to ELPA and have a nice
+
+00:25:42.760 --> 00:25:47.727
+manual so yeah hopefully yeah those come soon. Epic.
+
+00:25:47.728 --> 00:25:50.279
+That sounds great, yes.
+
+NOTE gptel
+
+00:25:50.280 --> 00:25:59.359
+The ability to save your searches kind of reminds me of like
+
+00:25:59.360 --> 00:26:05.119
+the gptel package for the AI, where you can save searches,
+
+00:26:05.120 --> 00:26:10.799
+which makes it feel a lot more different. And yeah, we don't
+
+00:26:10.800 --> 00:26:14.839
+have something for that with search, but yeah, that's a
+
+00:26:14.840 --> 00:26:19.279
+whole different dynamic where it's like, okay, yeah, and
+
+00:26:19.280 --> 00:26:24.679
+makes it a unique tool that is, I guess would be unique to
+
+00:26:24.680 --> 00:26:28.079
+Emacs where you don't see that with like this AI package
+
+00:26:28.080 --> 00:26:31.119
+where the gptel is kind of unique because it's not just throw
+
+00:26:31.120 --> 00:26:37.039
+away. It's how did I get this? How did I search for it? And be an
+
+00:26:37.040 --> 00:26:40.319
+organic search, kind of like the orderless and vertico
+
+00:26:40.320 --> 00:26:43.039
+and...
+
+00:26:43.040 --> 00:26:46.279
+Yeah, that's a good, I mean, that brings me to another thing
+
+00:26:46.280 --> 00:26:48.239
+in that, so,
+
+00:26:48.240 --> 00:26:53.199
+I mean, you could easily...
+
+00:26:53.200 --> 00:26:57.399
+you could create bridges from p-search to these different
+
+00:26:57.400 --> 00:27:01.519
+other packages, like, for example, kind of a RAG search,
+
+00:27:01.520 --> 00:27:04.679
+like there's this RAG, there's this thing called a RAG
+
+00:27:04.680 --> 00:27:06.879
+workflow, which is kind of popular these days. It's like
+
+00:27:06.880 --> 00:27:11.639
+retrieval augmented generation. So, you do a search and
+
+00:27:11.640 --> 00:27:14.199
+then based off the search results you get, then you pass
+
+00:27:14.200 --> 00:27:20.359
+those into LLM. So, the cool thing is that like you could use
+
+00:27:20.360 --> 00:27:25.119
+p-search for the retrieval. And so you could even like, I
+
+00:27:25.120 --> 00:27:28.799
+mean, you could even ask an LM to come up with the search terms
+
+00:27:28.800 --> 00:27:32.079
+and then have it search. There's no
+
+00:27:32.080 --> 00:27:35.439
+programmatical interface now to do this exact workflow.
+
+00:27:35.440 --> 00:27:39.039
+But I mean, there's another kind of direction I'm starting
+
+00:27:39.040 --> 00:27:43.199
+to think about. So like you could have maybe
+
+00:27:43.200 --> 00:27:47.759
+a question answer kind of workflow where it does
+
+00:27:47.760 --> 00:27:51.639
+like an initial search for the terms and then you get the top
+
+00:27:51.640 --> 00:27:57.199
+results and then you can put that through maybe gptel or all
+
+00:27:57.200 --> 00:27:59.759
+these other different systems. So that's, and that seems
+
+00:27:59.760 --> 00:28:01.479
+like a promising thing. And then another thing is like,
+
+NOTE Saving a search
+
+00:28:01.480 --> 00:28:10.594
+well, you mentioned the ability to save a search.
+
+00:28:10.595 --> 00:28:11.479
+One thing I've noticed
+
+00:28:11.480 --> 00:28:15.359
+kind of like with the DevOps workflows is, I'll write a
+
+00:28:15.360 --> 00:28:20.519
+CLI command that I do, or like a calculator command. Then I end
+
+00:28:20.520 --> 00:28:23.999
+up in the org mode document, write what I wrote, had the
+
+00:28:24.000 --> 00:28:26.943
+results in there, and then I'll go back to that.
+
+00:28:26.944 --> 00:28:31.966
+It's like, oh, this is why, this is that calculation I did
+
+00:28:31.967 --> 00:28:34.007
+and this is why I did it.
+
+00:28:34.008 --> 00:28:36.959
+I'll have run the same tool three different
+
+00:28:36.960 --> 00:28:40.519
+times to get three different answers, if it was like a
+
+00:28:40.520 --> 00:28:41.799
+calculator, for example.
+
+NOTE Workflows
+
+00:28:41.800 --> 00:28:49.319
+But yeah, that's a very unique feature that isn't seen and
+
+00:28:49.320 --> 00:28:53.959
+will make me look at it and see about integrating it into my
+
+00:28:53.960 --> 00:28:59.079
+workflow. Yeah, I think you get on some interesting, you
+
+00:28:59.080 --> 00:29:03.159
+know, kind of what makes Emacs really unique there and how
+
+00:29:03.160 --> 00:29:07.399
+to... interesting kind of ways to exploit
+
+00:29:07.400 --> 00:29:12.439
+Emacs to learn in the problem. I'm seeing a number of
+
+00:29:12.440 --> 00:29:15.799
+ways you're getting at that. For example, if I think about
+
+00:29:15.800 --> 00:29:18.999
+like an automation workflow, and there's just a million
+
+00:29:19.000 --> 00:29:22.719
+we'll say, assumptions that are baked into a search
+
+00:29:22.720 --> 00:29:26.719
+product, so to speak, like represented by a Google search or
+
+00:29:26.720 --> 00:29:31.639
+Bing or what have you. And then as I unpack that and repack it
+
+00:29:31.640 --> 00:29:35.159
+from an Emacs workflow standpoint, thinking about, well,
+
+00:29:35.160 --> 00:29:39.079
+first of all, what is the yak I'm shaving? And then also, what
+
+00:29:39.080 --> 00:29:43.759
+does doing it right mean? How would I reuse this? How would I
+
+00:29:43.760 --> 00:29:47.679
+make the code accessible to others for their own purposes in
+
+00:29:47.680 --> 00:29:52.439
+a free software world kind of way? and all of the different
+
+00:29:52.440 --> 00:29:57.479
+sort of say like orthogonal headspacey kind of things,
+
+00:29:57.480 --> 00:30:00.079
+right? Emacs brings a lot to the table from a search
+
+00:30:00.080 --> 00:30:03.719
+standpoint because I'm going to want to think about. I'm
+
+00:30:03.720 --> 00:30:07.799
+going to want to think about where does the UI come in? Where
+
+00:30:07.800 --> 00:30:11.399
+might the user want to get involved interactively? Where
+
+00:30:11.400 --> 00:30:14.359
+might the user want to get involved declaratively with
+
+00:30:14.360 --> 00:30:16.919
+their configuration, perhaps based on the particular
+
+00:30:16.920 --> 00:30:21.359
+environment where this Emacs is running? And there's just a
+
+00:30:21.360 --> 00:30:24.879
+lot of what Emacs users think about that really applies.
+
+00:30:24.880 --> 00:30:28.359
+I'll use the word again, orthogonally across all my many
+
+00:30:28.360 --> 00:30:33.239
+workflows as an Emacs user. You know, the search is just such
+
+00:30:33.240 --> 00:30:38.519
+a big word. Yeah, that's actually, this exact point I was
+
+00:30:38.520 --> 00:30:43.159
+thinking about with this. It's like, I mean, it seems kind of
+
+00:30:43.160 --> 00:30:46.319
+obvious, like just like using grep or something, just like to
+
+00:30:46.320 --> 00:30:49.359
+get search counts, like, okay, you can just run the command,
+
+00:30:49.360 --> 00:30:51.439
+get the term counts and you could just run it through a
+
+00:30:51.440 --> 00:30:55.959
+relatively simple algorithm. to get your search score. So
+
+00:30:55.960 --> 00:31:01.759
+if it's this easy, though, why don't we see this in other... And
+
+00:31:01.760 --> 00:31:06.919
+the results are actually surprisingly good. So why don't we
+
+00:31:06.920 --> 00:31:10.559
+see this anywhere, really? And it occurred to me that just
+
+00:31:10.560 --> 00:31:16.399
+the amount of configuration... The amount of setup you have to
+
+00:31:16.400 --> 00:31:20.039
+do to get it right.
+
+00:31:20.040 --> 00:31:24.599
+It's above this threshold that you need something like
+
+00:31:24.600 --> 00:31:27.856
+Emacs to kind of get pushed through that configuration.
+
+NOTE Transient and configuration
+
+00:31:27.857 --> 00:31:30.799
+So for example, that's why I rely heavily on transient
+
+00:31:30.800 --> 00:31:34.119
+to set up the system. 'Cause like, if you want to get good
+
+00:31:34.120 --> 00:31:36.079
+search results, you're going to have to configure a lot
+
+00:31:36.080 --> 00:31:38.519
+of stuff. I want this directory. I want this, I don't
+
+00:31:38.520 --> 00:31:41.559
+want this directory. I want these search terms, you know,
+
+00:31:41.560 --> 00:31:48.159
+there's a lot to set up. And in most programs, I mean, they
+
+00:31:48.160 --> 00:31:52.079
+don't have an easy way to, I mean, they'll often try and try to
+
+00:31:52.080 --> 00:31:55.039
+hide all this complexity. Like they say, okay, our users
+
+00:31:55.040 --> 00:31:59.199
+too, you know, we don't want to, you know, we don't wanna, you
+
+00:31:59.200 --> 00:32:02.719
+know, make our users, we don't wanna scare our users with
+
+00:32:02.720 --> 00:32:06.879
+like, complicated search engine configuration. So we're
+
+00:32:06.880 --> 00:32:09.079
+just going to do it all in the background and we're just not
+
+00:32:09.080 --> 00:32:12.599
+going to let the user even know that it's happening. I mean,
+
+00:32:12.600 --> 00:32:15.119
+that's the third time you've made me laugh out loud. Sorry
+
+00:32:15.120 --> 00:32:17.879
+for interrupting you, but yeah, you're just spot on there.
+
+00:32:17.880 --> 00:32:22.999
+You're some people's users. Am I right? like, you know, and
+
+00:32:23.000 --> 00:32:25.390
+also some people's workflows.
+
+NOTE Problem space
+
+00:32:25.391 --> 00:32:27.719
+And, you know, another case
+
+00:32:27.720 --> 00:32:30.799
+where just like, if you're thinking about Emacs, you either
+
+00:32:30.800 --> 00:32:33.279
+have to pick a tunnel to dive into and be like, no, this is
+
+00:32:33.280 --> 00:32:37.759
+going to be right for my work, or your problem space is never
+
+00:32:37.760 --> 00:32:40.879
+ending in terms of discovering the ways other people are
+
+00:32:40.880 --> 00:32:45.839
+using Emacs and how that breaks your feature. and how that
+
+00:32:45.840 --> 00:32:49.679
+breaks your conceptualization of the problem space,
+
+00:32:49.680 --> 00:32:53.559
+right? Or you just have to get so narrowed down that can
+
+00:32:53.560 --> 00:32:57.119
+actually be hard to find people that are quite understand
+
+00:32:57.120 --> 00:33:00.279
+you, right? You get into the particular, well, it solves
+
+00:33:00.280 --> 00:33:03.039
+these three problems for me. Well, what are these three
+
+00:33:03.040 --> 00:33:08.639
+problems again? And this is a month to unpack. You have Emacs
+
+00:33:08.640 --> 00:33:12.639
+and I don't know, it's like you got a lot of, they all agree is
+
+00:33:12.640 --> 00:33:16.559
+like we're going to use elisp to set variables every emacs
+
+00:33:16.560 --> 00:33:21.199
+package is going to do that we're going to use elisp and have a
+
+00:33:21.200 --> 00:33:25.479
+search in place to put our documentation and like it does
+
+00:33:25.480 --> 00:33:32.559
+also eliminate a lot of confusion and gives a lot of
+
+00:33:32.560 --> 00:33:37.719
+expectations of what they want. One thing that I'm
+
+00:33:37.720 --> 00:33:39.855
+surprised I haven't seen elsewhere is you have the
+
+NOTE consult-omni
+
+00:33:39.856 --> 00:33:44.239
+consult-omni package which allows you to search multiple websites
+
+00:33:44.240 --> 00:33:49.799
+simultaneously for multiple web search engines. and put
+
+00:33:49.800 --> 00:33:52.799
+them in one thing and it's like, and then you use orderless.
+
+NOTE orderless
+
+00:33:52.800 --> 00:33:55.159
+Why would you use orderless? Because that's what you
+
+00:33:55.160 --> 00:33:57.799
+configured and you know exactly what you wanna use and you
+
+00:33:57.800 --> 00:34:01.679
+use the same font and your same mini buffer and you use all
+
+00:34:01.680 --> 00:34:04.079
+that existing configuration because, well, you're an
+
+00:34:04.080 --> 00:34:07.599
+Emacs user or like you're a command line user. You know how
+
+00:34:07.600 --> 00:34:11.559
+you want these applications to go. You don't want them to be
+
+00:34:11.560 --> 00:34:17.399
+reinvented the wheel 1600 times in 1,600 different ways,
+
+00:34:17.400 --> 00:34:23.079
+you want it to use your mini buffer, your font, your et
+
+00:34:23.080 --> 00:34:28.159
+cetera, et cetera, et cetera. But I haven't
+
+00:34:28.160 --> 00:34:32.479
+seen a website where I can search multiple websites at the
+
+00:34:32.480 --> 00:34:35.159
+same time in something like Emacs before. And it's like,
+
+00:34:35.160 --> 00:34:38.319
+yeah, with my sorting algorithm,
+
+00:34:38.320 --> 00:34:49.359
+Yeah, exactly. Yeah. Yeah. Yeah. I mean, just setting the
+
+00:34:49.360 --> 00:34:57.079
+bar for configuration and set up just like, yeah, you have to
+
+00:34:57.080 --> 00:35:02.839
+have a list. Yeah. I mean, it, it does, obviously it's not,
+
+00:35:02.840 --> 00:35:05.839
+it's not most beginner beginner friendly, but I mean, it,
+
+00:35:05.840 --> 00:35:10.319
+yeah, it definitely widens the amount of the solution space
+
+00:35:10.320 --> 00:35:14.679
+you can have to such problems. Oh my gosh, you used the word
+
+00:35:14.680 --> 00:35:18.759
+solution space. I love it. But on the flip side, it's like,
+
+00:35:18.760 --> 00:35:25.119
+why does Emacs get this consult-omni package? Or let's see,
+
+00:35:25.120 --> 00:35:30.719
+you have elfeed-youtube where it will put a flowing
+
+00:35:30.720 --> 00:35:34.479
+transcript on a YouTube video or you got your package. Why
+
+00:35:34.480 --> 00:35:39.879
+does it get all these applications? And I don't see
+
+00:35:39.880 --> 00:35:45.679
+applications like this as much outside of Emacs. So there's
+
+00:35:45.680 --> 00:35:46.267
+a way that it just makes it easier.
+
+NOTE User interface
+
+00:35:46.268 --> 00:35:47.479
+It's because user
+
+00:35:47.480 --> 00:35:51.439
+interface is the, you know, it's the economy stupid of
+
+00:35:51.440 --> 00:35:58.119
+technology, right? If you grab people by the UX, you can sell
+
+00:35:58.120 --> 00:36:01.679
+a million of any product that solves problem that I didn't
+
+00:36:01.680 --> 00:36:04.639
+think technology could solve, or that I didn't think I had
+
+00:36:04.640 --> 00:36:08.319
+the patience to use technology to solve, which is a lot of
+
+00:36:08.320 --> 00:36:12.159
+times what it comes down to. And here exactly is the, you
+
+00:36:12.160 --> 00:36:16.799
+know, the the Emacs sort of conundrum, right? How much time
+
+00:36:16.800 --> 00:36:20.759
+should I spend today updating my Emacs so that tomorrow I can
+
+00:36:20.760 --> 00:36:26.319
+just work more, right? And, you know, I love that little
+
+00:36:26.320 --> 00:36:29.839
+graph of the Emacs learning curve, right? Where it's this
+
+00:36:29.840 --> 00:36:33.399
+concentric, it becomes this concentric spiral, right? The
+
+00:36:33.400 --> 00:36:38.759
+Vim learning curve is like a ladder, right? Or, you know, and
+
+00:36:38.760 --> 00:36:44.119
+And the nano learning curve is like just a flat plane, you
+
+00:36:44.120 --> 00:36:49.279
+know, or a ladder, a vertical ladder or a horizontal ladder.
+
+00:36:49.280 --> 00:36:56.719
+There we go. And the Emacs learning curve is this kind of
+
+00:36:56.720 --> 00:36:59.799
+straight up line until it curves back on itself and
+
+00:36:59.800 --> 00:37:03.079
+eventually spirals. And the more you learn, the harder it is
+
+00:37:03.080 --> 00:37:05.839
+to learn the next thing. And are you really moving forward at
+
+00:37:05.840 --> 00:37:09.039
+all? Like, it just works for me. What a great analogy. And
+
+00:37:09.040 --> 00:37:15.279
+that's my answer, I think. Yeah. You know, it's because
+
+00:37:15.280 --> 00:37:20.199
+we... The spiral is great. Sorry. There are each of these
+
+00:37:20.200 --> 00:37:26.639
+weird little packages that some of us, you know, it solves
+
+00:37:26.640 --> 00:37:29.279
+that one problem and lets us get back to work. And for others,
+
+00:37:29.280 --> 00:37:32.439
+it makes us go, gosh, now that makes me rethink a whole bunch
+
+00:37:32.440 --> 00:37:35.239
+of things because there's... Like I don't even know what
+
+00:37:35.240 --> 00:37:37.719
+you're talking about with some of your conceptualizations
+
+00:37:37.720 --> 00:37:41.039
+of UI. Maybe it comes from Visual Studio, and I've not
+
+00:37:41.040 --> 00:37:44.679
+used that or something. So for you, it's a perfectly normal UX
+
+00:37:44.680 --> 00:37:48.799
+paradigm that you kind of lean on for others. It's like you
+
+00:37:48.800 --> 00:37:51.999
+know occupying some screen space and I don't know what the
+
+00:37:52.000 --> 00:37:57.759
+gadgets do and when I open them up... They're thinking
+
+00:37:57.760 --> 00:38:00.999
+about... they have... they imply their own
+
+00:38:01.000 --> 00:38:03.639
+abstractions let's say logically against a programming
+
+00:38:03.640 --> 00:38:06.999
+language. This would be tree sitter, right. If i'm not used to
+
+00:38:07.000 --> 00:38:11.719
+thinking in terms of an abstract abstract syntax tree, some
+
+00:38:11.720 --> 00:38:14.799
+of the concepts just aren't as natural for me. If i'm used to
+
+00:38:14.800 --> 00:38:19.039
+like emacs at a more fundamental level is, or the old modes
+
+00:38:19.040 --> 00:38:23.479
+right, we're used to them thinking in terms of progressing
+
+00:38:23.480 --> 00:38:26.959
+forward through some text, managing a stack of markers into
+
+00:38:26.960 --> 00:38:29.239
+the text, right? It's a different paradigm. The world
+
+00:38:29.240 --> 00:38:33.559
+changes. Emacs kind of supports it all. That's why all the
+
+00:38:33.560 --> 00:38:37.039
+apps are built there. That's why when you're talking about
+
+00:38:37.040 --> 00:38:40.759
+that spiral. what that hints at is that this is really just a
+
+00:38:40.760 --> 00:38:44.239
+different algorithm that you're transferring out that
+
+00:38:44.240 --> 00:38:47.319
+makes some things a lot easier and some things a lot harder.
+
+00:38:47.320 --> 00:38:51.719
+That's why I was bringing in those three packages, because
+
+00:38:51.720 --> 00:38:59.708
+in some way it's making these search terms with reusable...
+
+00:38:59.709 --> 00:39:07.083
+Let's see... saveable buffers or interactive buffers in a way
+
+00:39:07.084 --> 00:39:10.359
+that... in a way, that is bigger than what I think it should have,
+
+00:39:10.360 --> 00:39:15.479
+especially in comparison to like how many people use
+
+00:39:15.480 --> 00:39:20.319
+YouTube, but I don't see very many YouTube apps that will
+
+00:39:20.320 --> 00:39:26.279
+show Rolling subtitle list that you can click on to move up
+
+00:39:26.280 --> 00:39:27.315
+and down the video
+
+00:39:27.316 --> 00:39:30.139
+even though YouTube's been around for years.
+
+00:39:30.140 --> 00:39:33.359
+Why does Emacs have a very good implementation
+
+00:39:33.360 --> 00:39:37.159
+that was duct taped together? So before I let you respond to
+
+00:39:37.160 --> 00:39:40.439
+that, Zac, let me just say we're coming up on eating up a
+
+00:39:40.440 --> 00:39:43.879
+whole half hour of your lunchtime and thank you for giving us
+
+00:39:43.880 --> 00:39:47.879
+that extra time. But let me just say, let's, you know, if I
+
+00:39:47.880 --> 00:39:50.879
+could ask you to take like up to another five minutes and then
+
+00:39:50.880 --> 00:39:53.759
+I'll try to kick us off here and make sure everybody does
+
+00:39:53.760 --> 00:39:54.999
+remember to eat.
+
+00:39:55.000 --> 00:40:04.119
+Yeah, so yeah, it looks like there's one other question. So
+
+NOTE Q: Do you think the Emacs being kinda slow will get in the way of being able to run a lot of scoring algorithms?
+
+00:40:04.120 --> 00:40:06.679
+yeah, do you think Emacs being kind of slow will get in the way
+
+00:40:06.680 --> 00:40:11.319
+of being able to run a lot of scoring algorithms? So this is
+
+00:40:11.320 --> 00:40:15.039
+actually a thought I had. Yeah, Emacs, because the code
+
+00:40:15.040 --> 00:40:19.919
+currently kind of does, I mean, it kind of does, it's kind of
+
+00:40:19.920 --> 00:40:24.039
+dumb in a lot of places. a lot of times it just, it does just go
+
+00:40:24.040 --> 00:40:27.599
+through all the files and then just compute some score for
+
+00:40:27.600 --> 00:40:30.679
+them. But I'm surprised that it's, that part actually isn't
+
+00:40:30.680 --> 00:40:34.799
+that slow. Like, like it turns out like, okay, like if you
+
+00:40:34.800 --> 00:40:40.759
+take, for example, Emacs, like the Emacs directory or the
+
+00:40:40.760 --> 00:40:44.879
+Emacs Git repository, or maybe another big Git repository,
+
+00:40:44.880 --> 00:40:49.079
+like you could have an Elisp function enumerate those, and
+
+00:40:49.080 --> 00:40:52.599
+multiply some numbers, maybe multiply 10 numbers
+
+00:40:52.600 --> 00:41:01.039
+together. And that isn't that slow. And that's the bulk of
+
+00:41:01.040 --> 00:41:05.799
+what the only thing that Elisp has to do is just like multiply
+
+00:41:05.800 --> 00:41:11.599
+these numbers. Obviously, if you have to resort to Elisp to
+
+00:41:11.600 --> 00:41:15.519
+search all the files and you have like 10 or 100,000 files,
+
+00:41:15.520 --> 00:41:18.759
+then yeah, Emacs will be slow
+
+00:41:18.760 --> 00:41:23.959
+to manually search, like if you're not using ripgrep or any
+
+00:41:23.960 --> 00:41:26.839
+faster tool and you have, and you have millions of files and
+
+00:41:26.840 --> 00:41:30.959
+yeah, it will be slow. But what I noticed though is like, for
+
+00:41:30.960 --> 00:41:35.119
+example, let's say you want to search for, let's say you want
+
+00:41:35.120 --> 00:41:40.199
+to search like info directory, like info files for Emacs and
+
+00:41:40.200 --> 00:41:46.039
+the Emacs info file and the Elisp info file. So those are two
+
+00:41:46.040 --> 00:41:49.279
+decently sized kind of books, kind of like reference
+
+00:41:49.280 --> 00:41:50.199
+material on Emacs.
+
+00:41:50.200 --> 00:41:55.999
+Relying on Elisp to search both of those together, it's
+
+00:41:56.000 --> 00:41:58.079
+actually pretty, it's actually like almost instant. I
+
+00:41:58.080 --> 00:42:00.639
+mean, it's not slow enough. So I think that's
+
+00:42:00.640 --> 00:42:03.679
+another thing is like scale. Like I think on, on kind of like
+
+00:42:03.680 --> 00:42:09.679
+individual human level scales, I think Elisp can be good
+
+00:42:09.680 --> 00:42:14.359
+enough. if you're going on the scale of like enterprise,
+
+00:42:14.360 --> 00:42:18.399
+like all the repositories, all the Git repositories of an
+
+00:42:18.400 --> 00:42:21.199
+enterprise, then yeah, that scale might, it might, it might
+
+00:42:21.200 --> 00:42:26.039
+be too much. But I think on, on the scale of what most
+
+00:42:26.040 --> 00:42:30.519
+individuals have to deal with on a daily basis, like for
+
+00:42:30.520 --> 00:42:34.719
+example, maybe somebody has some, yeah, I mean, I think it
+
+00:42:34.720 --> 00:42:36.959
+should, I think it hopefully should be enough. And if not,
+
+00:42:36.960 --> 00:42:39.639
+there's always room for optimizations.
+
+00:42:39.640 --> 00:42:55.999
+Yeah, so so I'll redirect you a little bit because based on a
+
+00:42:56.000 --> 00:43:00.279
+couple of things I got into, you know, or if you want to be done
+
+00:43:00.280 --> 00:43:04.759
+be like, you know, give me the hi sign by all means and we can
+
+00:43:04.760 --> 00:43:08.639
+we can shut up shop, but I'm curious, you know, what are what
+
+NOTE Boundary conditions
+
+00:43:08.640 --> 00:43:13.079
+are your boundary conditions? What what tends to cause you
+
+00:43:13.080 --> 00:43:16.679
+to to to write something more complicated and what what
+
+00:43:16.680 --> 00:43:20.959
+causes you to? So to work around it with more complex
+
+00:43:20.960 --> 00:43:23.559
+workflow in Emacs terms, like where do you break out the big
+
+00:43:23.560 --> 00:43:27.919
+guns? Just thinking about, like search, we talked about,
+
+00:43:27.920 --> 00:43:31.439
+maybe that's too abstract a question, but just general
+
+00:43:31.440 --> 00:43:36.679
+usage. Search is an example where almost all of us have
+
+00:43:36.680 --> 00:43:39.599
+probably written something to go find something, right?
+
+00:43:39.600 --> 00:43:43.519
+Yeah, I mean, this is a good question. I'm actually of the
+
+00:43:43.520 --> 00:43:51.999
+idea, at my work, for example, I tried to get rid of all, I
+
+00:43:52.000 --> 00:43:54.879
+mean, this is probably a typical Emacs user thing, but like,
+
+00:43:54.880 --> 00:43:59.319
+I mean, I think that just like getting, just like having
+
+00:43:59.320 --> 00:44:02.559
+Emacs expand to whatever it can get into and whatever it can
+
+00:44:02.560 --> 00:44:08.839
+automate, like any task, any, like, just like the more you
+
+00:44:08.840 --> 00:44:13.719
+can kind of get that coded, I actually find that kind of like,
+
+00:44:13.720 --> 00:44:20.439
+I mean, it is kind of like a meme. Like, yeah, I have to
+
+00:44:20.440 --> 00:44:24.199
+configure my Emacs until it's fun, and then I'll do it. But I
+
+00:44:24.200 --> 00:44:27.959
+actually I actually think that maybe for like a normal
+
+00:44:27.960 --> 00:44:31.999
+software developer, if you invest, if you invest, maybe,
+
+00:44:32.000 --> 00:44:34.839
+maybe you have like some spare time after you've done all
+
+00:44:34.840 --> 00:44:39.679
+your tasks, if you invest all that time in, in just like kind
+
+00:44:39.680 --> 00:44:42.359
+of going through all the workflows, all the, you know, just,
+
+00:44:42.360 --> 00:44:46.279
+just getting all of that in, in Emacs, then I think that that,
+
+00:44:46.280 --> 00:44:52.039
+that acts as kind of like a, it kind of like a productivity
+
+00:44:52.040 --> 00:44:56.759
+multiplier. And so. So I found that, I mean, I found to not
+
+00:44:56.760 --> 00:44:59.519
+have those boundaries. I mean, obviously there's things
+
+00:44:59.520 --> 00:45:04.599
+you can't do, like web-based things. I mean, that's a hard
+
+00:45:04.600 --> 00:45:10.199
+boundary, but that's more because... Yeah, there's really
+
+00:45:10.200 --> 00:45:13.719
+not much to do about that. Nobody's written a front-end
+
+00:45:13.720 --> 00:45:18.759
+engine, and too much of the forebrain is occupied with
+
+00:45:18.760 --> 00:45:22.559
+things that should happen on the "end-users
+
+00:45:22.560 --> 00:45:29.839
+infrastructure", so to speak. So with like 40 seconds left, I
+
+00:45:29.840 --> 00:45:33.519
+was going to say a minute, but I guess, any final thoughts?
+
+00:45:33.520 --> 00:45:40.159
+Yeah, I mean, just thank you for listening, and And thank you
+
+00:45:40.160 --> 00:45:45.559
+for putting this on. It's a really nice conference to have,
+
+00:45:45.560 --> 00:45:50.679
+and I'm glad things like this exist. So thank you. Yeah, it's
+
+00:45:50.680 --> 00:45:54.639
+you and the other folks on this call. Thank you so much,
+
+00:45:54.640 --> 00:45:58.639
+PlasmaStrike, and all the rest of you for hopping on the BBB
+
+00:45:58.640 --> 00:46:03.119
+and having such an interesting discussion. Keeps it really
+
+00:46:03.120 --> 00:46:08.239
+fun for us as organizers. And thanks, everybody, for being
+
+00:46:08.240 --> 00:46:21.320
+here.
diff --git a/2024/captions/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt b/2024/captions/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt
new file mode 100644
index 00000000..392644e1
--- /dev/null
+++ b/2024/captions/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt
@@ -0,0 +1,833 @@
+WEBVTT indexed by sachac
+
+00:00:00.000 --> 00:00:04.639
+mentally over the next couple of days, but I can assure you
+
+00:00:04.640 --> 00:00:06.759
+that it will be many organizers in the background also
+
+00:00:06.760 --> 00:00:10.199
+working. You'll probably get to see us later on. But for now,
+
+00:00:10.200 --> 00:00:13.639
+without further ado, I want to say hi to Vincent. Hi,
+
+00:00:13.640 --> 00:00:19.039
+Vincent. Hi, thanks for having me. Yeah, and thanks for
+
+00:00:19.040 --> 00:00:22.919
+coming and thanks for presenting. I mean, you didn't decide
+
+00:00:22.920 --> 00:00:25.639
+to go first. It's mostly the time zone for you which decided
+
+00:00:25.640 --> 00:00:28.919
+for you because I believe you are in Japan, correctly. Yeah,
+
+00:00:28.920 --> 00:00:33.039
+exactly. So I'm living there now and it's very late. It's
+
+00:00:33.040 --> 00:00:37.319
+really funny to see everyone saying good morning in the
+
+00:00:37.320 --> 00:00:39.959
+chat. It's always the same for me. So personally, I'm in
+
+00:00:39.960 --> 00:00:43.959
+France. So for me, it's only 3 p.m. For you, it's probably 9 or
+
+00:00:43.960 --> 00:00:47.959
+10 p.m. if I'm correct. Already 11 here, yeah. It's already
+
+00:00:47.960 --> 00:00:53.519
+11, so thank you for staying up so late for us. And how about we
+
+00:00:53.520 --> 00:00:55.639
+just get started with the questions because you've just
+
+00:00:55.640 --> 00:00:59.239
+presented something that is very dear to my heart, which is
+
+00:00:59.240 --> 00:01:01.959
+writing academic paper with Org Mode, which is, for the
+
+00:01:01.960 --> 00:01:05.279
+record, how I got started with Org Roam and stuff like this.
+
+00:01:05.280 --> 00:01:08.799
+So, unless you've got anything else to add on top of your
+
+00:01:08.800 --> 00:01:11.839
+presentation that wasn't able to fit in, I suggest we just
+
+00:01:11.840 --> 00:01:16.559
+start taking questions. All right. So yeah, right now I'm
+
+00:01:16.560 --> 00:01:19.439
+reading the question from IRC and also from the pad. So I
+
+00:01:19.440 --> 00:01:23.159
+guess I'm gonna take what's already written there.
+
+NOTE Q: I'd be interested how to start this journey of writing academic papers in Org-Roam when not having used Emacs Org-Mode yet? Thanks!
+
+00:01:23.160 --> 00:01:27.359
+So the first one is asking, I'd be interested in how to start this
+
+00:01:27.360 --> 00:01:30.239
+journey to write academic paper in org-roam when not having
+
+00:01:30.240 --> 00:01:36.639
+used Emacs org mode yet. So I saw this one before and I guess it
+
+00:01:36.640 --> 00:01:43.039
+would be possible to do that, to use Org documents only
+
+00:01:43.040 --> 00:01:46.759
+as the way that you are writing papers. Maybe you can
+
+00:01:46.760 --> 00:01:51.959
+just use that as a template that you're going to export.
+
+00:01:51.960 --> 00:01:54.959
+If you are familiar with LaTeX, it's going to be more useful,
+
+00:01:54.960 --> 00:01:59.599
+and maybe more convenient to work with inside of
+
+00:01:59.600 --> 00:02:04.999
+Emacs. But then I'm not 100% sure if that's... How do you say
+
+00:02:05.000 --> 00:02:10.799
+that? Maybe, in my opinion, the benefits of using
+
+00:02:10.800 --> 00:02:14.679
+org-roam in that setup is that you can link the things. For
+
+00:02:14.680 --> 00:02:18.839
+me, I'm using the search function for org-roam to just
+
+00:02:18.840 --> 00:02:21.959
+navigate between the files. So that's really some, a good
+
+00:02:21.960 --> 00:02:26.119
+advantage, but like, yeah, that could be, like Leo said in
+
+00:02:26.120 --> 00:02:28.039
+the presentation, that's some, maybe that's something you
+
+00:02:28.040 --> 00:02:35.839
+can start using org-mode with to write papers. So yeah.
+
+NOTE Q: How about connecting Emacs Org-Roam to Zotero? Is that something you have experience with?
+
+00:02:35.840 --> 00:02:38.879
+Second question. So how about connecting Emacs or Roam
+
+00:02:38.880 --> 00:02:42.079
+to Zotero? Is that something that you have experience with?
+
+00:02:42.080 --> 00:02:47.119
+Not at all. Actually, I used briefly Zotero in the past and I
+
+00:02:47.120 --> 00:02:51.439
+really didn't like it or didn't really get into that. I don't
+
+00:02:51.440 --> 00:02:55.599
+know. But right now,
+
+NOTE Q: Out of curiosity, how do you manage your bibliography? Do you do it from inside Emacs, or using a separate program like Zotero?
+
+00:02:55.600 --> 00:03:00.319
+I don't connect that at all. The question after, out of
+
+00:03:00.320 --> 00:03:03.559
+curiosity, how do you manage your bibliography? Do you do it
+
+00:03:03.560 --> 00:03:06.519
+from inside Emacs or using a separate program, ex: Zotero?
+
+00:03:06.520 --> 00:03:09.119
+Because personally, I have struggled to do it from Emacs,
+
+00:03:09.120 --> 00:03:13.879
+though I have wanted to for some time. So the way I manage that
+
+00:03:13.880 --> 00:03:20.799
+is I just have a couple of .bib files that I edit by hand, where
+
+00:03:20.800 --> 00:03:25.359
+I put the reference when I find them.
+
+00:03:25.360 --> 00:03:28.599
+And yeah, I just showed very briefly in the presentation,
+
+00:03:28.600 --> 00:03:34.119
+but the way.
+
+00:03:34.120 --> 00:03:39.519
+One of the great thing with the org reference system is that
+
+00:03:39.520 --> 00:03:43.239
+if you have your bibliographic files that are connected to
+
+00:03:43.240 --> 00:03:47.959
+that system, you can just like, you can put the link, the
+
+00:03:47.960 --> 00:03:51.879
+reference to the paper, like click on it from your org note,
+
+00:03:51.880 --> 00:03:56.479
+and then you can open the PDF. You can open the DOI link to open
+
+00:03:56.480 --> 00:04:00.719
+the whatever publisher page.
+
+00:04:00.720 --> 00:04:10.159
+So no, I don't use Zotero and I just edit bib or bib files by
+
+00:04:10.160 --> 00:04:12.959
+hand in Emacs.
+
+00:04:12.960 --> 00:04:16.159
+I was just going to add something because you know
+
+00:04:16.160 --> 00:04:20.919
+org-roam-bibtex is actually one of the packages that I
+
+00:04:20.920 --> 00:04:25.279
+developed and I got it working with Zotero because for me it
+
+00:04:25.280 --> 00:04:28.839
+was convenient. I was studying humanities and for me it was
+
+00:04:28.840 --> 00:04:32.599
+very easy to connect reference taken in my browser with
+
+00:04:32.600 --> 00:04:36.799
+Zotero and just post-processing them a little bit but it is
+
+00:04:36.800 --> 00:04:40.279
+possible to make org-roam, org-roam-bibtex and Zotero
+
+00:04:40.280 --> 00:04:44.959
+work together. But it's a little bit of an involved process to
+
+00:04:44.960 --> 00:04:49.439
+get everything working in Emacs.
+
+00:04:49.440 --> 00:04:54.519
+Yeah, for sure. And
+
+00:04:54.520 --> 00:05:01.999
+yeah, I guess the way I'm doing it, I understand the appeal
+
+00:05:02.000 --> 00:05:03.839
+for having it integrated in the browser. Maybe
+
+00:05:03.840 --> 00:05:06.279
+that's something I should look up, actually, because right
+
+00:05:06.280 --> 00:05:09.359
+now I just like doing it very much by hand, like going on the
+
+00:05:09.360 --> 00:05:15.199
+publisher page and copying the bibtex block and
+
+00:05:15.200 --> 00:05:20.039
+just using putting that in my file. Yes, it can be not a very
+
+00:05:20.040 --> 00:05:23.359
+efficient workflow on that side. But after that, you're
+
+00:05:23.360 --> 00:05:26.599
+having the PDF and having it inside the note.
+
+00:05:26.600 --> 00:05:30.759
+Yeah, it's great. Yeah. To some extent, it kind of depends on
+
+00:05:30.760 --> 00:05:33.319
+the reference system that is used by the field in which you
+
+00:05:33.320 --> 00:05:36.279
+are or the university in which you're publishing. Because
+
+00:05:36.280 --> 00:05:39.519
+sometimes, you know, you're going to have some basic BibTeX
+
+00:05:39.520 --> 00:05:41.479
+file and sometimes you're going to have better BibTeX
+
+00:05:41.480 --> 00:05:44.959
+files. And those are very different metadata that you need
+
+00:05:44.960 --> 00:05:49.119
+to reconcile. And depending on which LaTeX compiler you're
+
+00:05:49.120 --> 00:05:52.439
+using, be it zLaTeX[??], be it regular LaTeX, lualatex, it's
+
+00:05:52.440 --> 00:05:55.439
+going to be all different. So it's a whole can of worms that
+
+00:05:55.440 --> 00:05:57.799
+I'm not sure we want to be opening now. But if you are
+
+00:05:57.800 --> 00:06:00.999
+interested and if you're not too attached about getting
+
+00:06:01.000 --> 00:06:03.679
+everything right, it's really easy to get started with
+
+00:06:03.680 --> 00:06:06.319
+stuff like org-roam-bibtex. It's supposed to get you
+
+00:06:06.320 --> 00:06:11.319
+most of the way down to a working setup. And if you need to get
+
+00:06:11.320 --> 00:06:14.359
+everything working down to the comma based on your
+
+00:06:14.360 --> 00:06:16.479
+reference system, that's going to be a little harder. But
+
+00:06:16.480 --> 00:06:19.439
+it's possible. I managed to do it and many people actually
+
+00:06:19.440 --> 00:06:22.599
+managed to do it. Okay, anyway, so let's move on to the next
+
+NOTE Q: How do you start a new document?
+
+00:06:22.600 --> 00:06:26.679
+question. All right, so the next question asking how do you
+
+00:06:26.680 --> 00:06:30.999
+start a new document? There are a lot of headers you have to
+
+00:06:31.000 --> 00:06:34.639
+set up. Do you use a template? I'm curious if you use your
+
+00:06:34.640 --> 00:06:38.839
+snippets to deal with all of these LaTeX org metacommands.
+
+00:06:38.840 --> 00:06:44.759
+So I don't use a snippets template of any kind for that.
+
+00:06:44.760 --> 00:06:47.279
+Probably I should. That's actually a good idea. I'm
+
+00:06:47.280 --> 00:06:51.279
+probably going to look into that. No, the way I do actually is
+
+00:06:51.280 --> 00:06:56.199
+I just reuse some previous documents. I copy it, delete all
+
+00:06:56.200 --> 00:07:01.439
+the contents and adjust it until it works the way I like.
+
+00:07:01.440 --> 00:07:09.679
+The main issue in general after that step is to make it work
+
+00:07:09.680 --> 00:07:13.999
+with the template I receive and Let's say if I have some
+
+00:07:14.000 --> 00:07:20.839
+template that needs to work with another LaTeX compiler,
+
+00:07:20.840 --> 00:07:26.599
+I'm probably going to try to copy an existing file that I have
+
+00:07:26.600 --> 00:07:30.959
+that uses the same compiler to save me some work. But yeah,
+
+00:07:30.960 --> 00:07:37.119
+no, I don't use any snippet or something. Probably I should,
+
+00:07:37.120 --> 00:07:40.879
+but I'm just doing it the quick and dirty way to just copy some
+
+00:07:40.880 --> 00:07:41.719
+existing thing.
+
+NOTE Q: What do you think of using citar with org-roam-bibtex?
+
+00:07:41.720 --> 00:07:48.319
+Then what do you think of citar with org-roam-bibtex? It seems
+
+00:07:48.320 --> 00:07:55.999
+that bibtex completion is tied to org-roam-bibtex. I don't
+
+00:07:56.000 --> 00:08:02.079
+know. I never really looked into citar that much. I
+
+00:08:02.080 --> 00:08:06.799
+don't know about that. I don't know either, so I'm not going
+
+00:08:06.800 --> 00:08:07.759
+to be able to help on this one.
+
+00:08:07.760 --> 00:08:17.119
+Because yeah, the bibtex completion is tied to the overall
+
+00:08:17.120 --> 00:08:24.799
+bibtex. I guess so. So what I'm interpreting, because I do,
+
+00:08:24.800 --> 00:08:30.039
+so BibTeX completion is the single motor that drives helm
+
+00:08:30.040 --> 00:08:32.719
+BibTeX and Ivy BibTeX. Perhaps there's another
+
+00:08:32.720 --> 00:08:35.679
+alternative now that is using the Vertico stack for
+
+00:08:35.680 --> 00:08:40.399
+completion. But org-roam-bibtex was interfacing with BibTeX
+
+00:08:40.400 --> 00:08:46.679
+completion to retrieve all the references from a bib file.
+
+00:08:46.680 --> 00:08:50.599
+and I assume citar would be something very similar in a way
+
+00:08:50.600 --> 00:08:54.039
+that it interfaces with a bib file, but I couldn't tell you
+
+00:08:54.040 --> 00:08:57.439
+more. I need to explore a little more and sadly I haven't
+
+00:08:57.440 --> 00:09:00.759
+touched any of this stack in like three years, so I'm a little
+
+00:09:00.760 --> 00:09:03.199
+out of touch. I guess this is what comes with leaving
+
+00:09:03.200 --> 00:09:07.519
+academia to go work as a corporate developer. I'm no longer
+
+00:09:07.520 --> 00:09:10.319
+so interested in the publishing process, even though I'm
+
+00:09:10.320 --> 00:09:12.799
+obviously very appreciative of people who still do, and
+
+00:09:12.800 --> 00:09:13.679
+especially people who use
+
+00:09:13.680 --> 00:09:20.239
+Yeah, same here. I definitely going to look into the citar
+
+00:09:20.240 --> 00:09:23.399
+package to see what's possible. Maybe can be using in some
+
+00:09:23.400 --> 00:09:26.319
+way that is useful for me. Yeah.
+
+NOTE Q: Most academic journals insist that papers are formatted in their own custom LaTeX documentclass.  Does org-roam make it easy to do that?
+
+00:09:26.320 --> 00:09:30.919
+And if I go to the next question, so most academic journal
+
+00:09:30.920 --> 00:09:33.639
+insist that paper are formatted in their own custom LaTeX
+
+00:09:33.640 --> 00:09:38.199
+document class. Does org-roam make it easy to do that? The
+
+00:09:38.200 --> 00:09:43.239
+answer is no. That's mostly what I was presenting in the
+
+00:09:43.240 --> 00:09:44.279
+slide.
+
+00:09:44.280 --> 00:09:50.839
+Actually, that's also why I made the presentation, because
+
+00:09:50.840 --> 00:09:59.759
+if someone has a solution, I would gladly take it. No, the way
+
+00:09:59.760 --> 00:10:05.079
+I do it is that I have to add a I don't have that on top of my head.
+
+00:10:05.080 --> 00:10:10.599
+plus. Yeah, exactly. So I just make a custom class with the
+
+00:10:10.600 --> 00:10:16.159
+name of the latex template. In general, I think people use
+
+00:10:16.160 --> 00:10:19.359
+that to redefine like stuff like section and subsection,
+
+00:10:19.360 --> 00:10:24.279
+but for me, I just, it shows in the slide where I just map the
+
+00:10:24.280 --> 00:10:27.239
+section to the same section. I just changed the name of the
+
+00:10:27.240 --> 00:10:33.719
+class. And this way it allows to import the, the CLS and then
+
+00:10:33.720 --> 00:10:39.079
+the rest is just like putting the tech template that is
+
+00:10:39.080 --> 00:10:48.519
+provided either in headers, in LaTeX headers at the top or
+
+00:10:48.520 --> 00:10:56.079
+Yeah, or just on a LaTeX block in the body of the document if
+
+00:10:56.080 --> 00:11:02.039
+that's needed, for example, for the acknowledgement.
+
+00:11:02.040 --> 00:11:05.759
+Sometimes they need some different formatting, but no,
+
+00:11:05.760 --> 00:11:09.079
+it's not really easy because it needs to modify some
+
+00:11:09.080 --> 00:11:12.359
+configuration in Unix to do that. Then after that, a little
+
+00:11:12.360 --> 00:11:15.719
+bit like manually adapt the templates into your org notes.
+
+00:11:15.720 --> 00:11:18.799
+So that's a little bit some upfront work to do. But once it's
+
+00:11:18.800 --> 00:11:22.159
+done, your notes are going to be exported exactly like the
+
+00:11:22.160 --> 00:11:27.319
+template and you don't have to worry about it. Yeah, it's an
+
+00:11:27.320 --> 00:11:32.679
+interesting topic because the thing about, on one side, you
+
+00:11:32.680 --> 00:11:36.159
+know, you want to have, when you're using LaTeX, it kind of
+
+00:11:36.160 --> 00:11:39.359
+translates into you caring a lot about the document that you
+
+00:11:39.360 --> 00:11:42.879
+produce. Either you care about how quickly you can turn a
+
+00:11:42.880 --> 00:11:46.719
+plain text document into a very nicely formatted PDF at the
+
+00:11:46.720 --> 00:11:52.239
+end, or, you know, you just care about the output of your
+
+00:11:52.240 --> 00:11:54.439
+documents, making sure that everything is properly
+
+00:11:54.440 --> 00:11:57.039
+formatted. We were talking about references just before,
+
+00:11:57.040 --> 00:12:00.239
+you know, the formatting rule for references are highly
+
+00:12:00.240 --> 00:12:04.319
+dependent upon the manual that you're using and, you know,
+
+00:12:04.320 --> 00:12:07.159
+some people really care about this. And what I found in my
+
+00:12:07.160 --> 00:12:09.799
+particular experience, my own personal experience
+
+00:12:09.800 --> 00:12:15.199
+writing for academia, was that I was more in the latter crowd
+
+00:12:15.200 --> 00:12:17.839
+that really cared about the output format and making sure
+
+00:12:17.840 --> 00:12:20.599
+everything was correct and it's really a struggle to get
+
+00:12:20.600 --> 00:12:23.519
+everything working especially when you're transpiling
+
+00:12:23.520 --> 00:12:27.199
+from Org Mode documents straight into LaTeX. You're
+
+00:12:27.200 --> 00:12:30.119
+obviously going to be resorting to a number of hacks to get
+
+00:12:30.120 --> 00:12:32.439
+everything working like Vincent just mentioned with the
+
+00:12:32.440 --> 00:12:36.519
+class or you're going to end up with many imported files just
+
+00:12:36.520 --> 00:12:39.999
+to get everything working, but really you're fighting
+
+00:12:40.000 --> 00:12:42.839
+against the tide if you want to get something a little
+
+00:12:42.840 --> 00:12:45.759
+different from what is shipping with Walmart. Maybe
+
+00:12:45.760 --> 00:12:48.479
+everything has gotten better since I was writing my papers,
+
+00:12:48.480 --> 00:12:53.879
+but generally... Kindly disagree. Yeah, go on. I kindly
+
+00:12:53.880 --> 00:12:57.159
+disagree. I actually, I'm surprised that a lot of template
+
+00:12:57.160 --> 00:13:00.679
+is so complex that you don't just change the document class,
+
+00:13:00.680 --> 00:13:03.359
+but also need to do something else. I'd say it's rather
+
+00:13:03.360 --> 00:13:05.919
+uncommon. I guess it depends on the area of your search.
+
+00:13:05.920 --> 00:13:12.599
+Yeah, exactly. I mean, that's it. It just needs CLS and
+
+00:13:12.600 --> 00:13:17.559
+that's all. Yeah, but it really depends on, as you said, on
+
+00:13:17.560 --> 00:13:19.639
+the field in which you're publishing. Some fields are a
+
+00:13:19.640 --> 00:13:22.599
+little more lax with their rules. And just the fact that you
+
+00:13:22.600 --> 00:13:26.479
+can introduce mathematic formulas kind of makes LaTeX the
+
+00:13:26.480 --> 00:13:29.919
+de facto for publishing math documents. But when you're
+
+00:13:29.920 --> 00:13:33.599
+doing humanities, they're more attached to other kinds of
+
+00:13:33.600 --> 00:13:36.879
+formatting. So I think things are much better, anyway,
+
+00:13:36.880 --> 00:13:42.919
+since I started five years ago. Oh, yeah. I have heard from
+
+00:13:42.920 --> 00:13:46.639
+humanities people Microsoft Word. Yes. Sadly, that's the
+
+00:13:46.640 --> 00:13:51.879
+format we're fighting against. Yeah. As for document,
+
+00:13:51.880 --> 00:13:57.079
+yeah, for LaTeX classes, it is a customization and it is the
+
+00:13:57.080 --> 00:14:00.319
+right way to customize this thing, that's all. I'm not sure
+
+00:14:00.320 --> 00:14:03.999
+why it's a hack. It's not a hack. It's an actual user
+
+00:14:04.000 --> 00:14:08.959
+customization. Right. So, we've got about four more
+
+00:14:08.960 --> 00:14:13.559
+minutes of question. Vincent, we've got a couple of Yeah. So
+
+00:14:13.560 --> 00:14:15.319
+I've got a little voice talking in my ear telling me that
+
+00:14:15.320 --> 00:14:17.839
+exactly the same thing. So we've got about two more
+
+00:14:17.840 --> 00:14:21.159
+questions. Vincent, do you want to field them? Sure. So, are
+
+NOTE Q: Are you using zotra or org-ref?
+
+00:14:21.160 --> 00:14:27.799
+you using Zotra (sending some link) or org-ref? No, I don't.
+
+00:14:27.800 --> 00:14:31.879
+I've never heard of Zotra, actually. Looking that very
+
+00:14:31.880 --> 00:14:34.639
+briefly. That's something I'm going to have to look into.
+
+00:14:34.640 --> 00:14:38.519
+Apparently, the short for Zotero translator, so that might
+
+00:14:38.520 --> 00:14:41.759
+be something useful for me since I'm not using Zotero yet,
+
+00:14:41.760 --> 00:14:45.119
+maybe trying to combine. But no, I've never really tried
+
+NOTE Q: How much of this is tied to org-roam specifically?
+
+00:14:45.120 --> 00:14:52.519
+these, but I will. Then the last question, how much of this is
+
+00:14:52.520 --> 00:14:59.479
+tied to Org-roam specifically? Not a lot. Actually apart
+
+00:14:59.480 --> 00:15:02.959
+from the org-roam-bibtex, I think.
+
+00:15:02.960 --> 00:15:11.919
+Maybe I'm mixing up stuff there. But no, not a lot actually.
+
+00:15:11.920 --> 00:15:14.999
+It's just the fact that I'm using that as a in my org-roam
+
+00:15:15.000 --> 00:15:22.159
+system. But apart from that, most of, I mean, actually all of
+
+00:15:22.160 --> 00:15:27.519
+the exports can be done from a normal org-note or any other
+
+00:15:27.520 --> 00:15:31.799
+knowledge management system that you do with org-notes. So
+
+00:15:31.800 --> 00:15:34.119
+no, it's not specifically tied to org-roam, just that
+
+00:15:34.120 --> 00:15:38.399
+that's the way I'm using it. And I'm showing it this way, but
+
+00:15:38.400 --> 00:15:41.759
+yeah, actually the export process can be, can be done with,
+
+00:15:41.760 --> 00:15:49.839
+Yes, specifically tight work room. Yeah, just confirming
+
+00:15:49.840 --> 00:15:54.519
+this, the only way Org Roam intervenes into this process is
+
+00:15:54.520 --> 00:15:57.439
+just referencing
+
+00:15:57.440 --> 00:16:00.319
+bibliography elements. It just kind of intercedes a little
+
+00:16:00.320 --> 00:16:03.319
+bit between what Org Roam usually does. But when it comes to
+
+00:16:03.320 --> 00:16:08.759
+the exports to LaTeX and PDF eventually, that's completely
+
+00:16:08.760 --> 00:16:13.279
+deferring to org exports. So, ox-latex and all of this. So,
+
+00:16:13.280 --> 00:16:16.039
+we are not intervening in any way into this transpiling
+
+00:16:16.040 --> 00:16:20.719
+format. One comment. Yeah, I don't know if I imagine it is,
+
+00:16:20.720 --> 00:16:25.759
+but it looked from the slides that it was our graph was it.
+
+00:16:25.760 --> 00:16:35.439
+Sorry, that it was? org-ref, org-ref.
+
+00:16:35.440 --> 00:16:42.719
+Yes. Because it is a link system for citations. Built-in
+
+00:16:42.720 --> 00:16:46.359
+citations, which is, there is a built-in citation system in
+
+00:16:46.360 --> 00:16:50.639
+art mode. It uses, it doesn't use links. It has a special way
+
+00:16:50.640 --> 00:16:57.359
+to cite things. Yeah, because I believe, yeah, go on please,
+
+00:16:57.360 --> 00:17:01.519
+Vincent. No, I just wanted to say, in that case, I'm using the
+
+00:17:01.520 --> 00:17:10.119
+link with the cite command. I'm not using the org-roam link
+
+00:17:10.120 --> 00:17:14.079
+for the reference. I didn't really show that very
+
+00:17:14.080 --> 00:17:17.679
+carefully. But then, yeah, it's a site element that is
+
+00:17:17.680 --> 00:17:21.639
+exported. So the roam part is just like, you can access the
+
+00:17:21.640 --> 00:17:26.519
+org notes that you have attached to a reference paper. But
+
+00:17:26.520 --> 00:17:31.879
+that's it. Okay, because I was confused by why the
+
+00:17:31.880 --> 00:17:35.919
+bibliography is a link, why style is a link, because it is the
+
+00:17:35.920 --> 00:17:37.239
+approach org-ref uses.
+
+00:17:37.240 --> 00:17:47.839
+Ah, right. Okay, I see. Yeah, the thing is, actually I don't
+
+00:17:47.840 --> 00:17:52.159
+know why, but In my experience, using the org-roam,
+
+00:17:52.160 --> 00:17:57.599
+org-roam-bibtex links doesn't export or doesn't export
+
+00:17:57.600 --> 00:18:01.999
+properly. So like adding them with the org-ref-cite worked
+
+00:18:02.000 --> 00:18:05.359
+better. So that's, that's why I'm using these. If I may
+
+00:18:05.360 --> 00:18:07.439
+interject. If you're using org-ref-cite, you're using
+
+00:18:07.440 --> 00:18:11.319
+org-ref-for-export, which is slightly different. I'm
+
+00:18:11.320 --> 00:18:14.039
+going to interject very quickly because sadly we are a
+
+00:18:14.040 --> 00:18:15.919
+little pressed for time because we are heading into the next
+
+00:18:15.920 --> 00:18:18.559
+discussion. So just very quickly, if you want to continue
+
+00:18:18.560 --> 00:18:21.279
+the discussion, the BBB room is available at
+
+00:18:21.280 --> 00:18:24.319
+emacsconf-org. You can go to the talk and get the link to join
+
+00:18:24.320 --> 00:18:27.319
+the BBB. And the stream will be moving on to the next stream in
+
+00:18:27.320 --> 00:18:30.239
+about 5 to 10 seconds. So I'll see you on the other side. And
+
+00:18:30.240 --> 00:18:36.439
+thank you, Vincent. Thank you. All right, sorry for cutting
+
+00:18:36.440 --> 00:18:38.839
+a little abruptly. It's because we use crontabs to move to
+
+00:18:38.840 --> 00:18:42.519
+the next talk. And sadly, I don't have any leeway on this. So
+
+00:18:42.520 --> 00:18:45.279
+feel free to continue the discussion. I'll be moving on to
+
+00:18:45.280 --> 00:18:48.639
+make sure everything is working. So enjoy the discussion.
+
+00:18:48.640 --> 00:19:00.720
+Thank you very much. Bye-bye.
diff --git a/2024/captions/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt b/2024/captions/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt
new file mode 100644
index 00000000..c361ae62
--- /dev/null
+++ b/2024/captions/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt
@@ -0,0 +1,873 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:10.839
+And I believe we are live. Hi, Eric, how are you doing? Very
+
+00:00:10.840 --> 00:00:15.599
+well, thanks. It's a pleasure to have you as one of our
+
+00:00:15.600 --> 00:00:19.639
+speakers but it's also very nice to see you present about
+
+00:00:19.640 --> 00:00:24.239
+pgmacs because I found your talk to be very didactic and very
+
+00:00:24.240 --> 00:00:26.479
+visual. So thank you for taking the time to do a very nice
+
+00:00:26.480 --> 00:00:31.079
+presentation. I wanted to give the opportunity as I do with
+
+00:00:31.080 --> 00:00:36.279
+other speakers to maybe talk about some stuff that you could
+
+00:00:36.280 --> 00:00:39.279
+not include into the talk because of the format. So is there
+
+00:00:39.280 --> 00:00:41.319
+anything you'd like to share with the viewers that you
+
+00:00:41.320 --> 00:00:45.439
+weren't able to include?
+
+00:00:45.440 --> 00:00:50.719
+Oh, I think I gave most of the most of the relevant
+
+00:00:50.720 --> 00:00:54.759
+information. This is a fairly young application. I've been
+
+00:00:54.760 --> 00:00:58.159
+developing this since roughly the beginning of the year. So
+
+00:00:58.160 --> 00:01:02.879
+there are probably some rough edges that people will run
+
+00:01:02.880 --> 00:01:07.479
+into if they use Postgres differently from what I do. Or they
+
+00:01:07.480 --> 00:01:10.919
+hear maybe conflicts with some other Emacs packages that
+
+00:01:10.920 --> 00:01:14.959
+people use that I don't use. So I would really welcome people
+
+00:01:14.960 --> 00:01:19.359
+trying it out and sending out bug reports if they do
+
+00:01:19.360 --> 00:01:23.479
+encounter some. Yeah, I mean, it's usually... Go on,
+
+00:01:23.480 --> 00:01:29.079
+please. Yeah, that would certainly help to make sure it's
+
+00:01:29.080 --> 00:01:31.599
+nice and robust. And of course, if you're letting this loose
+
+00:01:31.600 --> 00:01:35.959
+on some production database that you might have, you want
+
+00:01:35.960 --> 00:01:41.239
+this to be quite robust, obviously. Yeah, indeed. Because
+
+00:01:41.240 --> 00:01:43.879
+usually, you know, when you start publishing packages like
+
+00:01:43.880 --> 00:01:46.599
+this, that's when you realize that it has bad interaction
+
+00:01:46.600 --> 00:01:49.759
+with other modes in the Emacs of other persons. But
+
+00:01:49.760 --> 00:01:52.039
+especially when you're dealing with databases, you also
+
+00:01:52.040 --> 00:01:54.639
+realize that the domain space of what you're trying to do
+
+00:01:54.640 --> 00:01:58.999
+with your mode also is hugely dependent on what people have
+
+00:01:59.000 --> 00:02:03.839
+in their database, which schema they have. So, indeed, if
+
+00:02:03.840 --> 00:02:05.839
+you have been interested, and I think plenty of people have
+
+00:02:05.840 --> 00:02:09.039
+been interested by what you've presented, part of the
+
+00:02:09.040 --> 00:02:11.679
+reason a software becomes great is that you've got plenty of
+
+00:02:11.680 --> 00:02:14.759
+people making bug reports and making sure that all the
+
+00:02:14.760 --> 00:02:18.799
+faults have been ironed out. So, you know what your task is. I
+
+00:02:18.800 --> 00:02:21.319
+will also ask you, particularly right now, people
+
+00:02:21.320 --> 00:02:24.519
+currently viewing, to add your questions on the pad as
+
+00:02:24.520 --> 00:02:27.639
+usual, because you've had plenty of nice reactions, but I'm
+
+00:02:27.640 --> 00:02:30.799
+sure you have plenty of questions as well. So Eric, what I'll
+
+00:02:30.800 --> 00:02:33.759
+be doing, I'll be reading you the questions so that it's a
+
+00:02:33.760 --> 00:02:37.439
+little more didactic. Starting with the first one. This is
+
+NOTE Q: Do you know if PGmacs works with TRAMP?
+
+00:02:37.440 --> 00:02:41.079
+brilliant, thank you. Do you know if pgmacs works with TRAMP?
+
+00:02:41.080 --> 00:02:44.119
+I often use TRAMP multi-hop to access databases both
+
+00:02:44.120 --> 00:02:46.959
+remotely when accessing via bastion server and locally
+
+00:02:46.960 --> 00:02:49.639
+when using OCI containers. I believe you've already
+
+00:02:49.640 --> 00:02:53.079
+answered but if you could just perhaps read your answer as
+
+00:02:53.080 --> 00:02:58.799
+well for everyone to benefit from it. Yep, sure, that's my
+
+00:02:58.800 --> 00:03:02.319
+comment indeed. So I haven't currently implemented any
+
+00:03:02.320 --> 00:03:07.559
+TRAMP support. I'm not sure that TRAMP is really useful for
+
+00:03:07.560 --> 00:03:11.439
+this type of situation, because as I understand it, TRAMP is
+
+00:03:11.440 --> 00:03:17.159
+establishing SSH connections itself to remote servers.
+
+00:03:17.160 --> 00:03:22.519
+pgmacs is doing the same thing, so it doesn't currently have
+
+00:03:22.520 --> 00:03:27.399
+any support for hooking in with the TRAMP support. Right.
+
+00:03:27.400 --> 00:03:31.439
+Pardon me if I missed the presentation. Oh, go on, please. I
+
+00:03:31.440 --> 00:03:34.359
+guess you could set up an SSH tunnel. It does work with an SSH
+
+00:03:34.360 --> 00:03:39.919
+tunnel, obviously, but there's no support for hooking into
+
+00:03:39.920 --> 00:03:43.799
+an SSH tunnel that TRAMP might be able to create. I'm not sure
+
+00:03:43.800 --> 00:03:46.959
+TRAMP actually uses SSH tunnels rather than direct
+
+00:03:46.960 --> 00:03:51.439
+commands, but anyway. Yeah, I think that might be useful.
+
+00:03:51.440 --> 00:03:54.759
+Yeah, I don't know either. I don't have the answer whether
+
+00:03:54.760 --> 00:03:59.039
+TRAMP actually can create tunnels like this. I'm usually
+
+00:03:59.040 --> 00:04:02.039
+used to TRAMP connecting to an endpoint, be it a directory or
+
+00:04:02.040 --> 00:04:06.239
+a file, and the tunnel is just you accessing the file. But
+
+00:04:06.240 --> 00:04:08.959
+usually, if you're trying to access a remote Postgres
+
+00:04:08.960 --> 00:04:12.039
+database, you would probably manage the port forwarding in
+
+00:04:12.040 --> 00:04:15.199
+a separate terminal just to be able to make sure that
+
+00:04:15.200 --> 00:04:17.759
+everything maps correctly to your machine, and then you
+
+00:04:17.760 --> 00:04:21.959
+would launch pgmacs with the forward port information.
+
+00:04:21.960 --> 00:04:25.519
+That's, I assume, how you would do it anyway. But yeah, I
+
+00:04:25.520 --> 00:04:29.119
+mean, if you could specify what you mean by TRAMP support and
+
+00:04:29.120 --> 00:04:31.839
+if you have something specific in mind, I'm talking to the
+
+00:04:31.840 --> 00:04:35.119
+questioner, feel free to specify and we'll see if you can
+
+00:04:35.120 --> 00:04:38.239
+answer it. But in the meantime, moving to the next question.
+
+NOTE Q: How did you come up with this brilliant idea?
+
+00:04:38.240 --> 00:04:41.999
+Great work, I'm impressed. How did you come up with this
+
+00:04:42.000 --> 00:04:49.079
+brilliant idea, I assume, to create pgmacs? Well, thanks for
+
+00:04:49.080 --> 00:04:52.839
+the compliment. It's a lot of fun developing something
+
+00:04:52.840 --> 00:04:57.799
+which is, as I said, such a small amount of code and which
+
+00:04:57.800 --> 00:05:02.359
+provides quite a bit of useful functionality. In
+
+00:05:02.360 --> 00:05:06.839
+particular, if you compare it with existing Terminal mode
+
+00:05:06.840 --> 00:05:12.799
+applications for manipulating Postgres data, they are
+
+00:05:12.800 --> 00:05:19.279
+not as extensible as Emacs is naturally. So I actually got
+
+00:05:19.280 --> 00:05:23.439
+the idea for developing this when I first tested out the
+
+00:05:23.440 --> 00:05:27.439
+SQLite mode, which is available in Emacs 29.1.
+
+00:05:27.440 --> 00:05:31.879
+And I thought, well, that's really quite impressive. And it
+
+00:05:31.880 --> 00:05:37.359
+allows you to delete rows and insert content and so on. And I
+
+00:05:37.360 --> 00:05:42.359
+was thinking, yeah, Emacs is a, is a useful environment to do
+
+00:05:42.360 --> 00:05:50.079
+that. And since several years ago, when I was doing my PhD, so
+
+00:05:50.080 --> 00:05:53.999
+to avoid doing my PhD, I was developing Emacs, I was
+
+00:05:54.000 --> 00:05:58.399
+developing stuff in Emacs Lisp and one of the libraries I
+
+00:05:58.400 --> 00:06:02.959
+developed was an interface to Postgres over the network. So
+
+00:06:02.960 --> 00:06:08.039
+that's the library called pg.el, which is used by pgmacs to
+
+00:06:08.040 --> 00:06:14.239
+access Postgres and to do all the parsing of data which
+
+00:06:14.240 --> 00:06:19.279
+arrives in Postgres formats into the Emacs Lisp into the
+
+00:06:19.280 --> 00:06:22.999
+Emacs corresponding versions. So, for example, integers
+
+00:06:23.000 --> 00:06:25.399
+are passed as Emacs integers, floating point numbers as
+
+00:06:25.400 --> 00:06:30.839
+floating point numbers, and so on. Right, yeah. I mean, it's
+
+00:06:30.840 --> 00:06:34.439
+pretty needed, obviously, when you have such a tooling like
+
+00:06:34.440 --> 00:06:37.359
+this, to make sure that the type conversion works properly,
+
+00:06:37.360 --> 00:06:39.879
+because the types that you have in Postgres do not
+
+00:06:39.880 --> 00:06:43.879
+necessarily map over to what we have in Emacs. Like, I'm
+
+00:06:43.880 --> 00:06:49.239
+interested, how would you handle g's and b columns in pgmacs?
+
+00:06:49.240 --> 00:06:55.039
+JSON is mapped to an edis dict, a dictionary.
+
+00:06:55.040 --> 00:07:03.759
+It depends on the top level object type for your JSON column.
+
+00:07:03.760 --> 00:07:07.599
+If it's an array, it's mapped to an Emacs Lisp array. If it's a
+
+00:07:07.600 --> 00:07:12.639
+dict, which is most common, it's mapped to an Emacs Lisp
+
+00:07:12.640 --> 00:07:17.679
+dictionary. All right, well it makes perfect sense. So I can
+
+00:07:17.680 --> 00:07:21.839
+break in with a question. Thanks, I just helped myself to the
+
+00:07:21.840 --> 00:07:26.159
+BBB privilege of kind of running around backstage, being a
+
+00:07:26.160 --> 00:07:31.679
+helper backstage. So thanks for your awesome talk, Eric. I
+
+00:07:31.680 --> 00:07:36.719
+super appreciated it. You know, I noticed that you that
+
+00:07:36.720 --> 00:07:43.159
+you're on a slightly older version of Emacs that I deal with
+
+00:07:43.160 --> 00:07:49.519
+in helping with producing the Windows binaries I run into
+
+00:07:49.520 --> 00:07:53.839
+and with some other stuff I do. I'm dealing with that
+
+00:07:53.840 --> 00:07:56.919
+friction of sometimes I've got some work of my own that
+
+00:07:56.920 --> 00:07:59.719
+applies against a specific version of Emacs and it's a bunch
+
+00:07:59.720 --> 00:08:02.519
+of work to think about moving it forward. Just curious if you
+
+00:08:02.520 --> 00:08:06.479
+started thinking about that or if you routine, if that's a
+
+00:08:06.480 --> 00:08:09.919
+routine that you haven't done or there's something maybe
+
+00:08:09.920 --> 00:08:14.599
+specifically going on with, you know, with trunk
+
+00:08:14.600 --> 00:08:20.599
+development that looks intimidating to deal with. Thanks
+
+00:08:20.600 --> 00:08:24.959
+for the comment. I'm not sure I'm using a really old version
+
+00:08:24.960 --> 00:08:29.239
+for Windows. I don't really develop often on Windows, but I I
+
+00:08:29.240 --> 00:08:32.639
+occasionally check that it works, and I took a screenshot
+
+00:08:32.640 --> 00:08:34.799
+that I included in the slides here, but I think I'm using
+
+00:08:34.800 --> 00:08:40.559
+29.4, the current version on Windows. I thought I saw 29.1,
+
+00:08:40.560 --> 00:08:48.839
+so that's probably my, I probably missed it when it went by.
+
+00:08:48.840 --> 00:08:54.879
+My bad. No, no, I use it via the choco package updater so that
+
+00:08:54.880 --> 00:08:58.479
+updates the Emacs version quite easily on Windows. So
+
+00:08:58.480 --> 00:09:03.079
+thanks for your work on maintaining Windows binaries. I
+
+00:09:03.080 --> 00:09:07.519
+realize that was- I sit downstream at the end of a lot of other
+
+00:09:07.520 --> 00:09:11.399
+people's hard work and then just focus on trying to QA well
+
+00:09:11.400 --> 00:09:15.559
+and help catch problems early. It's really fun. But of
+
+00:09:15.560 --> 00:09:16.399
+course, my pleasure.
+
+00:09:16.400 --> 00:09:21.799
+Coming back to the previous question, so the the
+
+00:09:21.800 --> 00:09:26.919
+questionnaire actually provided a little more context. So
+
+NOTE TRAMP continued
+
+00:09:26.920 --> 00:09:30.599
+with docker.el, kubel, etc, it's often possible to, for
+
+00:09:30.600 --> 00:09:33.919
+example, select a container pod or whatever that is hosted
+
+00:09:33.920 --> 00:09:36.639
+on the machine you've connected to via TRAMP, such as
+
+00:09:36.640 --> 00:09:41.799
+Podman, colon image colon path and trigger a terminal shell
+
+00:09:41.800 --> 00:09:44.959
+as well as pull forward on other similar things. It'd be nice
+
+00:09:44.960 --> 00:09:47.679
+to be able to use this tool in a similar way since it would open
+
+00:09:47.680 --> 00:09:49.919
+up the ability to use it with complex connection
+
+00:09:49.920 --> 00:09:53.679
+configuration. Doing SSH tunnel manually is of course
+
+00:09:53.680 --> 00:09:56.879
+totally fine in practice and if it is actually the case
+
+00:09:56.880 --> 00:10:01.319
+personally when I need to remote into a kubernetes machine I
+
+00:10:01.320 --> 00:10:05.239
+use POSIX script that I use on most of my machines but I don't
+
+00:10:05.240 --> 00:10:08.599
+do it inside Emacs. But yeah, if such a thing is possible via
+
+00:10:08.600 --> 00:10:11.039
+TRAMP, it definitely feels like it would be possible to do
+
+00:10:11.040 --> 00:10:14.919
+something similar in pgmacs. So perhaps that's a path of
+
+00:10:14.920 --> 00:10:19.559
+investigation for you that has opened up. Yeah, thanks for
+
+00:10:19.560 --> 00:10:22.759
+these comments. I'll look into that indeed if people have
+
+00:10:22.760 --> 00:10:26.159
+some shortcuts registered in TRAMP. So not for a terminal,
+
+00:10:26.160 --> 00:10:29.599
+because pgmacs won't work through a terminal, but through a
+
+00:10:29.600 --> 00:10:33.439
+port forward, then that would be convenient. I'll see how
+
+00:10:33.440 --> 00:10:38.639
+easy that is to set up. Yeah, I'm pretty sure the way it works
+
+00:10:38.640 --> 00:10:41.279
+is that it starts some processes in the background in Emacs
+
+00:10:41.280 --> 00:10:45.359
+just to either maintain the port forward or to maybe remap
+
+00:10:45.360 --> 00:10:49.239
+some kubecon things or whatever. So with pgmacs,
+
+00:10:49.240 --> 00:10:51.879
+considering complex pipelines to get to the end
+
+00:10:51.880 --> 00:10:54.679
+destination, it feels like it would be possible to do
+
+00:10:54.680 --> 00:10:57.439
+something. But perhaps it's not the responsibility of
+
+00:10:57.440 --> 00:11:00.199
+pgmacs, perhaps it's the responsibility of another,
+
+00:11:00.200 --> 00:11:03.639
+perhaps something that would target TRAMP more so than
+
+00:11:03.640 --> 00:11:08.399
+pgmacs. But it's nice to see again how the beauty of Emacs
+
+00:11:08.400 --> 00:11:12.119
+is that everything is Elisp at the end, and the way they
+
+00:11:12.120 --> 00:11:16.079
+interact, you might want to question yourself whether this
+
+00:11:16.080 --> 00:11:18.919
+belongs more to pgmacs or more to TRAMP, but at the end of the
+
+00:11:18.920 --> 00:11:22.439
+day, both applications will be able to benefit from the
+
+00:11:22.440 --> 00:11:24.759
+functions of the other. So that's the beauty of the
+
+00:11:24.760 --> 00:11:29.159
+philosophy right here. I do see... Absolutely, I agree.
+
+00:11:29.160 --> 00:11:32.279
+Sorry, before we move to different questions, an
+
+00:11:32.280 --> 00:11:36.759
+additional point. I should point out that to warn people
+
+00:11:36.760 --> 00:11:41.159
+that probably running over an SSH tunnel is going to be a bit
+
+00:11:41.160 --> 00:11:46.839
+slow. I mostly use it on my own machine via a local Unix
+
+00:11:46.840 --> 00:11:50.439
+connection. And for some reason that I haven't understood,
+
+00:11:50.440 --> 00:11:55.119
+pgmacs is quite a bit slower when it's even connecting to the
+
+00:11:55.120 --> 00:12:00.359
+same database on the local machine, but via Emacs' network
+
+00:12:00.360 --> 00:12:05.039
+support instead of via the Unix socket support. There is
+
+00:12:05.040 --> 00:12:11.639
+like a factor 10 difference in throughput and in latency. I
+
+00:12:11.640 --> 00:12:15.839
+don't really understand why currently, because it's using
+
+00:12:15.840 --> 00:12:21.919
+exactly the same Emacs Lisp level primitives. And when you
+
+00:12:21.920 --> 00:12:24.799
+do this using other libraries like libpq, which is the
+
+00:12:24.800 --> 00:12:30.639
+Postgres standard official library for connecting to
+
+00:12:30.640 --> 00:12:34.319
+Postgres, there's not such a performance difference. So
+
+00:12:34.320 --> 00:12:39.759
+there's probably something that is not working perfectly
+
+00:12:39.760 --> 00:12:43.879
+in the Emacs network support. I'll have to see whether I can
+
+00:12:43.880 --> 00:12:48.679
+investigate how to improve that performance. Yeah, I'm
+
+00:12:48.680 --> 00:12:52.999
+going to say it sounds like a great bug to have because it
+
+00:12:53.000 --> 00:12:57.319
+feels like it will allow you to dig deeper into Emacs to
+
+00:12:57.320 --> 00:12:59.679
+understand what is going on here. Because as you said,
+
+00:12:59.680 --> 00:13:01.519
+normally it's supposed to work exactly the same,
+
+00:13:01.520 --> 00:13:04.319
+especially if it's still in your local machine, but it
+
+00:13:04.320 --> 00:13:07.919
+doesn't. Personally, that's the kind of bug that I really
+
+00:13:07.920 --> 00:13:11.199
+like and that I'd like to spend more time investigating. So
+
+00:13:11.200 --> 00:13:14.759
+perhaps you might think otherwise, but I wish you luck on the
+
+00:13:14.760 --> 00:13:18.599
+debugging with this particular matter. All right, moving
+
+00:13:18.600 --> 00:13:21.519
+to the last question that we have and then we'll probably go
+
+00:13:21.520 --> 00:13:22.965
+on a little bit of a break.
+
+NOTE Q: Is sqlite-mode also capable of all of this functionality (table relations, etc)? If not, will it be possible to abstract out this functionality from pgmacs somehow?
+
+00:13:22.966 --> 00:13:25.399
+Question. Is SQLite mode also
+
+00:13:25.400 --> 00:13:28.439
+capable of all of this functionality, table relations,
+
+00:13:28.440 --> 00:13:31.559
+etc.? If not, would it be possible to abstract out this
+
+00:13:31.560 --> 00:13:33.279
+functionality from pgmacs somehow?
+
+00:13:33.280 --> 00:13:41.319
+So I'm not very familiar with SQLite because I don't really
+
+00:13:41.320 --> 00:13:46.439
+use it very much myself. I'm not sure I can answer that
+
+00:13:46.440 --> 00:13:53.079
+question. Sorry about that. I think it is probably a bit more
+
+00:13:53.080 --> 00:13:56.639
+basic because SQLite itself is quite a bit more basic in
+
+00:13:56.640 --> 00:14:01.639
+terms of the types of indexes it's able to support and the
+
+00:14:01.640 --> 00:14:09.199
+types of constraints it's able to support. Is it relevant to
+
+00:14:09.200 --> 00:14:13.799
+create an abstract API for connecting to databases? I think
+
+00:14:13.800 --> 00:14:19.639
+there is already actually a library that abstracts out from
+
+00:14:19.640 --> 00:14:25.439
+SQLite and Postgres. Postgres, when you connect to it via a
+
+00:14:25.440 --> 00:14:29.159
+PSQL subsystem,
+
+00:14:29.160 --> 00:14:38.439
+it might be worthwhile doing that, but there are often a few
+
+00:14:38.440 --> 00:14:42.279
+minor differences in SQL syntax and so on between
+
+00:14:42.280 --> 00:14:45.879
+databases. So it might be difficult to have something that
+
+00:14:45.880 --> 00:14:53.159
+really works with generic queries in an effective way. All
+
+00:14:53.160 --> 00:14:58.239
+these SQL dialects are a little bit different,
+
+00:14:58.240 --> 00:15:02.319
+unfortunately. So there was another question about I was
+
+00:15:02.320 --> 00:15:06.510
+just going to read out the next question.
+
+NOTE Q: Would it be possible to move it into Emacs tree? Are the maintainers interested in it?
+
+00:15:06.511 --> 00:15:07.519
+So have you thought
+
+00:15:07.520 --> 00:15:12.559
+about integrating your work into the Emacs tree? Do you know
+
+00:15:12.560 --> 00:15:17.599
+if people are interested? This was a question from the past.
+
+00:15:17.600 --> 00:15:24.639
+Yeah, I think it's probably a bit young to do so, so far.
+
+00:15:24.640 --> 00:15:30.119
+I'm updating it quite regularly. Maybe once it's more
+
+00:15:30.120 --> 00:15:35.399
+stabilized, I wouldn't necessarily object to this. I have
+
+00:15:35.400 --> 00:15:38.559
+some sort of philosophical objections to giving away my
+
+00:15:38.560 --> 00:15:42.519
+copyright, so I'm not sure that will actually be possible.
+
+00:15:42.520 --> 00:15:48.079
+Oh, that'd be interesting. I'd love to get you on maybe a
+
+00:15:48.080 --> 00:15:51.639
+panel talk about that sometime. Something I'd think about.
+
+00:15:51.640 --> 00:15:55.999
+Well, from a very simple point of view, I think that the
+
+00:15:56.000 --> 00:16:01.159
+copyright and the system works well with the existing
+
+00:16:01.160 --> 00:16:05.319
+license and without a license transfer, so I don't feel that
+
+00:16:05.320 --> 00:16:07.766
+the, sorry, without a copyright transfer,
+
+00:16:07.767 --> 00:16:14.679
+I don't feel that the copyright transfer is really a necessary step for
+
+00:16:14.680 --> 00:16:21.639
+taking things away from maintainers. It feels like asking
+
+00:16:21.640 --> 00:16:26.559
+the maintainers to give up on some of their copyright...
+
+00:16:26.560 --> 00:16:29.999
+Indeed. Yeah, I see where that's a little beyond our scope,
+
+00:16:30.000 --> 00:16:33.519
+but it's a fascinating topic and I appreciate your sharing
+
+00:16:33.520 --> 00:16:36.959
+your views there. I mean, that sounds like a whole topic of
+
+00:16:36.960 --> 00:16:41.599
+its own, frankly.
+
+00:16:41.600 --> 00:16:47.039
+Yeah. Corwin, do you want to fill the last question? Sure. So
+
+00:16:47.040 --> 00:16:52.039
+the question was, I almost missed this one, so glad I didn't.
+
+00:16:52.040 --> 00:16:53.849
+This may have been answered already.
+
+NOTE Q: What do you use for the in-buffer tables? Vtable?
+
+00:16:53.850 --> 00:16:55.159
+What do you use for
+
+00:16:55.160 --> 00:17:00.039
+in-buffer tables? Do you use vtable? Yep. Thanks for the
+
+00:17:00.040 --> 00:17:04.599
+question. It is indeed vtable. However, it's not really
+
+00:17:04.600 --> 00:17:10.919
+vtable. It's a fork that I made, which is called pgmix table.
+
+00:17:10.920 --> 00:17:17.199
+because Vtable doesn't have exactly the right
+
+00:17:17.200 --> 00:17:22.119
+functionality in particular for recoloring rows when you
+
+00:17:22.120 --> 00:17:28.239
+add a row. So I've currently forked this. I'm thinking about
+
+00:17:28.240 --> 00:17:36.359
+giving those back as patches to Vtable, plausibly.
+
+00:17:36.360 --> 00:17:40.719
+I know that there is some ongoing work also on vTable in the
+
+00:17:40.720 --> 00:17:45.839
+core. So I'll have to look at what is plausible to feed back
+
+00:17:45.840 --> 00:17:46.719
+into the main version.
+
+00:17:46.720 --> 00:17:55.199
+All right, great. I think we are nearing the end of the Q&A. We
+
+00:17:55.200 --> 00:17:59.079
+are due to move to the next talk in about three minutes now. I
+
+00:17:59.080 --> 00:18:02.719
+can fill 30 seconds or a minute of that with I guess one more
+
+00:18:02.720 --> 00:18:05.079
+maybe back and forth and I'll try to be quicker this time.
+
+00:18:05.080 --> 00:18:08.879
+First of all, thanks for your kind remarks. But my question
+
+00:18:08.880 --> 00:18:11.839
+wasn't really about Windows so much, it was just how I'm
+
+00:18:11.840 --> 00:18:16.639
+relating... So have you, let me put it more simply, have you
+
+NOTE Integrating with Emacs 30?
+
+00:18:16.640 --> 00:18:20.639
+started looking at integrating with Emacs 30 or with the
+
+00:18:20.640 --> 00:18:24.679
+master branch at all? Do you have any sense of how much work
+
+00:18:24.680 --> 00:18:27.079
+it's going to be for you to carry things forward there? I've
+
+00:18:27.080 --> 00:18:31.039
+tested it with the pre-release, yes. I mean, just a very
+
+00:18:31.040 --> 00:18:35.079
+basic testing and everything works perfectly. There's
+
+00:18:35.080 --> 00:18:39.799
+really no... There was no difference that I have noticed
+
+00:18:39.800 --> 00:18:46.279
+between 29.4 and the 30 pre-release on the aspects that I use
+
+00:18:46.280 --> 00:18:48.959
+at least in Emacs. Neato.
+
+00:18:48.960 --> 00:18:56.439
+That was it, Leo. Thanks for letting me back in for one more
+
+00:18:56.440 --> 00:18:58.799
+bite at the apple there. And I appreciate everybody tuning
+
+00:18:58.800 --> 00:19:03.479
+in and participating in the Q&A and this awesome talk.
+
+00:19:03.480 --> 00:19:06.879
+Thanks for your questions. That was great. Yeah, and thank
+
+00:19:06.880 --> 00:19:10.319
+you for answering them and for the presentation as well. So
+
+00:19:10.320 --> 00:19:14.199
+we'll be moving in about two minutes to the next talk, which
+
+00:19:14.200 --> 00:19:20.159
+is pre-recorded as well. Well, we didn't really give you the
+
+00:19:20.160 --> 00:19:29.399
+chance, Eric, to have the last word. So do you have any last
+
+00:19:29.400 --> 00:19:29.799
+word?
+
+00:19:29.800 --> 00:19:34.479
+please try it out, try out pgmacs and send some feedback
+
+00:19:34.480 --> 00:19:39.279
+that'll help improve it over time. Sure, great. Well, thank
+
+00:19:39.280 --> 00:19:41.559
+you so much, Eric, for taking the time to come to the
+
+00:19:41.560 --> 00:19:45.999
+conference, and we'll see you soon. Thank you. Bye,
+
+00:19:46.000 --> 00:19:50.279
+everyone. Bye. And we'll be live with the next talk in about 1
+
+00:19:50.280 --> 00:19:53.119
+minute 30. So we'll take a little bit of a breather, go make
+
+00:19:53.120 --> 00:19:56.599
+some coffee, go take a bio break. We'll be back soon. See you
+
+00:19:56.600 --> 00:20:01.880
+in a bit.
diff --git a/2024/captions/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt b/2024/captions/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt
new file mode 100644
index 00000000..14ca3104
--- /dev/null
+++ b/2024/captions/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt
@@ -0,0 +1,2420 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:10.319
+And about, I think we are live. Okay, hi again everyone. And hi
+
+00:00:10.320 --> 00:00:14.679
+Blaine, how are you doing? Fantastic, happy to be here.
+
+00:00:14.680 --> 00:00:17.479
+Yeah, it's good to see you again. We were just reminiscing in
+
+00:00:17.480 --> 00:00:20.239
+a room right now that it's almost been a year exactly since we
+
+00:00:20.240 --> 00:00:23.879
+last spoke because you were at the EmacsConf last year. That's
+
+00:00:23.880 --> 00:00:28.559
+right. This is great fun. Yeah, well, thank you for coming in
+
+00:00:28.560 --> 00:00:33.079
+and especially every time you come with a very well-crafted
+
+00:00:33.080 --> 00:00:37.279
+talks talking about, you know, what you do with Org Mode, Org
+
+00:00:37.280 --> 00:00:41.039
+Roam and whatever. And it's really fascinating as someone
+
+00:00:41.040 --> 00:00:43.479
+who develops and use those tools constantly to see you put
+
+00:00:43.480 --> 00:00:46.199
+them in action so well. Because you, you know, the way you
+
+00:00:46.200 --> 00:00:49.719
+talk about your research, it really reminds me on what we
+
+00:00:49.720 --> 00:00:53.279
+were, sorry, I've got elves talking in my ears and I'm still
+
+00:00:53.280 --> 00:00:56.639
+not used to it at this point. But it's really nice to see you
+
+00:00:56.640 --> 00:01:00.359
+put all of this together into a very cohesive way for you to
+
+00:01:00.360 --> 00:01:03.759
+write. Okay, let me just share my screen and I'll be sharing
+
+00:01:03.760 --> 00:01:11.879
+the questions. Where is it? All right, take presenter. And I
+
+00:01:11.880 --> 00:01:18.079
+will be sharing the questions. All right. Can you see my
+
+00:01:18.080 --> 00:01:24.159
+screen all right? I can, yes. OK, cool. So we move straight to
+
+00:01:24.160 --> 00:01:26.999
+the question. Let me just check on the time. I think we have
+
+00:01:27.000 --> 00:01:31.999
+about until 10.20, which is in 17 minutes. So let's take
+
+00:01:32.000 --> 00:01:35.639
+about 10 to 15 minutes of question time. And if people have
+
+00:01:35.640 --> 00:01:38.599
+joined on BBB, we'll also be taking questions live. All
+
+NOTE Q: what does 0573 means in your init. file name?
+
+00:01:38.600 --> 00:01:44.079
+right. Starting with the first question, what does 0573
+
+00:01:44.080 --> 00:01:49.719
+mean in your init file name? So this name is, you can think of
+
+00:01:49.720 --> 00:01:55.879
+it as a prefix or a stub. It's an index number that I utilize
+
+00:01:55.880 --> 00:02:01.479
+before a short name that describes the project. So I have all
+
+00:02:01.480 --> 00:02:06.119
+my projects in my home directory, and I just start typing the
+
+00:02:06.120 --> 00:02:12.199
+project number or index number. in the terminal and I have
+
+00:02:12.200 --> 00:02:17.879
+autocompletion available through oh my ZSH package. So I
+
+00:02:17.880 --> 00:02:21.199
+just hit tab and it autocompletes the name of the project and
+
+00:02:21.200 --> 00:02:26.319
+pops me into that folder. And so I find this to be very easy for
+
+00:02:26.320 --> 00:02:30.919
+navigating between projects. As you saw, I work on multiple
+
+00:02:30.920 --> 00:02:37.399
+projects in a given day and this helps me move about. And I
+
+00:02:37.400 --> 00:02:45.639
+also use this number at the start of the log file name and at
+
+00:02:45.640 --> 00:02:50.639
+the start of the manuscript name and the start of the, I also
+
+00:02:50.640 --> 00:02:54.079
+have an annotated bibliography. So all those files are
+
+00:02:54.080 --> 00:02:59.359
+identified just in case I accidentally save one to the wrong
+
+00:02:59.360 --> 00:03:04.639
+folder. I can avoid, I can sort them out later. Great
+
+00:03:04.640 --> 00:03:09.519
+question. Thank you. Next question, which I think is going
+
+NOTE Q: What does Zettelkasten mean?
+
+00:03:09.520 --> 00:03:16.159
+to be a long one. What does Zettelkasten mean? So this means
+
+00:03:16.160 --> 00:03:20.719
+like, I guess, notebox, something along those lines. You
+
+00:03:20.720 --> 00:03:24.879
+can think of it as a- Yeah, spitbox usually, that's the word
+
+00:03:24.880 --> 00:03:29.159
+we use. Thank you. So this is a kind of like a card catalog
+
+00:03:29.160 --> 00:03:33.359
+system that when it was done on paper, and now it's being done
+
+00:03:33.360 --> 00:03:38.679
+electronically through various software packages. So in
+
+00:03:38.680 --> 00:03:43.199
+the Emacs world, org-roam is a one of several alternate
+
+00:03:43.200 --> 00:03:47.999
+packages that you can use. Prot has the note and there's a
+
+00:03:48.000 --> 00:03:59.079
+couple others. So, idea is that you create a note, usually a,
+
+00:03:59.080 --> 00:04:04.239
+ultimately what you want to do is create a nugget of
+
+00:04:04.240 --> 00:04:09.479
+knowledge from your reading that you've done. and you add it
+
+00:04:09.480 --> 00:04:15.879
+to this note system in such a way that you can recover it more
+
+00:04:15.880 --> 00:04:20.159
+easily than what had to be done in the old days with index
+
+00:04:20.160 --> 00:04:23.719
+cards.
+
+00:04:23.720 --> 00:04:28.199
+So you set up backlinks and then you can use the search
+
+00:04:28.200 --> 00:04:34.919
+features in Org Roam to filter and find the notes again in the
+
+00:04:34.920 --> 00:04:43.079
+future. Org Roam has a wonderful GUI interface where you can
+
+00:04:43.080 --> 00:04:47.079
+display it as a knowledge graph, essentially, all your
+
+00:04:47.080 --> 00:04:52.479
+nodes and the backlinks between them. I set mine up in a
+
+00:04:52.480 --> 00:04:56.639
+rather hierarchical fashion to, at least right now, it's
+
+00:04:56.640 --> 00:05:01.959
+pretty hierarchical at this point, but it may become more
+
+00:05:01.960 --> 00:05:07.679
+disorganized over time. But I find it I'm sort of a visual
+
+00:05:07.680 --> 00:05:12.519
+person. I like mind maps a lot. I find that this visual
+
+00:05:12.520 --> 00:05:16.919
+display of my Zettelkasten is similar, resembles to a
+
+00:05:16.920 --> 00:05:22.439
+certain degree, a mind map.
+
+00:05:22.440 --> 00:05:25.599
+Okay, well, that's a pretty good definition of what
+
+00:05:25.600 --> 00:05:28.839
+Zettelkasten is, and you also went on to specify what it
+
+00:05:28.840 --> 00:05:31.599
+means inside Emacs, so thank you. I think that clarifies it
+
+00:05:31.600 --> 00:05:34.199
+for the two people in the room who still do not know, after
+
+00:05:34.200 --> 00:05:36.759
+attending four Emacs conferences, what is the
+
+00:05:36.760 --> 00:05:41.759
+Zettelkasten method. Moving on to the next question,
+
+NOTE Q: How many papers are you writing at the same time?
+
+00:05:41.760 --> 00:05:44.399
+how many papers are you writing at the same time? Because I
+
+00:05:44.400 --> 00:05:47.759
+believe you mentioned that you had concurrent papers being
+
+00:05:47.760 --> 00:05:51.959
+written during your presentation. So I'm probably working
+
+00:05:51.960 --> 00:05:57.839
+on, in a given year, somewhere between 10 and 15. How many do I
+
+00:05:57.840 --> 00:06:03.199
+get published in a year? Probably anywhere from one to four
+
+00:06:03.200 --> 00:06:08.639
+or five. So these papers often, the work on them spans
+
+00:06:08.640 --> 00:06:13.559
+multiple years. will start working on a paper when I begin,
+
+00:06:13.560 --> 00:06:16.519
+before I begin the experiments, ideally, because I'm
+
+00:06:16.520 --> 00:06:23.439
+trying to do hypothesis-driven research. And so that helps
+
+00:06:23.440 --> 00:06:27.559
+define the scope of the project and limit the number of
+
+00:06:27.560 --> 00:06:32.959
+rabbit holes I go down. So, but through the nature of the
+
+00:06:32.960 --> 00:06:36.919
+work, there's a lot of waiting required in my case for
+
+00:06:36.920 --> 00:06:39.679
+crystals to grow and then the opportunity to collect
+
+00:06:39.680 --> 00:06:43.879
+diffraction data on the crystals. And then the structures
+
+00:06:43.880 --> 00:06:48.559
+have to be determined and refined and analyzed and then
+
+00:06:48.560 --> 00:06:52.799
+deposited, figures have to be made. So a lot of steps are
+
+00:06:52.800 --> 00:06:57.759
+involved that those take generally span, that work can span
+
+00:06:57.760 --> 00:07:02.559
+several years.
+
+00:07:02.560 --> 00:07:09.399
+In a given day, I try to work on two papers, ideally. I haven't
+
+00:07:09.400 --> 00:07:12.279
+been doing so well lately over the past month.
+
+00:07:12.280 --> 00:07:19.759
+In the past year, there was a couple of days where I worked on
+
+00:07:19.760 --> 00:07:24.239
+five papers. There was something like a half dozen where I
+
+00:07:24.240 --> 00:07:29.159
+worked on four, about 40 days where I worked on three, and I
+
+00:07:29.160 --> 00:07:33.479
+think there was something like about 100 days where I worked
+
+00:07:33.480 --> 00:07:40.999
+on two papers a day, about 140 days where I just worked on one.
+
+00:07:41.000 --> 00:07:45.719
+So my idea is, I've been sort of developing more recently is
+
+00:07:45.720 --> 00:07:49.159
+that I'll start doing like the generative writing on a paper
+
+00:07:49.160 --> 00:07:51.959
+at the beginning of the day on the paper project I'm most
+
+00:07:51.960 --> 00:07:55.439
+excited about. I tried to, I'm a night owl. I tried to do this
+
+00:07:55.440 --> 00:08:00.519
+work early in the morning when I'm half awake to try to
+
+00:08:00.520 --> 00:08:03.439
+overcome my internal editor that inhibits me from writing
+
+00:08:03.440 --> 00:08:09.879
+prose freely. And so the idea is just to get a lot of words out,
+
+00:08:09.880 --> 00:08:14.639
+worry about editing them later. And then after about three
+
+00:08:14.640 --> 00:08:17.999
+hours, I'll switch to the second project that I'm less
+
+00:08:18.000 --> 00:08:21.999
+excited about. And I can go for another 90 minutes to two
+
+00:08:22.000 --> 00:08:27.719
+hours on that project. So I build up a lot of momentum, and
+
+00:08:27.720 --> 00:08:31.959
+then I do the switch. And I find that switch to be relatively
+
+00:08:31.960 --> 00:08:37.359
+easy. So my process will be On project A, make some final
+
+00:08:37.360 --> 00:08:42.359
+notes about what was accomplished in the writing log. Then
+
+00:08:42.360 --> 00:08:47.999
+I'll switch over to the writing log for the project B, and
+
+00:08:48.000 --> 00:08:51.359
+I'll go to the diary section at the beginning. I'll make a
+
+00:08:51.360 --> 00:08:57.279
+little to-do list and maybe look at the prior entry in the
+
+00:08:57.280 --> 00:09:03.199
+diary if I need to reboot my memory. And then I'll move on to
+
+00:09:03.200 --> 00:09:07.919
+the manuscript and go for 90 minutes or two hours.
+
+00:09:07.920 --> 00:09:12.479
+Generally, you're only good for somewhere between four and
+
+00:09:12.480 --> 00:09:15.359
+a half, five and a half hours. If you try to write in a
+
+00:09:15.360 --> 00:09:17.839
+generative fashion much longer than that, your
+
+00:09:17.840 --> 00:09:21.279
+productivity goes down quite a bit. You're better off
+
+00:09:21.280 --> 00:09:24.039
+switching to a completely different activity and then
+
+00:09:24.040 --> 00:09:30.159
+using your experience doing that writing to essentially
+
+00:09:30.160 --> 00:09:33.199
+launch background jobs in your subconscious. And so you
+
+00:09:33.200 --> 00:09:37.479
+will get those ideas in the shower the next morning.
+
+00:09:37.480 --> 00:09:44.519
+I find it really funny because I also relate. I've also
+
+00:09:44.520 --> 00:09:48.919
+worked a lot on organization as linked to paper writing but
+
+00:09:48.920 --> 00:09:53.719
+also to on my work as a developer and it's funny how you refer
+
+00:09:53.720 --> 00:09:56.999
+to your ability to think about something in very similar
+
+00:09:57.000 --> 00:09:59.399
+terms to how a computer would think about something. You've
+
+00:09:59.400 --> 00:10:02.399
+mentioned in your presentation the cost of context
+
+00:10:02.400 --> 00:10:04.919
+switching between different things but it's also
+
+00:10:04.920 --> 00:10:08.119
+something that we use in computing when a processor needs to
+
+00:10:08.120 --> 00:10:11.719
+be thinking about something else, well, it has a cost. And
+
+00:10:11.720 --> 00:10:15.359
+it's really fun for me to hear you talk about, oh, I need to
+
+00:10:15.360 --> 00:10:19.159
+select two topics, but no longer than 90 minutes per topic,
+
+00:10:19.160 --> 00:10:21.319
+because it's really about maximizing your output for
+
+00:10:21.320 --> 00:10:25.239
+creativity. And overall, your entire chat, your entire
+
+00:10:25.240 --> 00:10:28.519
+presentation here is about really maximizing the
+
+00:10:28.520 --> 00:10:32.959
+engagement that you have between outputs and your
+
+00:10:32.960 --> 00:10:37.159
+cognition. And I really find this amazing how down to the T
+
+00:10:37.160 --> 00:10:40.279
+you've managed to do this. And it actually leads me to
+
+00:10:40.280 --> 00:10:42.679
+another question which is being asked of you, which is,
+
+NOTE Q: How you capture those ideas when when you are away from Emacs?
+
+00:10:42.680 --> 00:10:45.959
+how do you capture those ideas when you are away from Emacs? And
+
+00:10:45.960 --> 00:10:47.999
+perhaps not only those you have in the showers, but also
+
+00:10:48.000 --> 00:10:53.919
+elsewhere. So that's a great question. Over the past year, I
+
+00:10:53.920 --> 00:10:59.239
+actually, last January, upon recommendation of a senior
+
+00:10:59.240 --> 00:11:05.399
+colleague, I bought a digital voice recorder for $85 from
+
+00:11:05.400 --> 00:11:10.279
+Sony, and it's the best investment I've made in a very long
+
+00:11:10.280 --> 00:11:16.399
+time. other than my laptop computer, because I then record
+
+00:11:16.400 --> 00:11:21.439
+my thoughts. So I have a half hour commute. And to me, that's
+
+00:11:21.440 --> 00:11:25.359
+largely a waste of time. I wish I lived a lot closer to work.
+
+00:11:25.360 --> 00:11:33.679
+But I use that time to generate ideas. So maybe I'll start my
+
+00:11:33.680 --> 00:11:40.559
+day at home for 90 minutes, worked on paper A, and then I might
+
+00:11:40.560 --> 00:11:44.799
+try to prime my mind about project B, or I might still have
+
+00:11:44.800 --> 00:11:48.199
+ideas that are flowing about project A. And I'll record
+
+00:11:48.200 --> 00:11:51.439
+those in the digital voice recorder. And then when I get to
+
+00:11:51.440 --> 00:11:54.599
+the lab, I'll transfer the audio file to my computer, and
+
+00:11:54.600 --> 00:12:00.159
+I'll transcribe it using a whisper. So I've set up some
+
+00:12:00.160 --> 00:12:03.759
+Python scripts and bash functions to go through and I
+
+00:12:03.760 --> 00:12:10.999
+convert all the sentences into one sentence per line
+
+00:12:11.000 --> 00:12:16.359
+because that's the way I like to write and edit things. And so
+
+00:12:16.360 --> 00:12:19.679
+it does all this pre-processing for me. And I have this
+
+00:12:19.680 --> 00:12:23.279
+transcript that's in pretty good shape. I don't have to do
+
+00:12:23.280 --> 00:12:29.159
+very much editing. And I'll then copy that over and work on
+
+00:12:29.160 --> 00:12:33.079
+it, clean it up, and pluck out the ideas that I think might be
+
+00:12:33.080 --> 00:12:40.439
+useful. Unfortunately, I'm not very I'm not away from my
+
+00:12:40.440 --> 00:12:47.959
+computer that much. I'm in front of it, 12, 14 hours a day. So
+
+00:12:47.960 --> 00:12:53.039
+when I'm teaching, when I'm in seminar, other committee
+
+00:12:53.040 --> 00:12:58.359
+meetings, traveling, then I'll capture ideas on paper. I
+
+00:12:58.360 --> 00:13:02.399
+don't have a cell phone. I'm trying to be the last human on
+
+00:13:02.400 --> 00:13:07.359
+earth without a cell phone. I think I would be so distracted
+
+00:13:07.360 --> 00:13:12.719
+by a cell phone. Worst person on the planet, I would be
+
+00:13:12.720 --> 00:13:16.399
+totally focused on my cell phone if I had one. So I'm like one
+
+00:13:16.400 --> 00:13:22.999
+of the few people left who can read a map. So I do run into some
+
+00:13:23.000 --> 00:13:26.199
+difficulties hailing taxis and that sort of thing when I'm
+
+00:13:26.200 --> 00:13:30.599
+traveling. So there are some downsides to not having a cell
+
+00:13:30.600 --> 00:13:35.719
+phone, but these days. Yeah, but I think there's a pretty
+
+00:13:35.720 --> 00:13:38.639
+significant upside because, you know, you talk about cell
+
+00:13:38.640 --> 00:13:40.999
+phones here, but before you were talking about the 90
+
+00:13:41.000 --> 00:13:44.799
+minutes of uninterrupted focus on a given topic. And I think
+
+00:13:44.800 --> 00:13:48.359
+plenty of people would be envious of this ability to focus
+
+00:13:48.360 --> 00:13:54.519
+for that long on a topic. And I guess if we are to thread the
+
+00:13:54.520 --> 00:13:57.239
+needle here, well, the lack of cell phone might be for
+
+00:13:57.240 --> 00:14:00.839
+something for this ability to focus. So take of this what you
+
+00:14:00.840 --> 00:14:06.799
+will. True, I am a sucker for the web browser. I can get
+
+00:14:06.800 --> 00:14:11.759
+distracted going down various rabbit holes thanks to
+
+00:14:11.760 --> 00:14:17.279
+Google searches and that sort of thing. Likewise, email is
+
+00:14:17.280 --> 00:14:22.399
+another tension grabber. So, there's those other battles I
+
+00:14:22.400 --> 00:14:27.599
+have to fight too. So, right, that is a huge battle that all of
+
+00:14:27.600 --> 00:14:31.839
+us face is developing focus and being able to maintain
+
+00:14:31.840 --> 00:14:37.159
+focus. Right. So, we have about three more minutes of
+
+00:14:37.160 --> 00:14:39.279
+questions. So, thank you so much already for answering many
+
+00:14:39.280 --> 00:14:43.319
+questions. How about we do a quick fire for the remaining
+
+00:14:43.320 --> 00:14:47.079
+questions and then maybe we will take a question from... from
+
+00:14:47.080 --> 00:14:50.272
+here or in the room. So how about we go for the next one?
+
+NOTE Q: What if an ideas does not belong to any current working manuscript?
+
+00:14:50.273 --> 00:14:51.573
+What if an ID does not belong
+
+00:14:51.574 --> 00:14:55.199
+to any current working manuscript? So I
+
+00:14:55.200 --> 00:14:57.799
+have a sandbox area in the log file.
+
+00:14:57.800 --> 00:15:04.319
+So if it's likely going to be related to something to a
+
+00:15:04.320 --> 00:15:09.119
+certain degree, if the idea is totally unrelated to
+
+00:15:09.120 --> 00:15:12.719
+anything I'm working on, then I will
+
+00:15:12.720 --> 00:15:21.359
+I maintain a 700 through 750 words. I maintain a kind of a
+
+00:15:21.360 --> 00:15:26.719
+external diary and I just capture those kind of ideas there.
+
+00:15:26.720 --> 00:15:31.199
+So, I have access to a web interface to this big text area with
+
+00:15:31.200 --> 00:15:37.079
+nothing in it. And I just dump ideas all day long in there. So,
+
+00:15:37.080 --> 00:15:42.799
+and I save that away. I have that in a big LaTeX document
+
+00:15:42.800 --> 00:15:49.999
+currently on Overleaf. but each day has its own page. And so
+
+00:15:50.000 --> 00:15:53.079
+that information is captured and I can recover it. And maybe
+
+00:15:53.080 --> 00:15:57.599
+it's gonna take me a week, a month, a year to take that idea and
+
+00:15:57.600 --> 00:16:00.279
+think about it. And then eventually I'll get to a point where
+
+00:16:00.280 --> 00:16:04.279
+I have a critical mass of momentum and data and so forth,
+
+00:16:04.280 --> 00:16:08.279
+where I could start a new writing project. But you're right,
+
+00:16:08.280 --> 00:16:11.399
+that is a problem, capturing those ideas and keeping track
+
+00:16:11.400 --> 00:16:16.719
+of them. The Xenocasting can also help with that. Right. OK,
+
+00:16:16.720 --> 00:16:19.159
+so we have time for one more question and I think I'm going to
+
+00:16:19.160 --> 00:16:22.679
+skip this one. You can take all the time you want after we're
+
+00:16:22.680 --> 00:16:25.679
+done with the live show for you to answer in BBB, obviously,
+
+00:16:25.680 --> 00:16:28.319
+and even after the conference. But I'd really like to finish
+
+00:16:28.320 --> 00:16:28.801
+on this one.
+
+NOTE Q: If there were one habit from your process (referencing your extensive flow chart) that you want active learners/professional researchers to adopt, which would it be and why?
+
+00:16:28.802 --> 00:16:31.879
+So, if there were one habit from your process,
+
+00:16:31.880 --> 00:16:35.079
+referencing your extensive flowchart, that you want
+
+00:16:35.080 --> 00:16:37.839
+active learners or professional researchers to adopt,
+
+00:16:37.840 --> 00:16:44.479
+which would it be and why? So,
+
+00:16:44.480 --> 00:16:49.999
+I think just keeping that daily diary, that's the essential
+
+00:16:50.000 --> 00:16:55.239
+part for overcoming the fear of forgetting and the fear of
+
+00:16:55.240 --> 00:16:58.319
+losing momentum. One reason why people don't work on two
+
+00:16:58.320 --> 00:17:02.399
+projects a day is that they fear losing momentum on the first
+
+00:17:02.400 --> 00:17:07.319
+project they're working on. But we often are stuck with
+
+00:17:07.320 --> 00:17:09.999
+working on multiple writing projects, and they're best
+
+00:17:10.000 --> 00:17:13.199
+done over longer periods of time rather than in a hasty
+
+00:17:13.200 --> 00:17:18.679
+fashion. I try to avoid binge writing, although I do my share
+
+00:17:18.680 --> 00:17:23.479
+of that, too. Okay, well, Blaine, thank you so much for all
+
+00:17:23.480 --> 00:17:29.199
+your questions. The stream is going to move to the next chat
+
+00:17:29.200 --> 00:17:31.999
+and talk. We're moving to the next talk of the day, but feel
+
+00:17:32.000 --> 00:17:35.159
+free to stay in a room. For everyone interested in asking
+
+00:17:35.160 --> 00:17:38.479
+more questions to Blaine, the BBB, sorry, BigBlueButton
+
+00:17:38.480 --> 00:17:41.250
+link is available on the website. You can join and ask
+
+00:17:41.240 --> 00:17:43.319
+questions directly to Blaine. And otherwise, we'll make
+
+00:17:43.320 --> 00:17:45.479
+sure that all the remaining questions on the pad get their
+
+00:17:45.480 --> 00:17:48.239
+answer eventually. Thank you so much, Blaine. You're
+
+00:17:48.240 --> 00:17:56.559
+welcome. Bye-bye. Bye.
+
+00:17:56.560 --> 00:18:00.079
+okay I think the stream is moving on. Just making sure. okay. Yes
+
+00:18:00.080 --> 00:18:02.079
+we are moving on to the next stream. So Blaine, I'm going to need to
+
+00:18:02.080 --> 00:18:04.919
+get ready for the next talk. Thank you so much for all your
+
+00:18:04.920 --> 00:18:08.079
+answers and feel free to answer your questions. I'm
+
+00:18:08.080 --> 00:18:11.759
+sorry that i didn't get to fill your question live. It's just
+
+00:18:11.760 --> 00:18:16.599
+there was a lot of questions actually. It was a comment. Okay.
+
+NOTE Off-stream Q&A
+
+00:18:16.600 --> 00:18:24.199
+Yeah, yeah. You mentioned about that you sit all the day in
+
+00:18:24.200 --> 00:18:27.999
+front of computer, right? And I have to say, it's not too
+
+00:18:28.000 --> 00:18:31.439
+different from a bathroom if you get distracted by web
+
+00:18:31.440 --> 00:18:34.919
+browser. I also have the same problem. And one interesting
+
+00:18:34.920 --> 00:18:38.679
+solution I found at some point is that I pry my mind about
+
+00:18:38.680 --> 00:18:44.039
+certain task, I leave my office and I go for a walk while
+
+00:18:44.040 --> 00:18:49.079
+thinking about this. And that really forces to focus
+
+00:18:49.080 --> 00:18:52.839
+because while you're working you have nothing else to do.
+
+00:18:52.840 --> 00:18:56.999
+You cannot go and like go like searching Google and stuff
+
+00:18:57.000 --> 00:19:03.359
+like that. It can really help in some cases.
+
+00:19:03.360 --> 00:19:09.559
+Yeah, I try to. Periodically, I'll try to restart doing the
+
+00:19:09.560 --> 00:19:12.879
+Pomodoro method, where you're supposed to get up every 25
+
+00:19:12.880 --> 00:19:17.959
+minutes and take a break. But that requires a lot of
+
+00:19:17.960 --> 00:19:23.799
+discipline. And it also has, I find I'm more exhausted by
+
+00:19:23.800 --> 00:19:26.879
+following that method at the end of the day. But I think the
+
+00:19:26.880 --> 00:19:30.919
+problem with, well, I think in part- No, no, I don't mean
+
+00:19:30.920 --> 00:19:36.079
+Pomodoro actually. I mean, more like showers. Because when
+
+00:19:36.080 --> 00:19:39.079
+you take a shower, you think about something, right? When
+
+00:19:39.080 --> 00:19:43.159
+you just go for a walk, you again think about it. So this is not
+
+00:19:43.160 --> 00:19:46.119
+a break to take rest. It's a break to think away from
+
+00:19:46.120 --> 00:19:49.039
+computer.
+
+00:19:49.040 --> 00:19:54.239
+And you prime yourself, your brain by... picking something
+
+00:19:54.240 --> 00:19:56.719
+to work on. So I have a project, I think, like certain
+
+00:19:56.720 --> 00:20:01.079
+questions I want to think about. I sometimes take my, like a
+
+00:20:01.080 --> 00:20:05.319
+piece of paper with me. And then when I walk, I like take
+
+00:20:05.320 --> 00:20:10.279
+notes. You can record voice in your case. And like half an
+
+00:20:10.280 --> 00:20:15.239
+hour and you can really generate ideas.
+
+00:20:15.240 --> 00:20:18.519
+I have been doing a similar thing. I will take a clipboard.
+
+00:20:18.520 --> 00:20:24.799
+Maybe I'll have, um, Some blank pages where I'll write, jot
+
+00:20:24.800 --> 00:20:29.799
+down ideas as I walk. I'll go for like a half hour, hour-long
+
+00:20:29.800 --> 00:20:33.879
+walk and also read a paper sometimes, and in the process of
+
+00:20:33.880 --> 00:20:39.159
+reading, I get ideas.
+
+00:20:39.160 --> 00:20:45.159
+The clipboard though is socially less acceptable. It
+
+00:20:45.160 --> 00:20:49.359
+reminds people of their gym teacher, I think, or their
+
+00:20:49.360 --> 00:20:53.799
+marine drill sergeant, and they give me all kinds of weird
+
+00:20:53.800 --> 00:20:59.279
+looks. Even though they're walking and reading their cell
+
+00:20:59.280 --> 00:21:03.759
+phone, looking down at their cell phone, they give me weird
+
+00:21:03.760 --> 00:21:08.599
+looks for looking down at a clipboard as I walk. So there's
+
+00:21:08.600 --> 00:21:16.719
+that weird aspect to it. It's kind of hilarious.
+
+00:21:16.720 --> 00:21:21.479
+Thank you very much for the comment. Yeah, hopefully it's
+
+00:21:21.480 --> 00:21:24.799
+helpful. Because I really struggled about this web browser
+
+00:21:24.800 --> 00:21:28.346
+in the past. Not so much these days. Very good.
+
+00:21:28.347 --> 00:21:57.279
+That's good to hear.
+
+00:21:57.280 --> 00:21:57.639
+I asked,
+
+00:21:57.640 --> 00:22:06.519
+when I write notes, I've noticed like with the
+
+00:22:06.520 --> 00:22:10.360
+Getting Things Done and the Zettelkasten, I like to separate them
+
+00:22:10.400 --> 00:22:14.759
+out. And beyond that, I also like to separate them out on
+
+00:22:14.760 --> 00:22:19.959
+daily things and the global things. So that, for instance,
+
+00:22:19.960 --> 00:22:24.719
+your Zettelkasten, a daily would be like a journal. If you
+
+00:22:24.720 --> 00:22:29.599
+separate it out, It gives a lot of tension of, oh, well, if
+
+00:22:29.600 --> 00:22:33.119
+it's just a stray thought, I'll write it into my journal if I
+
+00:22:33.120 --> 00:22:36.959
+don't know where it goes. If I can think of a permanent place
+
+00:22:36.960 --> 00:22:41.479
+for it to go, it goes into the Zettelkasten. Same thing with,
+
+00:22:41.480 --> 00:22:44.599
+and then with like the getting things done is like, I don't,
+
+00:22:44.600 --> 00:22:48.159
+you start with like a fresh sheet of paper every single day or
+
+00:22:48.160 --> 00:22:54.639
+note or whatever. You ever done, you have tricks like that
+
+00:22:54.640 --> 00:22:59.359
+that you've noticed? So I'm sort of doing something similar
+
+00:22:59.360 --> 00:23:04.279
+through this. Well, to be honest, I like at the start of the
+
+00:23:04.280 --> 00:23:07.399
+day, I actually will just do sort of a brain dump of what
+
+00:23:07.400 --> 00:23:11.879
+happened the day before, just to try to get writing again.
+
+00:23:11.880 --> 00:23:16.959
+And these days, because of carpal tunnel syndrome, I'll use
+
+00:23:16.960 --> 00:23:22.159
+a voice speech to text to generate that initial text. And I'm
+
+00:23:22.160 --> 00:23:28.479
+just trying to, build up momentum of generating words. And
+
+00:23:28.480 --> 00:23:35.559
+so I capture, but I'm also adding to that document
+
+00:23:35.560 --> 00:23:40.719
+throughout the day. And so that is available through the web
+
+00:23:40.720 --> 00:23:47.279
+browser. I have a tab open to 750 words all the time. There's
+
+00:23:47.280 --> 00:23:51.719
+an alternate to it that is called Write Honey, that somebody
+
+00:23:51.720 --> 00:23:55.919
+in Berlin started, because they benefited so greatly from
+
+00:23:55.920 --> 00:23:58.679
+this practice. They have made it available for free,
+
+00:23:58.680 --> 00:24:05.039
+apparently for life. And so there's no word limit, whereas I
+
+00:24:05.040 --> 00:24:10.599
+have a grandfathered version of 750 words, and I have a word
+
+00:24:10.600 --> 00:24:15.519
+limit of 5,000 words. I rarely hit it. It's nice to know that
+
+00:24:15.520 --> 00:24:20.599
+right honey doesn't have that limit. So, that's how I'm
+
+00:24:20.600 --> 00:24:26.199
+capturing things. And then, so some of that text winds up
+
+00:24:26.200 --> 00:24:32.279
+being moved into my log file or even sometimes into the
+
+00:24:32.280 --> 00:24:37.799
+manuscript.
+
+00:24:37.800 --> 00:24:42.079
+So maybe a little less organized than the getting things
+
+00:24:42.080 --> 00:24:47.559
+done approach with the dailies and then the refiling
+
+00:24:47.560 --> 00:24:54.319
+process. So I don't do any refiling. I want to file once. I
+
+00:24:54.320 --> 00:24:58.079
+don't want to file a second time or have to go back and handle
+
+00:24:58.080 --> 00:25:03.319
+something a second time. So that's my rationale for the
+
+00:25:03.320 --> 00:25:08.159
+approach I take. I'm not using it. I've had various
+
+00:25:08.160 --> 00:25:12.759
+iterations of systems I've used, but I think my favorite one
+
+00:25:12.760 --> 00:25:15.559
+for like getting things done is actually not using
+
+00:25:15.560 --> 00:25:18.799
+Org Agenda, just like making a blank sheet and kind of doing
+
+00:25:18.800 --> 00:25:24.039
+like a template where it's just like, and separating my
+
+00:25:24.040 --> 00:25:28.119
+tasks out into three categories, like core tasks, like, and
+
+00:25:28.120 --> 00:25:32.279
+rule of thumb is like, if it's beyond three, it's too much too
+
+00:25:32.280 --> 00:25:36.359
+many. And like core tasks, secondary tasks and unplanned
+
+00:25:36.360 --> 00:25:39.759
+tasks. So these, those three categories, like for
+
+00:25:39.760 --> 00:25:42.039
+instance, the core task, if it's greater than three, it's
+
+00:25:42.040 --> 00:25:46.999
+too many. That way is like, when you look back, then you can
+
+00:25:47.000 --> 00:25:51.439
+see, like, if I got my core tasks done, I did really good. or if
+
+00:25:51.440 --> 00:25:56.879
+I got a lot of secondary tasks but not my core tasks done, I got
+
+00:25:56.880 --> 00:25:58.873
+side reactions with things that don't matter.
+
+00:25:58.874 --> 00:26:00.674
+If I got a lot of unplanned tasks,
+
+00:26:00.640 --> 00:26:03.679
+I could look at those unplanned tasks to see, oh yeah, okay,
+
+00:26:03.680 --> 00:26:07.639
+that was fine. Okay, the day didn't go as
+
+00:26:07.640 --> 00:26:14.999
+planned, but it was, yeah. That's an excellent suggestion.
+
+00:26:15.000 --> 00:26:20.119
+I generally just And I ended up long of a to-do list. It's
+
+00:26:20.120 --> 00:26:25.079
+impossible to accomplish in a day. Then I just like
+
+00:26:25.080 --> 00:26:29.799
+furnaces. Another trick that I liked was I also put like that
+
+00:26:29.800 --> 00:26:34.719
+under like a week. Cause it makes more sense to do it under a
+
+00:26:34.720 --> 00:26:39.079
+week. And then I'd have like subheadings under that, like,
+
+00:26:39.080 --> 00:26:45.079
+you know, so week day. Um, then I'd have those three
+
+00:26:45.080 --> 00:26:48.599
+categories for each of the tasks and then kind of as an
+
+00:26:48.600 --> 00:26:51.719
+unofficial day at the end, I just like have a staging area for
+
+00:26:51.720 --> 00:26:56.199
+all tasks. So I just kind of, then I just, I want to be using org
+
+00:26:56.200 --> 00:27:00.319
+agenda. So then I just be moving up and down, you know, cause
+
+00:27:00.320 --> 00:27:03.199
+you could, cause you're able to rearrange stuff in org mode
+
+00:27:03.200 --> 00:27:08.079
+so easily. I don't know if there's a good way of, that's been
+
+00:27:08.080 --> 00:27:11.919
+my favorite iteration
+
+00:27:11.920 --> 00:27:20.759
+of doing it. So I wrote a little function that pops in the
+
+00:27:20.760 --> 00:27:25.439
+to-dos that are specific to a particular project in the log
+
+00:27:25.440 --> 00:27:31.359
+file for that project.
+
+00:27:31.360 --> 00:27:36.599
+And then I add the log file name to the list of org files that
+
+00:27:36.600 --> 00:27:41.919
+Org Agenda searches, so those to-dos will show up. But my
+
+00:27:41.920 --> 00:27:46.199
+list is too long, and that becomes overwhelming. So I'll
+
+00:27:46.200 --> 00:27:51.399
+just assign a to-do heading to the top item in my to-do list to
+
+00:27:51.400 --> 00:27:54.479
+try to, but maybe it should be three. That would be a
+
+00:27:54.480 --> 00:27:58.479
+reasonable compromise.
+
+00:27:58.480 --> 00:28:03.879
+That's a good idea.
+
+00:28:03.880 --> 00:28:12.879
+So you're doing weekly planning then? I can show up. I was.
+
+00:28:12.880 --> 00:28:16.879
+This is, yeah, this was, yeah. What ended up making me stop is
+
+00:28:16.880 --> 00:28:20.439
+I didn't know how to make a template of it. And I, I ended up
+
+00:28:20.440 --> 00:28:25.879
+getting annoyed by manually changing the days every single
+
+00:28:25.880 --> 00:28:29.759
+time and naming like my files and stuff like that. If I Maybe
+
+00:28:29.760 --> 00:28:34.159
+if I did it now, I could figure out how to program it or if I
+
+00:28:34.160 --> 00:28:36.439
+spent enough time, but that's what I think eventually made
+
+00:28:36.440 --> 00:28:42.479
+me stop doing it. So there's a, um, you can make a snippet for
+
+00:28:42.480 --> 00:28:45.640
+the week and then you could have code in the snippet that
+
+00:28:45.680 --> 00:28:51.519
+would generate the dates automatically. Um, So I have like
+
+00:28:51.520 --> 00:28:56.599
+for my daily entry, I have a snippet called entry and then I
+
+00:28:56.600 --> 00:29:02.079
+hit tab and our control or whatever to insert the snippet and
+
+00:29:02.080 --> 00:29:07.919
+that has the current date already entered. So I skip that, I
+
+00:29:07.920 --> 00:29:13.479
+don't have to deal with that. So I think you could probably
+
+00:29:13.480 --> 00:29:18.639
+feed what you want to accomplish to a copilot, for example,
+
+00:29:18.640 --> 00:29:21.801
+being copilot. I've been using Bing Copilot
+
+00:29:21.802 --> 00:29:25.833
+for the past three or four months to return
+
+00:29:25.834 --> 00:29:29.227
+Elisp code that works 90% of the time.
+
+00:29:29.228 --> 00:29:34.399
+I've been pretty impressed. And it's free. So no
+
+00:29:34.400 --> 00:29:43.119
+API key required. It runs. So I guess I installed the Bing
+
+00:29:43.120 --> 00:29:49.362
+Copilot plugin in the Google Chrome.
+
+00:29:49.363 --> 00:29:50.199
+And that's what I've been using.
+
+00:29:50.200 --> 00:30:00.807
+Yeah, I can show you my screen if
+
+00:30:00.808 --> 00:30:05.852
+you want to see what the screen looks like.
+
+00:30:05.853 --> 00:30:06.839
+I can email you the template. I kind of have it saved as a
+
+00:30:06.840 --> 00:30:12.639
+template. I've got to find it, though. Let's see.
+
+00:30:12.640 --> 00:30:17.439
+Not exactly set up to.
+
+00:30:17.440 --> 00:30:44.159
+Alright, so. I
+
+00:30:44.160 --> 00:30:50.159
+don't know if you can see this well enough, but...
+
+00:30:50.160 --> 00:30:59.599
+Yeah, let's make it bigger. Can you see that at all? I can see a
+
+00:30:59.600 --> 00:31:01.279
+little bit of it. Yeah, it's kind of blurry.
+
+00:31:01.280 --> 00:31:07.399
+Alright, well. But then you just do that right there. So it's
+
+00:31:07.400 --> 00:31:13.239
+all color coded. I, so I get a sense of, uh, uh, what the kind of
+
+00:31:13.240 --> 00:31:18.599
+greenish blue lines must be or days, I guess, or. Okay. Well,
+
+00:31:18.600 --> 00:31:22.639
+right. There's like, so you can see like startup show two
+
+00:31:22.640 --> 00:31:27.519
+levels. Then I have like numbers right there. So right on one
+
+00:31:27.520 --> 00:31:30.919
+day you have like the core tasks, there's three out of four
+
+00:31:30.920 --> 00:31:37.119
+done. Then I have like secondary and unplanned and then.
+
+00:31:37.120 --> 00:31:42.079
+Yeah, that's just the general idea
+
+00:31:42.080 --> 00:31:50.319
+So that this is you raise you know the so the dilemma I face of
+
+00:31:50.320 --> 00:31:55.119
+course is that I have maintain like a to-do list and our
+
+00:31:55.120 --> 00:31:58.799
+project specific and then there's the all the other things I
+
+00:31:58.800 --> 00:32:04.439
+have to do and So there should be like some The org agenda
+
+00:32:04.440 --> 00:32:09.879
+should be a way of being able to pull the two sets together, I
+
+00:32:09.880 --> 00:32:10.319
+guess.
+
+00:32:10.320 --> 00:32:16.959
+I had broken up my,
+
+00:32:16.960 --> 00:32:25.359
+well, I had way too many to-do lists stored in various
+
+00:32:25.360 --> 00:32:25.919
+places.
+
+00:32:25.920 --> 00:32:32.199
+And so that's a problem, I guess, when you have too many
+
+00:32:32.200 --> 00:32:37.359
+to-dos and the org Agenda becomes overwhelming and sort of
+
+00:32:37.360 --> 00:32:44.479
+discourages Yeah, I figure that the general task on that is
+
+00:32:44.480 --> 00:32:49.199
+like I start writing things up. I get more and more items.
+
+00:32:49.200 --> 00:32:52.319
+I'll make a master to-do list. Oh my master to-do list has too
+
+00:32:52.320 --> 00:32:58.759
+many items. Let me throw it out Well, there's another name
+
+00:32:58.760 --> 00:33:01.559
+for that kind of list you could you know called a grass
+
+NOTE Time Power
+
+00:33:01.560 --> 00:33:06.959
+catcher list. So Charles Hobbs was this, he wrote a book in
+
+00:33:06.960 --> 00:33:16.079
+the 80s called Time Power. And he had like, you know, so he was
+
+00:33:16.080 --> 00:33:22.679
+one of these time management gurus. And so, let's
+
+00:33:22.680 --> 00:33:26.519
+see, you get the name of some, like Tony Robbins and,
+
+00:33:26.520 --> 00:33:34.879
+I forget the name of the other guy, that's Brian Tracy. So
+
+00:33:34.880 --> 00:33:39.119
+that they have kind of pushed the same kind of similar
+
+00:33:39.120 --> 00:33:43.279
+approaches. But Charles Hobbs had a very more organized
+
+00:33:43.280 --> 00:33:46.679
+approach, I think, and more disciplined. And he identified
+
+00:33:46.680 --> 00:33:49.439
+that kind of list as a grass catcher list, where you have a
+
+00:33:49.440 --> 00:33:52.839
+list of items that you think you might want to do, but you
+
+00:33:52.840 --> 00:33:57.359
+haven't prioritized them yet. And you haven't scheduled
+
+00:33:57.360 --> 00:34:03.199
+them yet. but they need a safe place to be stored. When time
+
+00:34:03.200 --> 00:34:06.199
+permits, the idea was you would pull items off that grass
+
+00:34:06.200 --> 00:34:10.599
+catcher list and move it into a to-do item that you will
+
+00:34:10.600 --> 00:34:18.079
+schedule and commit to getting done. That was the idea,
+
+00:34:18.080 --> 00:34:20.999
+separating them between core tasks, secondary tasks,
+
+00:34:21.000 --> 00:34:24.119
+unplanned tasks, because your whole day can't be planned.
+
+00:34:24.120 --> 00:34:27.919
+Right, right. You have things you have to do that are
+
+00:34:27.920 --> 00:34:31.319
+unscheduled that come through your door or land in your
+
+00:34:31.320 --> 00:34:35.239
+inbox or land in your email. You've got to do them. And then
+
+00:34:35.240 --> 00:34:38.799
+core tasks, I don't know, like to-do lists, their whole
+
+00:34:38.800 --> 00:34:43.279
+point is. So for instance, like journal and Zettelkasten
+
+00:34:43.280 --> 00:34:46.679
+are kind of, and like that's global lists versus the daily
+
+00:34:46.680 --> 00:34:49.399
+lists are kind of. done a little differently. With
+
+00:34:49.400 --> 00:34:53.639
+Zettelkasten, it's organic. Things build up. If you make a
+
+00:34:53.640 --> 00:34:56.359
+note, it's great. If you don't, if it has a small amount,
+
+00:34:56.360 --> 00:35:00.479
+that's great. Have a small note. With a daily to-do, you want
+
+00:35:00.480 --> 00:35:05.199
+to use it to make decisions. That's the idea of having the
+
+00:35:05.200 --> 00:35:08.639
+core task and the secondary task separate because the whole
+
+00:35:08.640 --> 00:35:12.719
+thing about it is, I wanna use this to eliminate what I'm
+
+00:35:12.720 --> 00:35:15.759
+going to do. It's to choose what I'm going to do, like the core
+
+00:35:15.760 --> 00:35:19.839
+tasks. Because if I can get my core tasks, I can be happy with
+
+00:35:19.840 --> 00:35:26.519
+my previous days. And then I would probably start using
+
+00:35:26.520 --> 00:35:30.639
+agenda a lot more if I was more consistent with using like
+
+00:35:30.640 --> 00:35:34.439
+these as like weekly files. I don't know. But then the whole
+
+00:35:34.440 --> 00:35:37.559
+goal thing is just like, let me see what I wanna populate the
+
+00:35:37.560 --> 00:35:43.879
+day list with. So how many core tasks wind up spanning
+
+00:35:43.880 --> 00:35:47.359
+multiple days because they're such big projects?
+
+00:35:47.360 --> 00:35:54.519
+I would need more time using the system before I'd figure
+
+00:35:54.520 --> 00:35:59.679
+something like that out. As I said, I'm not using it right
+
+00:35:59.680 --> 00:36:04.759
+now, but that has been my favorite iteration of using these.
+
+00:36:04.760 --> 00:36:13.519
+So within the core tasks, do you assign priorities? So the
+
+00:36:13.520 --> 00:36:20.279
+way I would translate this a little bit would be like in this
+
+00:36:20.280 --> 00:36:24.999
+method that Charles Hobbs had, he had a category for the
+
+00:36:25.000 --> 00:36:29.399
+items that you really have to get done, and they're really
+
+00:36:29.400 --> 00:36:34.119
+important. And so they get a priority of A. And then the
+
+00:36:34.120 --> 00:36:39.519
+secondary tasks would get a priority of B. But then within
+
+00:36:39.520 --> 00:36:42.079
+the A category, you would number them like one through
+
+00:36:42.080 --> 00:36:45.039
+three, I guess. All right, so this would be part of the
+
+00:36:45.040 --> 00:36:49.079
+purpose of separating the daily list or like the weekly list
+
+00:36:49.080 --> 00:36:51.719
+from the global list. So for instance, your global list,
+
+00:36:51.720 --> 00:36:55.679
+you'd say, I want this project that will take a long duration
+
+00:36:55.680 --> 00:37:00.639
+of time. But your daily list would just say, I want to work on
+
+00:37:00.640 --> 00:37:05.039
+it today, even if I don't get it done today. Like, I want to
+
+00:37:05.040 --> 00:37:11.399
+work on it today. then maybe you can link like for instance
+
+00:37:11.400 --> 00:37:16.239
+that your daily list to that global list or something along
+
+00:37:16.240 --> 00:37:20.479
+those lines. But that would be I think a good answer to that
+
+00:37:20.480 --> 00:37:24.719
+type of problem because yeah, the daily list is like
+
+00:37:24.720 --> 00:37:30.999
+supposed to be for that day, not for, Like for instance, you
+
+00:37:31.000 --> 00:37:34.679
+start out clean, you make the list like that would probably
+
+00:37:34.680 --> 00:37:38.599
+be your first task for the week is what do I want for the week?
+
+00:37:38.600 --> 00:37:41.639
+Then you have some tasks that you do with staging. And then
+
+00:37:41.640 --> 00:37:43.799
+like for instance, since you look at it as a whole week at a
+
+00:37:43.800 --> 00:37:47.559
+time, you're able to rearrange it and say, these are the
+
+00:37:47.560 --> 00:37:51.159
+things I wanna get done this week. This is what I really wanna
+
+00:37:51.160 --> 00:37:53.639
+get done on this day. This is what I don't care about on this
+
+00:37:53.640 --> 00:37:53.959
+day or yeah.
+
+00:37:53.960 --> 00:38:03.079
+Another person that kind of, and this is kind of related,
+
+00:38:03.080 --> 00:38:05.559
+there's this idea of
+
+00:38:05.560 --> 00:38:14.039
+of time blocking. So obviously, three tasks, core tasks,
+
+00:38:14.040 --> 00:38:18.839
+maybe they're going to take three or four hours each or two or
+
+00:38:18.840 --> 00:38:23.919
+three. And you can assign blocks of time in your schedule to
+
+00:38:23.920 --> 00:38:30.039
+get them done. And often, what happens is they take longer
+
+00:38:30.040 --> 00:38:33.799
+than you expect. And you have to extend the blocks. Calvin
+
+00:38:33.800 --> 00:38:39.359
+Newport has a that's a kind of approach he advocates is you
+
+00:38:39.360 --> 00:38:43.519
+and I think the power to that is you're you. you're mapping
+
+00:38:43.520 --> 00:38:48.599
+out, you know, you're allocating the time to do these things
+
+00:38:48.600 --> 00:38:52.679
+and you're seeing how you actually, how much time things
+
+00:38:52.680 --> 00:38:56.119
+actually take. And then you, so you wind up adjusting in the
+
+00:38:56.120 --> 00:39:00.079
+future. And the idea is with this approach is do it on paper.
+
+00:39:00.080 --> 00:39:03.559
+And then you have to like, uh, if something takes longer,
+
+00:39:03.560 --> 00:39:06.599
+that pushes everything else down. You just wind up
+
+00:39:06.600 --> 00:39:12.799
+redrawing your schedule for the day, uh, manually. And, um,
+
+00:39:12.800 --> 00:39:17.399
+So it's kind of laborious, and that labor is supposed to
+
+00:39:17.400 --> 00:39:21.799
+inhibit you from spending too much time on a project. As you
+
+00:39:21.800 --> 00:39:24.959
+know, you've got the pain of redrawing everything if you
+
+00:39:24.960 --> 00:39:27.919
+spend too much time on the first project.
+
+00:39:27.920 --> 00:39:36.999
+Yeah, there was a, let's see. It's whatever you strategy you
+
+00:39:37.000 --> 00:39:40.359
+want to do. Like for instance, to me, it's like doing it this
+
+00:39:40.360 --> 00:39:45.519
+way makes me say, I want to focus on like what matters. Then
+
+00:39:45.520 --> 00:39:49.239
+it'll tell me if I feel good about that day, depends on what
+
+00:39:49.240 --> 00:39:52.759
+algorithm, what level and what type of strategy you're
+
+00:39:52.760 --> 00:39:56.119
+using. If you're using time blocking, you're optimizing
+
+00:39:56.120 --> 00:40:02.879
+for each level of time block where I'm, where's like, And you
+
+00:40:02.880 --> 00:40:09.359
+can combine the approaches. It'd be trickier. But like, now
+
+00:40:09.360 --> 00:40:12.919
+let's see. I was listening to a talk with Jordan Peterson.
+
+00:40:12.920 --> 00:40:15.159
+One of the things he said that really resonated with me is
+
+00:40:15.160 --> 00:40:19.119
+like, you wanna use a calendar, but the first rule of using a
+
+00:40:19.120 --> 00:40:24.599
+calendar is don't let the calendar tyrannize you. Because
+
+00:40:24.600 --> 00:40:27.999
+like the first thing you wanna do whenever you use a calendar
+
+00:40:28.000 --> 00:40:33.039
+is schedule every single minute of the day Now you don't have
+
+00:40:33.040 --> 00:40:37.279
+any room for if any task overruns at all. And after a couple of
+
+00:40:37.280 --> 00:40:42.719
+tests, you're like, I don't want to do this anymore. I rebel.
+
+00:40:42.720 --> 00:40:49.879
+I'm going to throw it out. So one kind of combination is
+
+00:40:49.880 --> 00:40:53.799
+through this Pomodoro method I mentioned earlier, where
+
+00:40:53.800 --> 00:40:57.719
+you would sort of like block out, say, two hours. You work for
+
+00:40:57.720 --> 00:41:02.199
+like 25 minutes, take a little, break for up to five minutes
+
+00:41:02.200 --> 00:41:07.279
+and get back to work. And then after two hours, you're to take
+
+00:41:07.280 --> 00:41:11.119
+like a 15 minute break in the morning. In the afternoon, you
+
+00:41:11.120 --> 00:41:14.599
+might even let that break run longer and you might only have
+
+00:41:14.600 --> 00:41:19.279
+three work sessions between breaks. So because you're
+
+00:41:19.280 --> 00:41:24.319
+going to be more run down in the afternoon. And so you build in
+
+00:41:24.320 --> 00:41:26.919
+some
+
+00:41:26.920 --> 00:41:31.639
+into your schedule, some flex like, okay, that's supposed
+
+00:41:31.640 --> 00:41:34.439
+to be a break time, but you know, maybe some urgency comes up
+
+00:41:34.440 --> 00:41:37.999
+and you got to deal with, um, and you have to break out of this,
+
+00:41:38.000 --> 00:41:44.039
+uh, Pomodoro technique. So, uh, that, that, that's one way
+
+00:41:44.040 --> 00:41:48.799
+of kind of scheduling in some, uh, flexibility is through
+
+00:41:48.800 --> 00:41:54.399
+the breaks at Peterson's[??], right. Right. That... I can't, I
+
+00:41:54.400 --> 00:41:59.239
+can't... I don't schedule to that kind of detail. That's just
+
+00:41:59.240 --> 00:42:00.039
+too oppressive.
+
+00:42:00.040 --> 00:42:05.399
+Well, neither do I, but it's like that, like I, that's, I
+
+00:42:05.400 --> 00:42:09.119
+don't try to, to me, the much more interesting question that
+
+00:42:09.120 --> 00:42:12.479
+I tried to do is like, let's try to make sure I do the important
+
+00:42:12.480 --> 00:42:15.199
+things. Cause if I do those, my life would probably move a lot
+
+00:42:15.200 --> 00:42:19.319
+quicker. If I get, if I choose a couple items that I really
+
+00:42:19.320 --> 00:42:22.239
+want and am able to consistently do them, I think my life
+
+00:42:22.240 --> 00:42:26.319
+would bastically start improving. Not necessarily if I can
+
+00:42:26.320 --> 00:42:28.879
+play the game of optimizing every hour.
+
+00:42:28.880 --> 00:42:36.879
+Maybe that could be, and it's a place to start rather, and I
+
+00:42:36.880 --> 00:42:39.079
+think it'd be the most effective place to start. And if I got
+
+00:42:39.080 --> 00:42:42.719
+better at using it all the time, perhaps I'd be playing
+
+00:42:42.720 --> 00:42:46.999
+optimizing every hour game. But this is the game I think
+
+00:42:47.000 --> 00:42:52.719
+would be best bang for buck for me to optimize now. What
+
+00:42:52.720 --> 00:42:56.039
+you're trying to optimize for is accomplishing these core
+
+00:42:56.040 --> 00:43:03.559
+tasks, getting them done as quickly as possible, or as
+
+00:43:03.560 --> 00:43:10.559
+effectively as possible, and as effectively as you need, or
+
+00:43:10.560 --> 00:43:15.359
+whatever your goal is. But yeah, focusing on that rather
+
+00:43:15.360 --> 00:43:19.679
+than the scheduling, I think. Plus, a core task could be, I
+
+00:43:19.680 --> 00:43:26.119
+don't know, catch up on all my house chores, or let, or do a
+
+00:43:26.120 --> 00:43:28.879
+specific one if it's really big or like, I don't know, it's
+
+00:43:28.880 --> 00:43:32.159
+whatever you want it to be. It's like, you can make them
+
+00:43:32.160 --> 00:43:37.559
+bigger or smaller depending on, on how you word them and
+
+00:43:37.560 --> 00:43:40.919
+everything. Cause like, if you say cap, capture all of your
+
+00:43:40.920 --> 00:43:44.879
+house chores up for like one week and you haven't done
+
+00:43:44.880 --> 00:43:47.279
+anything, that's probably a little too ambitious.
+
+00:43:47.280 --> 00:43:56.439
+That's right. Yeah, well, a lot of. Yeah.
+
+00:43:56.440 --> 00:44:03.039
+I spend, I don't know, at least 15 minutes, half an hour at the
+
+00:44:03.040 --> 00:44:07.119
+beginning of the day, sort of my my planning and sort of my
+
+00:44:07.120 --> 00:44:12.359
+initial writing session is involves a bit of planning and
+
+00:44:12.360 --> 00:44:20.399
+there's always. A lot more time. So generally, depending on
+
+00:44:20.400 --> 00:44:21.279
+the nature of your work,
+
+00:44:21.280 --> 00:44:28.119
+it can take up to 15% of your time. It can take quite a bit of
+
+00:44:28.120 --> 00:44:33.919
+time. And I think people don't really acknowledge that as
+
+00:44:33.920 --> 00:44:39.039
+part of your work is planning. And it can take a significant
+
+00:44:39.040 --> 00:44:39.839
+amount of time.
+
+00:44:39.840 --> 00:44:44.799
+Yeah, that's what I was meaning though is like the very first
+
+00:44:44.800 --> 00:44:48.119
+thing I think people generally always try to do with the
+
+00:44:48.120 --> 00:44:51.279
+scanners like look at how productive I can be let's schedule
+
+00:44:51.280 --> 00:44:55.319
+every single minute up and it's like You're not gonna want to
+
+00:44:55.320 --> 00:45:00.519
+do that for very long and it's not gonna work out And what you
+
+00:45:00.520 --> 00:45:06.359
+were saying about The pomodoro technique one of the core
+
+00:45:06.360 --> 00:45:11.919
+Let's see, one of the benefits could be described of another
+
+00:45:11.920 --> 00:45:16.879
+benefit I've seen of like multiple habits books is if you
+
+00:45:16.880 --> 00:45:19.599
+start multiple small habits where you try to do them
+
+00:45:19.600 --> 00:45:23.319
+consistently, you give yourself an opening to where if you
+
+00:45:23.320 --> 00:45:28.279
+get into the flow state, you can do a lot more of it. Like, I
+
+00:45:28.280 --> 00:45:31.759
+don't know, let's say you got a habit of, I don't know, just
+
+00:45:31.760 --> 00:45:36.519
+write a journal entry. You're a journal entry of like at
+
+00:45:36.520 --> 00:45:39.279
+least two lines. I don't know that could very easily turn to
+
+00:45:39.280 --> 00:45:42.759
+like three paragraphs and if you have like a whole bunch of
+
+00:45:42.760 --> 00:45:46.279
+Like the pomodoro technique it could be like stubs to allow
+
+00:45:46.280 --> 00:45:47.639
+you to do more stuff
+
+00:45:47.640 --> 00:45:54.319
+Where are they in spur to allow inspiration to allow you to
+
+00:45:54.320 --> 00:45:57.239
+generate inspiration and then capture it when it strikes if
+
+00:45:57.240 --> 00:45:58.759
+the mood fancies you
+
+00:45:58.760 --> 00:46:08.319
+Yeah, so that's kind of an issue with the Pomodoro
+
+00:46:08.320 --> 00:46:13.839
+technique. So, one idea is that you just, if you really have
+
+00:46:13.840 --> 00:46:19.359
+to break out, because the idea is too big to put on the back
+
+00:46:19.360 --> 00:46:24.359
+burner and hold in place, then you do have to break out of the
+
+00:46:24.360 --> 00:46:30.039
+Pomodoro and go, you know, jot down a quick note or three
+
+00:46:30.040 --> 00:46:30.719
+paragraphs.
+
+00:46:30.720 --> 00:46:36.839
+but like how much... You don't get to count that as a
+
+00:46:36.840 --> 00:46:40.679
+Pomodoro. You have to like reset your count because you've
+
+00:46:40.680 --> 00:46:48.759
+broken it. I mean, according to that method, it's
+
+00:46:48.760 --> 00:46:52.879
+kind of rigid. It's a different algorithm optimizing for
+
+00:46:52.880 --> 00:46:55.479
+different things. And this may just be like a by-product,
+
+00:46:55.480 --> 00:47:00.759
+but this could be very easily like a core advantage that may
+
+00:47:00.760 --> 00:47:05.599
+or may not be the core reason that you were using it but didn't
+
+00:47:05.600 --> 00:47:08.719
+realize it, and may not be something that it's optimizing
+
+00:47:08.720 --> 00:47:17.399
+for. So
+
+00:47:17.400 --> 00:47:22.159
+are you developing a Emacs package then with your template?
+
+00:47:22.160 --> 00:47:30.319
+No. As I said,
+
+00:47:30.320 --> 00:47:36.319
+My next steps where I think would make it work a lot better is
+
+00:47:36.320 --> 00:47:39.999
+if I figured out some way of automatically filling out the
+
+00:47:40.000 --> 00:47:45.439
+dates or maybe automatically adding the file per week into
+
+00:47:45.440 --> 00:47:51.999
+and out of Org Agenda. That would be my next steps. I think if I
+
+00:47:52.000 --> 00:47:55.719
+did that, it would have a much greater chance of becoming
+
+00:47:55.720 --> 00:48:01.879
+part of my workflow at all times. Yeah, I bet you could do it
+
+00:48:01.880 --> 00:48:08.439
+pretty Something I got to work with the help of copilot. I'm
+
+00:48:08.440 --> 00:48:14.959
+not a wizard yet at Emacs Lisp, but I find that copilot is
+
+00:48:14.960 --> 00:48:26.439
+quite helpful.
+
+00:48:26.440 --> 00:48:32.799
+Yeah, their AIs are definitely interesting.
+
+NOTE Do you use a lot of TeX inside Org Mode?
+
+00:48:32.800 --> 00:48:38.279
+So. do you ever use any, uh, a lot of TeX inside of org mode?
+
+00:48:38.280 --> 00:48:49.639
+No, mostly because I know that like I could try to learn it,
+
+00:48:49.640 --> 00:48:57.639
+but I just don't have a need for it. So yeah. And then also like
+
+00:48:57.640 --> 00:49:05.279
+I remember learning, when I learned HTML, I like writing
+
+00:49:05.280 --> 00:49:08.519
+HTML more than like, for instance, Word, because it was a lot
+
+00:49:08.520 --> 00:49:14.959
+more transparent, like a plain text document is, and kind of
+
+00:49:14.960 --> 00:49:20.159
+wrote the ordered list, unordered list, in such a way that it
+
+00:49:20.160 --> 00:49:25.599
+kind of looked similar to the page. But I find that I like Org
+
+00:49:25.600 --> 00:49:26.439
+Mode more than,
+
+00:49:26.440 --> 00:49:35.479
+HTML because, well, it's optimized for, like, my writing
+
+00:49:35.480 --> 00:49:38.479
+and consumption and overall use case rather than, like,
+
+00:49:38.480 --> 00:49:43.359
+optimizing it for somebody else to view, which I generally
+
+00:49:43.360 --> 00:49:45.039
+don't have as much.
+
+00:49:45.040 --> 00:49:52.799
+But, so, like, I don't know. Org Mode is what I'm going to end
+
+00:49:52.800 --> 00:49:57.879
+up using the most, so. I just want to use LaTeX enough.
+
+00:49:57.880 --> 00:50:00.999
+Although I'd be interested in learning LaTeX snippets
+
+00:50:01.000 --> 00:50:06.519
+inside of Org Mode for like the math stuff, but then again, I
+
+00:50:06.520 --> 00:50:13.479
+just never have to type it. So my attitude towards Org Mode
+
+00:50:13.480 --> 00:50:18.199
+changed radically over the summer. I was avoiding it
+
+00:50:18.200 --> 00:50:25.439
+somewhat before and then when I realized I can keep all the
+
+00:50:25.440 --> 00:50:33.279
+great aspects of LaTeX and still use all the great features
+
+00:50:33.280 --> 00:50:39.959
+of Org Mode. So I view now, I think of Org Mode as a wrapper
+
+00:50:39.960 --> 00:50:44.559
+around LaTeX. I know it's not really that, but by thinking
+
+00:50:44.560 --> 00:50:49.159
+about it that way, uh, it's much more palatable to me to, uh,
+
+00:50:49.160 --> 00:50:54.679
+uh, just go, uh, commit to doing as much as possible in org
+
+00:50:54.680 --> 00:50:58.559
+mode. So I've been, that's what I've been doing. Um, this
+
+00:50:58.560 --> 00:51:01.839
+fall is just, uh, every document I started as an org file.
+
+00:51:01.840 --> 00:51:09.959
+I imagine I would like it if I knew it, it's just because I,
+
+00:51:09.960 --> 00:51:13.319
+because I imagine it would feel to me like HTML, or it's just
+
+00:51:13.320 --> 00:51:18.519
+like, Yeah, I can write it, I can format it the way I want to.
+
+00:51:18.520 --> 00:51:24.439
+This is just guesses from my experience with HTML. I can read
+
+00:51:24.440 --> 00:51:27.679
+the source code of it and kind of get an idea of how it will look
+
+00:51:27.680 --> 00:51:30.919
+like, but I just...
+
+00:51:30.920 --> 00:51:36.799
+It's like if you're gonna use the Linux terminal, but you're
+
+00:51:36.800 --> 00:51:41.639
+gonna use it for an hour a week every... Yeah, an hour a week.
+
+00:51:41.640 --> 00:51:45.199
+It's just like, it's just not enough time to dedicate to
+
+00:51:45.200 --> 00:51:48.279
+learn it for to start paying off. That's right. And you can
+
+00:51:48.280 --> 00:51:52.559
+always export your org file to an HTML file.
+
+00:51:52.560 --> 00:51:56.079
+Yeah.
+
+00:51:56.080 --> 00:52:06.039
+But the org file is what I stare at 95% of the time or more. I
+
+00:52:06.040 --> 00:52:10.519
+only use a PDF. So I export to PDF generally. And when I export
+
+00:52:10.520 --> 00:52:16.239
+to HTML, it's very cool. I like looking at the document in the
+
+00:52:16.240 --> 00:52:20.879
+web browser. I like navigating it. But I generally will
+
+00:52:20.880 --> 00:52:24.879
+export it to PDF so I can print it out when I'm traveling to
+
+00:52:24.880 --> 00:52:30.439
+carry out editing. But that's just a small, tiny fraction of
+
+00:52:30.440 --> 00:52:34.039
+the time that I'm actually working with the document. So
+
+00:52:34.040 --> 00:52:38.119
+most of the time it's in org mode. You know, maybe it doesn't
+
+00:52:38.120 --> 00:52:44.199
+look as pretty as in, you know, uh, HTML, but it's, uh, it's so
+
+00:52:44.200 --> 00:52:48.679
+such a pleasure to work in because of the way you can reorder
+
+NOTE Org Mode versus Markdown
+
+00:52:48.680 --> 00:52:55.119
+lists, you know, create headlines. So what about org mode
+
+00:52:55.120 --> 00:52:57.719
+versus Markdown? Cause I know when, cause when I looked at
+
+00:52:57.720 --> 00:53:00.559
+org mode versus Markdown, I was like, yeah, more stuff
+
+00:53:00.560 --> 00:53:05.039
+supports Markdown, but. Org mode has more stuff built into
+
+00:53:05.040 --> 00:53:10.519
+it, like the calendar and agenda stuff. And it's obvious
+
+00:53:10.520 --> 00:53:14.559
+what this is supposed to be in org mode. And Emacs has got the
+
+00:53:14.560 --> 00:53:18.919
+best client. I use Emacs. And I think it's got a better syntax
+
+00:53:18.920 --> 00:53:23.319
+than Markdown. You've got stuff like Obsidian and Notes.
+
+00:53:23.320 --> 00:53:30.959
+And what about the Markdown? So Markdown, I use it a lot on
+
+00:53:30.960 --> 00:53:35.479
+GitHub repositories for the readme files. Sometimes I'll
+
+00:53:35.480 --> 00:53:38.959
+do them in org, but generally just go with the GitHub
+
+00:53:38.960 --> 00:53:44.159
+Markdown. But tables are still kind of a pain in Markdown,
+
+00:53:44.160 --> 00:53:48.719
+whereas tables are such a pleasure to build in org mode,
+
+00:53:48.720 --> 00:53:52.959
+because you have that dynamic adjusting of the column width
+
+00:53:52.960 --> 00:53:59.239
+as you make entries that become wider. And it's so easy to add
+
+00:53:59.240 --> 00:54:04.159
+columns. And it's so hard to add columns. It's much harder in
+
+00:54:04.160 --> 00:54:12.479
+Markdown and in LaTeX. It's more of a pain to add new columns.
+
+00:54:12.480 --> 00:54:16.919
+So the table aspect, that, to me, was one of the killer
+
+00:54:16.920 --> 00:54:20.439
+features. And then the other killer feature, of course, is
+
+00:54:20.440 --> 00:54:24.159
+the literate programming or interactive programming. So
+
+00:54:24.160 --> 00:54:26.559
+interactive computing that you can do where you have a code
+
+00:54:26.560 --> 00:54:30.639
+block and then you can execute it and have the output show up
+
+00:54:30.640 --> 00:54:35.159
+right below the code block. And
+
+00:54:35.160 --> 00:54:40.839
+org modes support for that kind of interactive computing is
+
+00:54:40.840 --> 00:54:46.039
+I'm not aware of anything more sophisticated, because you
+
+00:54:46.040 --> 00:54:50.799
+could have parallel sessions. You could have four Python
+
+00:54:50.800 --> 00:54:55.039
+sessions going, each of them labeled differently. And
+
+00:54:55.040 --> 00:54:57.519
+they're all walled off from each other. They don't see each
+
+00:54:57.520 --> 00:55:07.079
+other. Or you can have different programming languages. So
+
+00:55:07.080 --> 00:55:11.039
+you can do polyglottic
+
+00:55:11.040 --> 00:55:14.359
+programming where you have... Maybe Python's generating a
+
+00:55:14.360 --> 00:55:18.239
+table, and then that table gets, you decide you want to plot
+
+00:55:18.240 --> 00:55:24.199
+it using R, or you want to use ggplot2 and R to plot it, so that
+
+00:55:24.200 --> 00:55:29.719
+table gets fed into R in the next code block down, and then
+
+00:55:29.720 --> 00:55:33.559
+below it, you get a graph made in R, or you can make it in new
+
+00:55:33.560 --> 00:55:39.559
+plot, or you could, or some other, or you could move it into a
+
+00:55:39.560 --> 00:55:47.399
+LaTeX code block, plot the data in with Tikz,
+
+00:55:47.400 --> 00:55:52.719
+or you could move it into Clojure and use one of the
+
+00:55:52.720 --> 00:55:56.399
+Clojure plotting programs. Just kind of limitless what you
+
+00:55:56.400 --> 00:56:00.119
+can do in terms of recombining the best of different
+
+00:56:00.120 --> 00:56:01.599
+programming languages.
+
+00:56:01.600 --> 00:56:09.239
+Yeah, let's see. The literate DevOps are really good talks
+
+00:56:09.240 --> 00:56:13.359
+and subjects to get into this type of stuff. And they give a
+
+00:56:13.360 --> 00:56:17.119
+very good example of some tips on how to do this. You start
+
+00:56:17.120 --> 00:56:20.359
+writing in the previous or past tenses, though. You got the
+
+00:56:20.360 --> 00:56:23.719
+answer already, and then your notes are already formatted
+
+00:56:23.720 --> 00:56:28.559
+out as you're doing it for after the fact. And like, one thing
+
+NOTE Raku
+
+00:56:28.560 --> 00:56:32.679
+I like doing a lot is using the Raku language as a calculator,
+
+00:56:32.680 --> 00:56:37.239
+because I can just type in math as normal and it all works.
+
+00:56:37.240 --> 00:56:44.919
+I've tried that. Yeah, you can just say like, I don't know, 25
+
+00:56:44.920 --> 00:56:49.559
+times four with, and you can put like parentheses in it. I'm
+
+00:56:49.560 --> 00:56:55.039
+not exactly, I haven't used it very heavily. Oh, it also
+
+00:56:55.040 --> 00:57:01.839
+supports Unicode. So if you wanted to have
+
+00:57:01.840 --> 00:57:07.319
+the not equals sign, the Unicode not equals sign, it will
+
+00:57:07.320 --> 00:57:12.919
+actually do that. Cool. Or like the division sign. I don't
+
+00:57:12.920 --> 00:57:22.759
+know how it will do it. Yeah. But yeah. And then using that in,
+
+00:57:22.760 --> 00:57:28.239
+I also wrote a shell script where it would just help me do a
+
+00:57:28.240 --> 00:57:31.879
+calculation. I was trying to do a business calculation
+
+00:57:31.880 --> 00:57:35.359
+where I was, and I'd have variable names and I ended up
+
+00:57:35.360 --> 00:57:39.319
+writing the, in the parentheses I'd have enters, returns,
+
+00:57:39.320 --> 00:57:42.319
+and then just a variable name with like a dollar sign, kind of
+
+00:57:42.320 --> 00:57:45.799
+like how you'd have in the shell. And I outputted every
+
+00:57:45.800 --> 00:57:47.479
+single line that I had in the enter.
+
+00:57:47.480 --> 00:57:54.479
+six or 10 variables in this paragraph, the paragraph
+
+00:57:54.480 --> 00:57:57.759
+spanned, I don't know, like four lines or something like
+
+00:57:57.760 --> 00:58:01.039
+that. Maybe, yeah, something, I think it was along those
+
+00:58:01.040 --> 00:58:04.599
+lines. And I was just thinking of like what this would be in
+
+00:58:04.600 --> 00:58:07.879
+something else, just like, it was a lot nicer. Yeah, I had
+
+00:58:07.880 --> 00:58:10.879
+like equations for the variable, like in like one line, but
+
+00:58:10.880 --> 00:58:13.839
+when I wrote that, what my output should be is like, like I
+
+00:58:13.840 --> 00:58:16.359
+wasn't putting all of these like, you know, string join,
+
+00:58:16.360 --> 00:58:21.159
+string join, string join, It looked relatively close to
+
+00:58:21.160 --> 00:58:25.239
+what my terminal output would be, and then a later iteration
+
+00:58:25.240 --> 00:58:29.039
+I found on this was, let's write what I'm going to put into the
+
+00:58:29.040 --> 00:58:36.119
+command line, made a couple changeable variables in it, and
+
+00:58:36.120 --> 00:58:40.039
+then I can see my results, and that ended up being very nice.
+
+00:58:40.040 --> 00:58:44.199
+Ended up being nicer than the shells. Yeah, ended up
+
+00:58:44.200 --> 00:58:45.959
+enhancing that shell script that I wrote.
+
+00:58:45.960 --> 00:58:50.919
+That's a Raku calculator.
+
+00:58:50.920 --> 00:58:57.759
+Uh, it's the Raku programming language, which I was just
+
+00:58:57.760 --> 00:59:02.479
+using it, which I was just using as, which I'll just use as
+
+00:59:02.480 --> 00:59:06.079
+just straight up that calculator. Cause I'll do like,
+
+00:59:06.080 --> 00:59:11.999
+because it supports math well enough that I, like I, yeah,
+
+00:59:12.000 --> 00:59:17.239
+you can put like 25 divided by four and it doesn't start
+
+00:59:17.240 --> 00:59:24.439
+doing, what's the word, modular fractal, the double math,
+
+00:59:24.440 --> 00:59:28.079
+like it,
+
+00:59:28.080 --> 00:59:28.639
+if it's,
+
+00:59:28.640 --> 00:59:34.439
+the double math where it's like negative .2 versus like
+
+00:59:34.440 --> 00:59:40.399
+minus one, or sometimes it'll do optimized computer math
+
+00:59:40.400 --> 00:59:43.999
+where it doesn't give you the right answer, why people will
+
+00:59:44.000 --> 00:59:44.639
+like Mathematica.
+
+00:59:44.640 --> 00:59:56.439
+So, how do you, do you access it through, in org mode then?
+
+00:59:56.440 --> 01:00:05.199
+I'll do it in that. Sometimes I just fire up a Raku shell, but
+
+01:00:05.200 --> 01:00:09.159
+one of the biggest things I'll fire up a Raku shell for is like
+
+01:00:09.160 --> 01:00:17.399
+just, um, what's oh just recently I was just like doing it for
+
+01:00:17.400 --> 01:00:20.399
+some math and like how many people how much money will I have
+
+01:00:20.400 --> 01:00:24.559
+to spend on Christmas oh I've got I'm gonna buy this gift it's
+
+01:00:24.560 --> 01:00:33.799
+gonna cost this much and then I've got so let's I think 15
+
+01:00:33.800 --> 01:00:37.959
+times four because it's no 60 divided by four because it was a
+
+01:00:37.960 --> 01:00:42.919
+four pack And then times, and then I put it in parentheses,
+
+01:00:42.920 --> 01:00:47.519
+oh, four plus like two plus two, because like of the
+
+01:00:47.520 --> 01:00:49.119
+families, each of the units, and I just started doing it that
+
+01:00:49.120 --> 01:00:53.479
+way. And I put them all in a parentheses. And then at the end of
+
+01:00:53.480 --> 01:00:55.959
+this spit out the numbers, like, so I could just use the
+
+01:00:55.960 --> 01:00:58.279
+parentheses without thinking about, you know, like, oh,
+
+01:00:58.280 --> 01:01:02.679
+I'm actually in a programming language. No, I just kind of
+
+01:01:02.680 --> 01:01:07.279
+wrote it like I was in algebra, algebra, not in,
+
+01:01:07.280 --> 01:01:11.359
+not finding some special program, not finding a
+
+01:01:11.360 --> 01:01:14.999
+calculator, because it's easy for me to file up a terminal.
+
+01:01:15.000 --> 01:01:20.439
+Then I open that up, and it all just works. Plus, I also got a
+
+01:01:20.440 --> 01:01:22.639
+full programming language behind it if I ever need it.
+
+01:01:22.640 --> 01:01:33.679
+I wasn't aware that it utilizes standard math notation
+
+01:01:33.680 --> 01:01:37.279
+rather than the Polish math notation that we use in ELISP.
+
+01:01:37.280 --> 01:01:42.839
+Um, that's interesting because it's, it's in the list
+
+01:01:42.840 --> 01:01:45.279
+family of programming languages.
+
+01:01:45.280 --> 01:01:54.399
+Yeah. It's like, Hey, I can use, I can actually use my math
+
+01:01:54.400 --> 01:01:57.879
+knowledge. I can use the order of operations.
+
+01:01:57.880 --> 01:02:00.879
+Yep.
+
+01:02:00.880 --> 01:02:07.999
+I just wish that when I was in high school, they started
+
+01:02:08.000 --> 01:02:10.239
+telling me how to practically use this rather than me
+
+01:02:10.240 --> 01:02:14.119
+discover it years later when I'm out of it. Yeah.
+
+01:02:14.120 --> 01:02:27.399
+Well, I probably better move along to attend the other
+
+01:02:27.400 --> 01:02:32.839
+talks. All right. So it's been great talking to you, Plasma
+
+01:02:32.840 --> 01:02:35.159
+Strike. Yep, you too.
diff --git a/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt b/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt
new file mode 100644
index 00000000..1b881325
--- /dev/null
+++ b/2024/captions/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt
@@ -0,0 +1,926 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:06.519
+Okay, so I'm going to look at some of the questions showing up
+
+00:00:06.520 --> 00:00:08.499
+in the etherpad we got here.
+
+NOTE Q: Have you considered using CRDTs to share buffers between threads and merge any concurrent edits automatically?
+
+00:00:08.500 --> 00:00:09.439
+It says, have you considered
+
+00:00:09.440 --> 00:00:12.799
+using a CRDT to share buffers between threads and merge any
+
+00:00:12.800 --> 00:00:16.039
+concurrent edits automatically? So I have looked at that.
+
+00:00:16.040 --> 00:00:20.559
+And the problem with CRDTs is that even though they give you a
+
+00:00:20.560 --> 00:00:22.839
+mathematically correct answer when you're trying to merge
+
+00:00:22.840 --> 00:00:26.479
+two conflicts, it's not always a useful answer. Like, it's
+
+00:00:26.480 --> 00:00:29.199
+not coherent. If you have two things trying to edit the same
+
+00:00:29.200 --> 00:00:31.359
+thing, there's no good way to resolve that. And so they
+
+00:00:31.360 --> 00:00:33.559
+really work well when you have two people working live, both
+
+00:00:33.560 --> 00:00:35.639
+editing the same document, because they can fix any
+
+00:00:35.640 --> 00:00:37.199
+particular issues like that, like you would with Google
+
+00:00:37.200 --> 00:00:39.919
+Docs. But you have different packages that aren't aware of
+
+00:00:39.920 --> 00:00:42.159
+each other, and you're going to run into problems. And so
+
+00:00:42.160 --> 00:00:44.999
+this is something, if you read from the Xi editor, which was
+
+00:00:45.000 --> 00:00:48.039
+one of the first ones to use CRDTs, in the retrospective, he
+
+00:00:48.040 --> 00:00:52.359
+talks about how they had this problem, where the CRDTs They
+
+00:00:52.360 --> 00:00:53.999
+give you an answer, but it's not always an answer that's
+
+00:00:54.000 --> 00:00:59.079
+useful. And so I feel like locks at least are going to make it.
+
+00:00:59.080 --> 00:01:00.439
+It's not going to be as efficient if you have a whole bunch of
+
+00:01:00.440 --> 00:01:02.319
+packages, but I don't imagine there's going to be a ton of
+
+00:01:02.320 --> 00:01:04.799
+those. It can actually, I think it'll be more useful in
+
+00:01:04.800 --> 00:01:05.873
+practice.
+
+NOTE Q: Why hosted on GitHub? GitHub is nonfree. Is it possible to report bugs/send patches without using GitHub?
+
+00:01:05.874 --> 00:01:11.239
+I host on GitHub because that's what I know.
+
+00:01:11.240 --> 00:01:13.239
+If there's a way to host it on somewhere else, I'd be
+
+00:01:13.240 --> 00:01:15.439
+interested in doing that. If you're interested in setting
+
+00:01:15.440 --> 00:01:17.799
+patches without using GitHub, you could always send an
+
+00:01:17.800 --> 00:01:22.959
+email. I'm more than happy to accept email patches.
+
+NOTE Q: Do you think it's possible to achieve 100% compatibility with current Emacs code?
+
+00:01:22.960 --> 00:01:24.959
+Do you think it's possible to achieve with the current Emacs
+
+00:01:24.960 --> 00:01:29.719
+code? I do. I think, I think you can do that. Um, like I said,
+
+00:01:29.720 --> 00:01:33.279
+there's a couple things inside there that are intentional
+
+00:01:33.280 --> 00:01:37.919
+breaks with existing Emacs code. And some of those being
+
+00:01:37.920 --> 00:01:43.159
+like functions are immutable. As well as having data shared
+
+00:01:43.160 --> 00:01:44.759
+switch between different threads, which means there's
+
+00:01:44.760 --> 00:01:46.599
+going to be some copying going on. So there's going to be
+
+00:01:46.600 --> 00:01:48.399
+subtle things that are going to be different. And we've
+
+00:01:48.400 --> 00:01:50.359
+really got to think about those intentionally, but I'm
+
+00:01:50.360 --> 00:01:54.519
+really going for bug compatibility with GNU Emacs so that
+
+00:01:54.520 --> 00:01:57.159
+you can take an existing Elisp package and just run it and it
+
+00:01:57.160 --> 00:01:59.879
+just works, 'cause I think that's one of the big strengths of
+
+00:01:59.880 --> 00:02:03.399
+the Emacs ecosystem is the millions of lines of Elisp that
+
+00:02:03.400 --> 00:02:07.479
+people have written.
+
+00:02:07.480 --> 00:02:11.912
+Um, So I'm not, okay...
+
+NOTE Q: so you're re-implementing elisp in rust? have you considered using a more modern lisp, such as scheme? [11:03]
+
+00:02:11.913 --> 00:02:14.279
+So since you're re-implementing Elisp and
+
+00:02:14.280 --> 00:02:17.039
+Rust, have you considered using more modern Lisp such as
+
+00:02:17.040 --> 00:02:20.919
+Scheme? So I'm not re-implementing Elisp and Rust. I'm
+
+00:02:20.920 --> 00:02:25.439
+re-implementing the C in Rust. In fact, I would like to make
+
+00:02:25.440 --> 00:02:30.479
+more of the core that's written in C in Elisp instead of C or
+
+00:02:30.480 --> 00:02:33.839
+Rust, because then it's actually introspectible. There's
+
+00:02:33.840 --> 00:02:38.719
+a talk by Tom Tromney that he gave a while ago about Emacs
+
+00:02:38.720 --> 00:02:42.239
+should be Emacs Lisp. I kind of like that philosophy,
+
+00:02:42.240 --> 00:02:44.799
+that as much of it as should be Elisp as possible, and we
+
+00:02:44.800 --> 00:02:48.079
+should only have C or Rust or some systems level language for
+
+00:02:48.080 --> 00:02:52.319
+really low-level stuff. Using a more modern LISP such as
+
+00:02:52.320 --> 00:02:54.839
+Scheme. I know there's, I mean, there's two talks, I think,
+
+00:02:54.840 --> 00:02:58.239
+in this conference about using Scheme inside Emacs. And I
+
+00:02:58.240 --> 00:03:00.719
+looked at this at one point about what if you wrote it inside
+
+00:03:00.720 --> 00:03:03.919
+Common LISP, because that's also has some really low level
+
+00:03:03.920 --> 00:03:05.879
+details. And then you could go from Elisp down to Common
+
+00:03:05.880 --> 00:03:09.199
+Lisp. But the problem is, is under the hood, you still need a
+
+00:03:09.200 --> 00:03:12.559
+systems language. You can't, you still need either C or Rust
+
+00:03:12.560 --> 00:03:15.639
+or something underneath the Common Lisp to implement the
+
+00:03:15.640 --> 00:03:17.799
+primitives. And so it's not going to give you just two
+
+00:03:17.800 --> 00:03:19.719
+languages, you know, you'll have three. You'll have the
+
+00:03:19.720 --> 00:03:24.919
+elisp, common lisp, and C under the hood. And so in this case
+
+00:03:24.920 --> 00:03:29.559
+we just have the two. We have the Elisp and the rest.
+
+00:03:29.560 --> 00:03:42.999
+All right that's all the questions I see there. Let
+
+00:03:43.000 --> 00:03:54.079
+me go look at... Okay,
+
+00:03:54.080 --> 00:04:01.399
+so I see into the chat.
+
+NOTE Q: Do you have specific features from the Rust compiler that are missing (or are nightly-only) that you would take advantage of?
+
+00:04:01.400 --> 00:04:03.839
+Does it features from the Rust compiler that are missing
+
+00:04:03.840 --> 00:04:06.239
+that way you would take advantage of? Oh, that is a great
+
+00:04:06.240 --> 00:04:10.679
+question. Um, there's a handful of them. Uh, I should've
+
+00:04:10.680 --> 00:04:13.599
+written down a list of these. One of them is Polonius, which
+
+00:04:13.600 --> 00:04:17.959
+is the new borrow checker because we're trying to be used
+
+00:04:17.960 --> 00:04:21.759
+lifetime to track our objects. We often run into situations
+
+00:04:21.760 --> 00:04:24.239
+where we've kind of got a hack around things because the
+
+00:04:24.240 --> 00:04:26.199
+limitations with the borrow checker. And so I have a whole
+
+00:04:26.200 --> 00:04:29.559
+bunch of like notes inside there about where. A better
+
+00:04:29.560 --> 00:04:34.959
+Polonius would help inside there and help ease some of the
+
+00:04:34.960 --> 00:04:40.599
+issues. Another thing is enum variances types, because
+
+00:04:40.600 --> 00:04:42.999
+right now we have an object which is defined as a big enum that
+
+00:04:43.000 --> 00:04:46.079
+had all the possible objects, but if we want to have a subset
+
+00:04:46.080 --> 00:04:47.479
+of those objects or just pass in one of those objects, we've
+
+00:04:47.480 --> 00:04:50.079
+got to define a new struct. And so we have a whole bunch of
+
+00:04:50.080 --> 00:04:52.839
+boilerplate code to define that all out. And if we had
+
+00:04:52.840 --> 00:04:56.719
+variances types, that would make the code a lot easier.
+
+00:04:56.720 --> 00:05:00.079
+Another one is the allocator API. Right now we're kind of
+
+00:05:00.080 --> 00:05:02.479
+working around it, but ultimately we're going to need our
+
+00:05:02.480 --> 00:05:07.719
+own allocator. And the allocator API is still nightly only.
+
+00:05:07.720 --> 00:05:10.919
+So there's a couple more. I'll look at that more, but that's a
+
+00:05:10.920 --> 00:05:24.279
+great question.
+
+00:05:24.280 --> 00:05:26.879
+Let's see.
+
+NOTE Q: Can remacs be reused?
+
+00:05:26.880 --> 00:05:30.799
+Okay. I see a question you might not have noticed just asking
+
+00:05:30.800 --> 00:05:37.159
+about reuse of Remacs. Oh, yes, so I have reused some of Remacs
+
+00:05:37.160 --> 00:05:40.159
+code, and some taken, like I mentioned, taken some of their
+
+00:05:40.160 --> 00:05:45.319
+ideas, but ultimately we're using a different model
+
+00:05:45.320 --> 00:05:49.439
+because under the hood in Remacs, everything is just defined
+
+00:05:49.440 --> 00:05:53.799
+as an opaque external type that's defined inside Emacs and
+
+00:05:53.800 --> 00:05:56.159
+so it just pulls those in interacts with those and passes
+
+00:05:56.160 --> 00:05:58.879
+them back into C. We're trying to see what we can do if we
+
+00:05:58.880 --> 00:06:02.279
+say okay we're not going to take the same... So they're bound to
+
+00:06:02.280 --> 00:06:06.839
+the implementation details of Emacs, and we don't want to do
+
+00:06:06.840 --> 00:06:09.559
+that. We've re-implemented all the core types
+
+00:06:09.560 --> 00:06:12.559
+ourselves. So that means that we can't just take the
+
+00:06:12.560 --> 00:06:16.559
+Remacs code one for one and use it in our project, but we can
+
+00:06:16.560 --> 00:06:18.799
+take a lot of their ideas. I've spent some time reading
+
+00:06:18.800 --> 00:06:20.439
+through their documentation, different things about how
+
+00:06:20.440 --> 00:06:23.856
+they approached strings and GC
+
+00:06:23.857 --> 00:06:24.759
+and different stuff like that.
+
+00:06:24.760 --> 00:07:23.599
+Looks like all the questions.
+
+NOTE Q: What are you thoughts on the GUI layer. Any plans on how to reimplement it?
+
+00:07:23.600 --> 00:07:26.199
+Okay, so another question. What are your thoughts on the GUI
+
+00:07:26.200 --> 00:07:30.959
+layer? Any plans on how to reimplement it? This is something
+
+00:07:30.960 --> 00:07:34.079
+I've thought a lot about, but I still don't have a solid plan
+
+00:07:34.080 --> 00:07:37.253
+for. I'm not really a GUI person. I mostly work with
+
+00:07:37.254 --> 00:07:42.719
+low-level. And so my two thoughts is you can go the GTK route.
+
+00:07:42.720 --> 00:07:45.519
+There's Rust bindings for that. That's well understood.
+
+00:07:45.520 --> 00:07:48.319
+It's got a good support. But there's also some interesting
+
+00:07:48.320 --> 00:07:53.919
+projects to try and do GUI in Rust, native Rust, and have it
+
+00:07:53.920 --> 00:07:57.399
+use Rust idioms and stuff like that. And so those are things
+
+00:07:57.400 --> 00:08:01.439
+like Druid and there's eGUI and a bunch of those that are that
+
+00:08:01.440 --> 00:08:05.359
+way. And I've never used one of them, but I'd be interested to
+
+00:08:05.360 --> 00:08:08.879
+try that out first and see how well does this work and how well
+
+00:08:08.880 --> 00:08:21.239
+supported is this doing a Rust-first GUI.
+
+NOTE Q: If money could fix the problem, how much would it cost to ship this with feature parity before 2026?
+
+00:08:21.240 --> 00:08:23.639
+If money could fix the problem, how much would it cost to ship
+
+00:08:23.640 --> 00:08:28.399
+this with feature parity before 2026? Ooh, in a year. Uh,
+
+00:08:28.400 --> 00:08:32.079
+that's a good question. Even if we had the money, it would
+
+00:08:32.080 --> 00:08:36.639
+take more than just me, even if I was working on it full time.
+
+00:08:36.640 --> 00:08:40.630
+Um, I don't know. That's a good question.
+
+00:08:40.631 --> 00:08:41.769
+I would think it would take a team
+
+00:08:41.770 --> 00:08:45.239
+of at least a handful of people to get this
+
+00:08:45.240 --> 00:08:48.559
+shipping within one year. Because there's still a lot of
+
+00:08:48.560 --> 00:08:50.759
+work to do. And even once you have everything implemented,
+
+00:08:50.760 --> 00:08:55.119
+there's a lot of bug finding and smoothing it out so that it
+
+00:08:55.120 --> 00:08:57.519
+runs as well as Emacs, which has been, you know, battle
+
+00:08:57.520 --> 00:08:58.359
+tested for a long time.
+
+00:08:58.360 --> 00:09:06.599
+Um, okay, so this might be a good moment for me to break in and
+
+00:09:06.600 --> 00:09:09.039
+just say that we've got about 10 minutes left before we
+
+00:09:09.040 --> 00:09:12.519
+resume new talks on on both tracks. Of course, we're happy to
+
+00:09:12.520 --> 00:09:18.119
+keep this. This chat open and keep the recording going here,
+
+00:09:18.120 --> 00:09:21.599
+which will share after the conference as long as as long as
+
+00:09:21.600 --> 00:09:28.349
+there's discussion here. Thank you.
+
+NOTE GObject implementation
+
+00:09:28.350 --> 00:09:29.119
+GTK project has
+
+00:09:29.120 --> 00:09:31.079
+automatic binding with a framework called GObject
+
+00:09:31.080 --> 00:09:33.599
+introspection, which is what I'm using for gypsum project.
+
+00:09:33.600 --> 00:09:35.959
+Probably Rust has a G object implementation, which you can
+
+00:09:35.960 --> 00:09:39.119
+use. Yeah, I know it has some GTK bindings. Um, I'm not sure if
+
+00:09:39.120 --> 00:09:41.954
+it's specifically GObject, but that's a good path
+
+00:09:41.955 --> 00:09:44.335
+because I feel like the problem
+
+00:09:44.336 --> 00:09:46.759
+with the Rust GUIs is that they're all
+
+00:09:46.760 --> 00:09:50.359
+very new. And so, you know, everything works in a demo, but
+
+00:09:50.360 --> 00:09:52.319
+you need something that can work across all different
+
+00:09:52.320 --> 00:09:54.319
+devices and all different platforms and have really good
+
+00:09:54.320 --> 00:09:56.599
+support and good accessibility and stuff like that.
+
+NOTE Q: elisp is implemented in c, so if you're not implementing elisp in rust, are you using/keeping the c implementation of elisp?
+
+00:09:56.600 --> 00:10:03.399
+All right, Elisp is implemented in C. So if you're not
+
+00:10:03.400 --> 00:10:07.359
+implementing Elisp in Rust, we're keeping the C
+
+00:10:07.360 --> 00:10:13.639
+implementation of Elisp. So let me see if I can do a better job
+
+00:10:13.640 --> 00:10:18.439
+of explaining this. So inside Emacs, you have about a
+
+00:10:18.440 --> 00:10:21.519
+million lines of Elisp. And underneath that, you have the C,
+
+00:10:21.520 --> 00:10:24.079
+which is the primitives everything's implemented yet. And
+
+00:10:24.080 --> 00:10:27.079
+so we're keeping all of the Elisp, and we're just taking that
+
+00:10:27.080 --> 00:10:30.559
+C layer and replacing it with Rust. And so when you call a
+
+00:10:30.560 --> 00:10:33.079
+built-in function, it's calling into a Rust function
+
+00:10:33.080 --> 00:10:40.079
+instead of a C function under the hood. So all the Elisp stays
+
+00:10:40.080 --> 00:10:42.679
+Elisp, but the C becomes Rust.
+
+NOTE Clarifying rewriting Elisp in Rust
+
+00:10:42.680 --> 00:10:54.599
+So looking at the IRC chat, it feels to me like maybe there's a
+
+00:10:54.600 --> 00:10:59.159
+little bit of confusion around what do we mean when we say
+
+00:10:59.160 --> 00:11:04.839
+rewriting Elisp in Rust, right? I think there are some
+
+00:11:04.840 --> 00:11:07.399
+people that are like, A, we're reinventing ELISP, and
+
+00:11:07.400 --> 00:11:09.679
+there's other people that are like, no, we're trying to be
+
+00:11:09.680 --> 00:11:12.879
+byte-for-byte compatible with Rust.
+
+00:11:12.880 --> 00:11:17.500
+So some people are questioning your no answer on that.
+
+00:11:17.501 --> 00:11:20.000
+Aren't you really, maybe, is what I'm reading in there.
+
+00:11:20.001 --> 00:11:21.769
+Do you want to respond to that?
+
+00:11:21.770 --> 00:11:26.119
+Yeah, I'm trying to think about how I can make this
+
+00:11:26.120 --> 00:11:29.559
+clearer. So the Elisp stays Elisp. We're not changing the
+
+00:11:29.560 --> 00:11:33.239
+Elisp at all, or at least very minimally. We want to be able to
+
+00:11:33.240 --> 00:11:36.519
+take, like I said, bug compatible. So whatever works inside
+
+00:11:36.520 --> 00:11:39.999
+existing Emacs, you can take all the Lisp and you can run it in
+
+00:11:40.000 --> 00:11:43.599
+Rune and it works the same. So the Elisp stays the same. It's
+
+00:11:43.600 --> 00:11:47.119
+just the under the hood core that is getting replaced. And
+
+00:11:47.120 --> 00:11:49.199
+this in turn adds some new features such as
+
+00:11:49.200 --> 00:11:52.799
+multi-threading. So it's not exactly compatible, but
+
+00:11:52.800 --> 00:11:55.559
+you should be able to use your existing code and the Elisp will
+
+00:11:55.560 --> 00:12:00.639
+stay Elisp. So the idea is that anything that I've written as
+
+00:12:00.640 --> 00:12:04.559
+an Emacs user, my config, my custom packages, whatever it
+
+00:12:04.560 --> 00:12:08.999
+may be, that's all going to be valid code. If you take, you
+
+00:12:09.000 --> 00:12:13.163
+know, the Elisp implementation as being the C code
+
+00:12:13.164 --> 00:12:15.745
+and the parts of Elisp written in Elisp
+
+00:12:15.746 --> 00:12:18.448
+that represent opportunity space
+
+00:12:18.449 --> 00:12:20.799
+thinking about Rust as an implementation language...
+
+00:12:20.800 --> 00:12:24.479
+Okay fine. You know, you can make a semantic argument, okay
+
+00:12:24.480 --> 00:12:25.995
+we're re-implementing, we're creating
+
+00:12:25.996 --> 00:12:29.018
+an alternate implementation of Elisp
+
+00:12:29.019 --> 00:12:31.639
+but what Elisp is isn't the problem
+
+00:12:31.640 --> 00:12:35.039
+space here. That's a fixed, a given, if you will.
+
+00:12:35.040 --> 00:12:36.065
+Is that all right?
+
+00:12:36.066 --> 00:12:39.199
+That's a good way of saying it. Okay. Yeah, what you
+
+00:12:39.200 --> 00:12:42.559
+said makes sense. I was kind of responding to some comments,
+
+00:12:42.560 --> 00:12:44.959
+like I'm not sure it connected for everybody. Makes a lot of
+
+00:12:44.960 --> 00:12:47.399
+sense. Yeah, I wasn't sure how much I needed to expand on that
+
+00:12:47.400 --> 00:12:51.119
+and explain that, but I appreciate you jumping in.
+
+00:12:51.120 --> 00:12:57.907
+Um, okay. So if I were just going to, but...
+
+NOTE Q: Will your Rust implementation also be able to run Emacs bytecode? Or are you implementing it at the Lisp level?
+
+00:12:57.908 --> 00:13:02.239
+Will your Rust implementation also be able to run Emacs bytecode or the
+
+00:13:02.240 --> 00:13:04.359
+implemented at the Lisp level? So I already have a bytecode
+
+00:13:04.360 --> 00:13:06.759
+interpreter inside there that runs the existing Elisp
+
+00:13:06.760 --> 00:13:09.519
+bytecode. And so that was one of the first things I did was
+
+00:13:09.520 --> 00:13:11.679
+bootstrap the interpreter and then bootstrap the bytecode
+
+00:13:11.680 --> 00:13:14.999
+engine. And so we compile, we use the... because the bytecode
+
+00:13:15.000 --> 00:13:19.079
+compiler is written in Emacs Lisp. So you bootstrap that
+
+00:13:19.080 --> 00:13:22.919
+and it gives you the Emacs bytecode. I have a bytecode
+
+00:13:22.920 --> 00:13:26.039
+engine that runs the bytecode. So that's already done. And
+
+00:13:26.040 --> 00:13:28.239
+you can potentially, on top of that, do something like the
+
+00:13:28.240 --> 00:13:31.999
+data compilation or a JIT. But we have both an
+
+00:13:32.000 --> 00:13:47.019
+interpreter and a bytecode compiler.
+
+00:13:47.020 --> 00:13:50.799
+And I'll just break in one more time to say with about five
+
+00:13:50.800 --> 00:13:56.319
+minutes left in our live time with this Q&A session, which
+
+00:13:56.320 --> 00:13:58.439
+we're happy to keep going as long as there are questions.
+
+00:13:58.440 --> 00:14:03.959
+Coming up in five minutes, we'll have a talk on color on the
+
+00:14:03.960 --> 00:14:09.639
+gen track. And then right here, we'll have the p-search
+
+00:14:09.640 --> 00:14:09.959
+talk.
+
+00:14:09.960 --> 00:14:20.099
+Thank you.
+
+NOTE Q: Is it possible to bootstrap with just the bytecode interpreter?
+
+00:14:20.100 --> 00:14:22.559
+Is it possible to bootstrap with just the bytecode
+
+00:14:22.560 --> 00:14:25.759
+interpreter? So I'll have to put in a link to one of my blog
+
+00:14:25.760 --> 00:14:28.519
+posts. So that was my original idea was to say, I don't want to
+
+00:14:28.520 --> 00:14:31.559
+have an interpreter, a bytecode interpreter and a native
+
+00:14:31.560 --> 00:14:33.180
+compiler. I want to just have just one.
+
+00:14:33.181 --> 00:14:36.741
+So I'm only going to have the bytecode.
+
+00:14:36.742 --> 00:14:37.708
+And so that's what I did initially.
+
+00:14:37.709 --> 00:14:42.079
+The problem with that is, is that a bunch of the early bootstrap
+
+00:14:42.080 --> 00:14:45.117
+Emacs code is written with the assumption
+
+00:14:45.118 --> 00:14:47.278
+that it's going to be interpreted.
+
+00:14:47.279 --> 00:14:49.019
+This is especially true with macros,
+
+00:14:49.020 --> 00:14:50.821
+where you'll have a function defined,
+
+00:14:50.822 --> 00:14:52.642
+you'll evaluate part of the function.
+
+00:14:52.643 --> 00:14:55.599
+The other half of the function has macros in it
+
+00:14:55.600 --> 00:14:59.719
+that are not defined yet, but it doesn't matter because they
+
+00:14:59.720 --> 00:15:02.399
+don't get used. But with the bytecode interpreter, it
+
+00:15:02.400 --> 00:15:04.639
+expands all macros when it gets the function definition.
+
+00:15:04.640 --> 00:15:08.799
+And so those weren't macros when the function was expanded,
+
+00:15:08.800 --> 00:15:12.359
+and therefore they got instantiated as functions, but
+
+00:15:12.360 --> 00:15:15.759
+they're not functions, they're macros. And so I initially
+
+00:15:15.760 --> 00:15:18.999
+spent a bunch of time trying to work around this, trying to
+
+00:15:19.000 --> 00:15:21.599
+move code around, work stuff around, refactor the code to
+
+00:15:21.600 --> 00:15:24.759
+try and get it to work with only bytecode interpreter. And
+
+00:15:24.760 --> 00:15:27.039
+eventually I just gave up. I said, you know what, I'm just
+
+00:15:27.040 --> 00:15:30.039
+going to write an actual interpreter to handle this because
+
+00:15:30.040 --> 00:15:33.799
+trying to handle all these lazy macros is too much work. And
+
+00:15:33.800 --> 00:15:35.759
+everything in the bootstrap is built with the assumption
+
+00:15:35.760 --> 00:15:37.799
+that you have lazy macro expansion.
+
+00:15:37.800 --> 00:15:45.159
+I'm guessing the Emacs bytecode interpreter isn't
+
+00:15:45.160 --> 00:15:45.959
+complete.
+
+00:15:45.960 --> 00:15:52.279
+So it's mostly complete. There's a handful of opcodes that
+
+00:15:52.280 --> 00:15:55.239
+aren't implemented that are pretty easy to add that I
+
+00:15:55.240 --> 00:15:57.879
+haven't run into. And there's some of them that are
+
+00:15:57.880 --> 00:16:00.119
+deprecated that aren't implemented, but it's essentially
+
+00:16:00.120 --> 00:16:00.479
+complete.
+
+00:16:00.480 --> 00:16:11.999
+We also provide a bytecode JIT compilation via libgcc the
+
+00:16:12.000 --> 00:16:17.344
+way Emacs currently does it. Eventually I would like to...
+
+00:16:17.345 --> 00:16:22.919
+I'm more inclined to have a proper runtime JIT than an
+
+00:16:22.920 --> 00:16:27.399
+ahead-of-time compiler like libgcc, like the current
+
+00:16:27.400 --> 00:16:29.919
+Emacs native compilation, because it allows you to take
+
+00:16:29.920 --> 00:16:34.559
+type information and actually apply that to the code, which
+
+00:16:34.560 --> 00:17:03.959
+can let you do more aggressive optimizations to it.
+
+NOTE What would it take to bootstrap Guile in Rune?
+
+00:17:03.960 --> 00:17:06.319
+He said, we may either get a new Emacs with an ancient C core
+
+00:17:06.320 --> 00:17:09.039
+with a modern Lisp, or an Emacs with modern core, but stuck
+
+00:17:09.040 --> 00:17:11.879
+with ancient Elisp. So there was another project I was
+
+00:17:11.880 --> 00:17:16.639
+talking to, one of the Guile implementations, about how we
+
+00:17:16.640 --> 00:17:19.119
+could potentially, he was like, what would it take to
+
+00:17:19.120 --> 00:17:24.479
+bootstrap Guile in Rune, where you have both, you could have
+
+00:17:24.480 --> 00:17:27.399
+Elisp and Guile running inside this project. And so we've
+
+00:17:27.400 --> 00:17:28.999
+started that discussion, which I think would be, which
+
+00:17:29.000 --> 00:17:33.999
+would be interesting. But it's tricky too, because
+
+00:17:34.000 --> 00:17:36.199
+fundamentally Elisp and Guile are two different
+
+00:17:36.200 --> 00:17:38.119
+languages. They have different semantics. They have
+
+00:17:38.120 --> 00:17:39.879
+different ways of handling things. You've really got to
+
+00:17:39.880 --> 00:17:42.479
+consider both of those when you're trying to make them work
+
+00:17:42.480 --> 00:17:42.799
+together.
+
+00:17:42.800 --> 00:17:57.319
+How would you do the native module system? What would be
+
+00:17:57.320 --> 00:17:59.799
+different? We can do the same thing. We have an FFI. So I
+
+00:17:59.800 --> 00:18:03.839
+haven't looked into it a ton, but I feel like it could be
+
+00:18:03.840 --> 00:18:06.359
+similar. And I'm actually interested, there's a couple
+
+00:18:06.360 --> 00:18:12.759
+projects on GitHub right now to have an FFI written in Elisp.
+
+00:18:12.760 --> 00:18:17.239
+So you don't even need to create a separate C or Rust module,
+
+00:18:17.240 --> 00:18:21.679
+because you can actually write native modules in Rust or C.
+
+00:18:21.680 --> 00:18:25.559
+And so you can just have direct bindings to a C FFI written in
+
+00:18:25.560 --> 00:18:27.799
+Elisp. You don't need any C code inside there. And I think
+
+00:18:27.800 --> 00:18:33.699
+that would be an interesting approach to look at as well.
+
+00:18:33.700 --> 00:18:35.839
+Oh, Ramin. Yeah, that's right. We were talking about that,
+
+00:18:35.840 --> 00:18:41.539
+about bootstrapping Scheme.
+
+00:18:41.540 --> 00:18:45.519
+And at this point, we have broken away from, uh, from this
+
+00:18:45.520 --> 00:18:47.399
+talk, but we're continuing to record and this will all be
+
+00:18:47.400 --> 00:18:50.439
+published. I'd say, go ahead and keep going as long as you'd
+
+00:18:50.440 --> 00:18:54.959
+like in here. And, um, thanks once again for the awesome
+
+00:18:54.960 --> 00:18:58.639
+discussion. Thank you so much. So I'll just pay attention to
+
+00:18:58.640 --> 00:19:02.919
+the ether pad and the chat and see.
+
+00:19:02.920 --> 00:19:05.919
+That sounds good. I'll keep an eye on IRC. And if there are
+
+00:19:05.920 --> 00:19:08.559
+more questions here, I'll bounce people toward the ether
+
+00:19:08.560 --> 00:19:12.760
+pad or this, uh, chat room. All right, thank you.
diff --git a/2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt b/2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt
new file mode 100644
index 00000000..2ea0a13c
--- /dev/null
+++ b/2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt
@@ -0,0 +1,846 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:11.119
+And I believe we are live. Hi, Daniel, how are you doing? I'm
+
+00:00:11.120 --> 00:00:17.199
+doing great. It's cold outside, but it's nice in here, yeah.
+
+00:00:17.200 --> 00:00:21.439
+I can assure you it's very cold in my own place as well. We do
+
+00:00:21.440 --> 00:00:24.679
+EmacsConf always in December and that's always when it's
+
+00:00:24.680 --> 00:00:27.479
+particularly cold where I live and I assume where you live as
+
+00:00:27.480 --> 00:00:31.039
+well. So, don't worry, we'll try to keep you warm with
+
+00:00:31.040 --> 00:00:35.039
+interesting questions. But first, thank you for taking the
+
+00:00:35.040 --> 00:00:38.359
+time out of your busy high school life to make a presentation
+
+NOTE Q: Do you have any thoughts about the process of recording something for a conference?
+
+00:00:38.360 --> 00:00:41.439
+about Emacs. Do you have any thoughts about the process of
+
+00:00:41.440 --> 00:00:44.399
+recording something for a conference? Because I assume
+
+00:00:44.400 --> 00:00:47.279
+it's one of the first ones you're ever doing.
+
+00:00:47.280 --> 00:00:55.879
+I think it was not as difficult as I thought it would be. I just
+
+00:00:55.880 --> 00:01:04.479
+recorded in my basement and prepared some notes
+
+00:01:04.480 --> 00:01:08.639
+beforehand. I think it was definitely helpful to have Emacs
+
+00:01:08.640 --> 00:01:11.959
+as a tool for that, because I made my presentation with
+
+00:01:11.960 --> 00:01:18.559
+Beamer. Right. I mean, it's amazing to see so many of the
+
+00:01:18.560 --> 00:01:22.519
+tools because, you know, you've shown Emacs, but you've
+
+00:01:22.520 --> 00:01:27.399
+shown Beamer. You've shown tools that are about twice as old
+
+00:01:27.400 --> 00:01:30.239
+as you are yourself, which is amazing when you think about
+
+00:01:30.240 --> 00:01:33.199
+it. But I think many people in the audience can actually
+
+00:01:33.200 --> 00:01:36.479
+relate to your discovery of those tools because we were
+
+00:01:36.480 --> 00:01:40.679
+pretty much, I mean a lot of us were your age when we started
+
+00:01:40.680 --> 00:01:43.999
+playing with those tools so it's like there's a little bit of
+
+00:01:44.000 --> 00:01:45.759
+nostalgia that we feel looking at your presentation
+
+00:01:45.760 --> 00:01:48.719
+because we are, we can see the excitement behind everything
+
+00:01:48.720 --> 00:01:51.919
+you've touched and that's great for us because it brings us
+
+00:01:51.920 --> 00:01:55.919
+back maybe 10 or 20 years in the past and for others perhaps 30
+
+00:01:55.920 --> 00:02:01.079
+or 40 years so that's kind of amazing.
+
+00:02:01.080 --> 00:02:05.039
+How about we start taking some questions? So, just for
+
+00:02:05.040 --> 00:02:09.199
+timekeeping, we have until 20 of the current hours, which is
+
+00:02:09.200 --> 00:02:12.079
+8 minutes and 30 seconds to cover as many questions as
+
+00:02:12.080 --> 00:02:16.599
+possible. Now, if we might take the first one. So, Corwin,
+
+00:02:16.600 --> 00:02:20.359
+can you scroll down to the questions? Yes. I'll be reading
+
+00:02:20.360 --> 00:02:22.319
+you the questions just to make it a little easier for you,
+
+00:02:22.320 --> 00:02:23.791
+Daniel, to answer them.
+
+NOTE Q: I use org-roam for notes and find it very useful - have you considered it?
+
+00:02:23.792 --> 00:02:25.999
+I use Org-roam for notes and find it
+
+00:02:26.000 --> 00:02:30.639
+very useful. Have you considered it? Uh, yeah, that's
+
+00:02:30.640 --> 00:02:35.519
+actually where I started out for taking notes. Um, that,
+
+00:02:35.520 --> 00:02:38.719
+that I moved to Denote because I didn't use all of its
+
+00:02:38.720 --> 00:02:44.319
+features, um, for, Org Roam, I meant.
+
+00:02:44.320 --> 00:02:46.999
+Uh, I also didn't, didn't really like the dependency on an
+
+00:02:47.000 --> 00:02:51.919
+external database. Uh, it just like took a while for, um,
+
+00:02:51.920 --> 00:02:56.879
+stuff to index if I moved it between like, uh, using sync
+
+00:02:56.880 --> 00:03:03.679
+thing. laptop and my desktop. Yeah. Yeah, it's definitely
+
+00:03:03.680 --> 00:03:08.119
+something, I mean, I co-maintain Org Roam, so I'm fully aware
+
+00:03:08.120 --> 00:03:12.159
+of this problem with it. And yeah, SyncThing is not great to
+
+00:03:12.160 --> 00:03:16.639
+sync a database, a SQLite database that we use. And, I mean,
+
+00:03:16.640 --> 00:03:19.399
+whichever solution you use, whatever works for you is good.
+
+00:03:19.400 --> 00:03:21.919
+Orgrim was kind of thought in terms of scalability for
+
+00:03:21.920 --> 00:03:26.199
+people who had, you know, thousands of notes with thousands
+
+00:03:26.200 --> 00:03:28.919
+of links inside of them. so perhaps it's not adapted to your
+
+00:03:28.920 --> 00:03:31.039
+note-taking style right now, but perhaps it's something to
+
+00:03:31.040 --> 00:03:34.599
+keep in mind, you know, it's many tools and you use them when
+
+00:03:34.600 --> 00:03:39.599
+you need to. Colin, if we can switch the questions, I'm
+
+00:03:39.600 --> 00:03:40.879
+switching to the second one.
+
+NOTE Q: Do you use the Getting Things Done methodology as part of your Org workflow?
+
+00:03:40.880 --> 00:03:42.159
+Do you use the Getting Things
+
+00:03:42.160 --> 00:03:46.639
+Done methodology as part of your Org workflow? So there's an
+
+00:03:46.640 --> 00:03:50.039
+interesting thing about that. I started with Org first and
+
+00:03:50.040 --> 00:03:54.959
+then I heard about Getting Things Done, so I didn't exactly
+
+00:03:54.960 --> 00:04:01.679
+design my workflow with that in mind, but I sort of
+
+00:04:01.680 --> 00:04:06.439
+reinvented it, I would say, not really, but I do a lot of
+
+00:04:06.440 --> 00:04:09.439
+the similar things, but I don't have the different TODO
+
+00:04:09.440 --> 00:04:11.319
+states like...
+
+00:04:11.320 --> 00:04:17.279
+I don't know an example because I didn't really look into it
+
+00:04:17.280 --> 00:04:22.719
+that much, but it would be like NEXT isn't the next thing
+
+00:04:22.720 --> 00:04:28.879
+you're going to do. But I don't think I...
+
+00:04:28.880 --> 00:04:35.239
+where I just write what I need to do and then schedule it and
+
+00:04:35.240 --> 00:04:40.999
+then look at my agenda for the next thing. Yeah, I mean, part
+
+00:04:41.000 --> 00:04:45.959
+of the beauty of using Emacs, Org Mode or using a methodology
+
+00:04:45.960 --> 00:04:49.719
+like Getting Things Done is that I think you need to find room
+
+00:04:49.720 --> 00:04:53.519
+in the method or the tool for you to organically do what you
+
+00:04:53.520 --> 00:04:57.279
+want. And it's okay to not do everything in a Getting Things
+
+00:04:57.280 --> 00:05:00.599
+Done methodology. I know a lot of people take issue
+
+00:05:00.600 --> 00:05:04.719
+with the tickler file, where you're supposed to put stuff to
+
+00:05:04.720 --> 00:05:07.319
+review in the future. For instance, if you don't want
+
+00:05:07.320 --> 00:05:10.439
+to work on this particular topic right now in your life, you
+
+00:05:10.440 --> 00:05:14.679
+decide, oh, I'd like to revisit this topic maybe in six
+
+00:05:14.680 --> 00:05:17.399
+months. And then you have this tickler file, which has
+
+00:05:17.400 --> 00:05:21.799
+entries and folders for each month of the year. And when six
+
+00:05:21.800 --> 00:05:24.039
+months comes and you find yourself at the beginning of the
+
+00:05:24.040 --> 00:05:27.319
+next month, you open the file and you see, oh there's the task
+
+00:05:27.320 --> 00:05:30.319
+I left off for later. A lot of people don't like to do it this
+
+00:05:30.320 --> 00:05:34.279
+way, some people really like it, but part of the beauty of
+
+00:05:34.280 --> 00:05:38.119
+having tools which are very modular like Emacs and Org Mode
+
+00:05:38.120 --> 00:05:41.479
+allows you to have, well, you just adjust the method for
+
+00:05:41.480 --> 00:05:44.439
+something that works. And there's something to be garnered
+
+00:05:44.440 --> 00:05:48.759
+as well for applying these lessons to how you organize your
+
+00:05:48.760 --> 00:05:51.559
+life, not merely in front of a computer, but also how you
+
+00:05:51.560 --> 00:05:54.519
+manage your tasks elsewhere at school, iSchool or
+
+00:05:54.520 --> 00:05:58.519
+elsewhere.
+
+NOTE Q: org-fc and org-drill are emacs org mode centric flash card solutions, have you looked into them?
+
+00:05:58.520 --> 00:06:02.799
+All right, moving to the next question. Org-fc and org-drill
+
+00:06:02.800 --> 00:06:06.319
+are Emacs Org Mode-centric flashcard solutions. Have you
+
+00:06:06.320 --> 00:06:11.599
+looked into them? I think I looked into Org-Drill, but I
+
+00:06:11.600 --> 00:06:17.359
+wanted to use Anki because of... I wanted to use it on my
+
+00:06:17.360 --> 00:06:21.439
+phone, but then I realized I had to pay for the app, and then I
+
+00:06:21.440 --> 00:06:24.119
+didn't want to use it on my phone anymore.
+
+00:06:24.120 --> 00:06:31.799
+but it's just something that I used before without work mode
+
+00:06:31.800 --> 00:06:35.239
+for a little bit. And then I liked it,
+
+00:06:35.240 --> 00:06:42.919
+but yeah, it works pretty well with Org mode. So I didn't
+
+00:06:42.920 --> 00:06:47.799
+find a reason to switch to one of those because like I might be
+
+00:06:47.800 --> 00:06:53.559
+not at a computer one day and have to learn something. Yeah,
+
+00:06:53.560 --> 00:06:56.399
+that's something that you call premature optimization.
+
+00:06:56.400 --> 00:06:59.479
+And if you continue as a software engineer at university,
+
+00:06:59.480 --> 00:07:02.679
+you'll get to hear plenty of this. But yes, Anki is also a tool
+
+00:07:02.680 --> 00:07:06.399
+that I've used a whole lot in my learning journeys, be it
+
+00:07:06.400 --> 00:07:09.719
+about languages, be it about literature, be it about
+
+00:07:09.720 --> 00:07:15.519
+whatever really, and it's a very good tool and I recommend
+
+00:07:15.520 --> 00:07:17.799
+people to look into it, especially since they've released a
+
+00:07:17.800 --> 00:07:20.839
+new algorithm to manage learning a little differently than
+
+00:07:20.840 --> 00:07:23.719
+the old one. If you're familiar with SuperMemo, I really
+
+00:07:23.720 --> 00:07:25.992
+invite you to look into the advancement
+
+00:07:25.993 --> 00:07:27.505
+in Anki in recent years.
+
+NOTE Q: What do other students think about your approach - and what are they doing instead (if anything)? And your teachers - what do they think?
+
+00:07:27.506 --> 00:07:31.399
+Moving to another question, what do other students
+
+00:07:31.400 --> 00:07:33.919
+think about your approach and what are they doing instead,
+
+00:07:33.920 --> 00:07:39.359
+if anything? And your teachers, what do they think? So for
+
+00:07:39.360 --> 00:07:43.199
+other students they usually are just confused about what's
+
+00:07:43.200 --> 00:07:51.879
+going on when I show my computer because they know that I use
+
+00:07:51.880 --> 00:07:56.759
+Linux but they don't know what it is so they're just assuming
+
+00:07:56.760 --> 00:08:03.839
+everything on my computer is I'm either hacking or like
+
+00:08:03.840 --> 00:08:05.999
+doing some Linux thing and
+
+00:08:06.000 --> 00:08:09.919
+I don't really bother to explain it to them so that's kind
+
+00:08:09.920 --> 00:08:17.079
+But for I love it. See my see my prior videos. That's that's
+
+00:08:17.080 --> 00:08:19.559
+wonderful. Pardon me. Pardon me for breaking in, Daniel.
+
+00:08:19.560 --> 00:08:22.239
+But I just since I have, I want to say wonderful
+
+00:08:22.240 --> 00:08:28.559
+presentation. I love your spirit, your tone and great
+
+00:08:28.560 --> 00:08:29.319
+thought there.
+
+00:08:29.320 --> 00:08:31.399
+For my teachers, I think...
+
+00:08:31.400 --> 00:08:38.799
+because if I write an essay or something, I usually paste it
+
+00:08:38.800 --> 00:08:46.879
+in Google Docs. But recently, I got more confident, which is
+
+00:08:46.880 --> 00:08:53.879
+export to LaTeX, and I did that for my physics labs. My
+
+00:08:53.880 --> 00:08:56.439
+teacher was pretty satisfied with the results for the math
+
+00:08:56.440 --> 00:09:03.119
+formatting. So I think they don't really have a problem with
+
+00:09:03.120 --> 00:09:06.959
+it, where it's actually more convenient, maybe.
+
+00:09:06.960 --> 00:09:13.039
+That's really great to hear and if you continue at
+
+00:09:13.040 --> 00:09:16.519
+university, which I'm almost sure that you will, your
+
+00:09:16.520 --> 00:09:19.279
+professors, you'll be pretty much using the same tools as
+
+00:09:19.280 --> 00:09:23.359
+they are, so you'll find yourself in a like-minded crowd of
+
+00:09:23.360 --> 00:09:28.519
+people once you get to university. We are a little short on
+
+00:09:28.520 --> 00:09:30.719
+time because we need to move to the next talk in about one
+
+00:09:30.720 --> 00:09:35.999
+minute. There are still some questions and Daniel, I would
+
+00:09:36.000 --> 00:09:40.399
+invite you to stay and maybe answer them in a room so that we
+
+00:09:40.400 --> 00:09:43.399
+can gather as many of your answers as possible. But before we
+
+00:09:43.400 --> 00:09:45.239
+leave, I just want to give you the opportunity, if you have
+
+00:09:45.240 --> 00:09:46.919
+any last words, to share them with the crowd.
+
+00:09:46.920 --> 00:09:53.479
+Well, for the students who may be watching this, I hope that
+
+00:09:53.480 --> 00:09:57.319
+you give Emacs a try. And good luck if you decide to use
+
+00:09:57.320 --> 00:10:01.519
+something else because it's probably won't be as great.
+
+00:10:01.520 --> 00:10:07.399
+It's very good to be so young and to already be convinced that
+
+00:10:07.400 --> 00:10:09.879
+Emacs is the best thing. For some of us, it took us many
+
+00:10:09.880 --> 00:10:12.839
+decades to reach this conclusion, and I'm so happy
+
+00:10:12.840 --> 00:10:15.095
+to see young people. I used to be a teacher,
+
+00:10:15.096 --> 00:10:17.016
+by the way, so I used to teach people your age,
+
+00:10:17.017 --> 00:10:19.799
+but I'm so happy to see people your age
+
+00:10:19.800 --> 00:10:23.359
+interested in Emacs because it makes me hopeful that in the
+
+00:10:23.360 --> 00:10:26.799
+future we'll have people carrying the flame and standing on
+
+00:10:26.800 --> 00:10:30.039
+the shoulders of current people. So thank you so much,
+
+00:10:30.040 --> 00:10:32.917
+Daniel. We'll be seeing you soon. We wish you good luck with
+
+00:10:32.917 --> 00:10:35.999
+your studies. And for EmacsConf, we'll be moving to the next
+
+00:10:36.000 --> 00:10:39.624
+talk in five seconds. See you soon. And I want to reassure
+
+00:10:39.625 --> 00:10:44.332
+you, we'll post all the Q&A info when we do post this video.
+
+00:10:44.333 --> 00:10:47.839
+Yes. So Daniel, as I said,
+
+00:10:47.840 --> 00:10:49.239
+if you want to stick around a little more with
+
+00:10:49.240 --> 00:10:51.839
+Corwin to answer the questions, that's all fine.
+
+00:10:51.840 --> 00:10:53.599
+I'll be moving to the next room to get ready for the next
+
+00:10:53.600 --> 00:10:59.159
+talks. So thank you, Daniel. And I'll see you later.
+
+00:10:59.160 --> 00:11:06.199
+All right, the cops are gone. Wait, no, I'm just kidding. No,
+
+00:11:06.200 --> 00:11:10.042
+but if you'd like to walk through a few more of these
+
+00:11:10.043 --> 00:11:11.960
+questions, I'd be happy to record that. You're not
+
+00:11:12.000 --> 00:11:14.559
+obligated to do that. You could also, the pad's there. You
+
+00:11:14.560 --> 00:11:16.999
+could just type out your answers or whatever you prefer to
+
+00:11:17.000 --> 00:11:24.559
+do. I guess I can answer them still. Cool.
+
+00:11:24.560 --> 00:11:25.359
+So we're here.
+
+NOTE Q: What was your biggest source of frustration/friction/confusion when getting started with Emacs?
+
+00:11:25.360 --> 00:11:27.759
+What was your biggest source of frustration, friction,
+
+00:11:27.760 --> 00:11:32.319
+confusion when getting started?
+
+00:11:32.320 --> 00:11:38.239
+I honestly don't really remember. It
+
+00:11:38.240 --> 00:11:45.279
+somehow just clicked one day and I figured it out.
+
+00:11:45.280 --> 00:11:48.123
+All right, it takes us pretty naturally to the next one.
+
+NOTE Q: How did you come across Emacs? What got you into it?
+
+00:11:48.124 --> 00:11:54.079
+How did you come across Emacs? What got you into it? I could ask
+
+00:11:54.080 --> 00:11:58.280
+this question quite
+
+00:11:58.320 --> 00:12:05.479
+similar to how I stumbled into Linux, where I was... I heard
+
+00:12:05.480 --> 00:12:09.519
+of it before, but I saw screenshots of it
+
+00:12:09.520 --> 00:12:11.247
+or something on Reddit, and I was like, oh,
+
+00:12:11.248 --> 00:12:14.648
+that looks pretty cool, maybe I'll look into that.
+
+00:12:14.649 --> 00:12:16.599
+And then on YouTube, I would see videos
+
+00:12:16.600 --> 00:12:21.199
+about Doom Emacs, and then the Doomcasts video,
+
+00:12:21.200 --> 00:12:37.239
+I think that's what really got me into it.
+
+00:12:37.240 --> 00:12:42.279
+Okay, I did my best to capture that. So what's the situation
+
+00:12:42.280 --> 00:12:46.439
+with respect to the mobile use, if that's applicable? And
+
+00:12:46.440 --> 00:12:47.639
+Orgzly is,
+
+00:12:47.640 --> 00:12:52.359
+sorry, was it not Doomcast? Is it System Crafters?
+
+00:12:52.360 --> 00:12:58.199
+Sorry if I botched the note. Oh yeah, System Crafters was
+
+00:12:58.200 --> 00:13:01.679
+also one of the things I used for getting into Emacs from
+
+00:13:01.680 --> 00:13:08.079
+scratch. I'm sorry if my dog is barking.
+
+00:13:08.080 --> 00:13:16.799
+the, I'm not sure how to pronounce his name, but Protesilaos,
+
+00:13:16.800 --> 00:13:20.399
+I think that's how you say it. I always say Prot just to get me
+
+00:13:20.400 --> 00:13:23.039
+out of that problem for what it's worth. I'm not sure that I
+
+00:13:23.040 --> 00:13:26.719
+can say it properly either. Yeah, his videos were really
+
+00:13:26.720 --> 00:13:30.479
+great for getting started with each, each individual
+
+00:13:30.480 --> 00:13:31.240
+component of
+
+00:13:31.292 --> 00:13:34.124
+something like there's entire videos just
+
+00:13:34.125 --> 00:13:40.249
+about completion and about a tool called Embark. And like, I
+
+00:13:40.250 --> 00:13:41.318
+would just watch those videos
+
+00:13:41.319 --> 00:13:42.999
+while I was doing the dishes or something.
+
+00:13:43.000 --> 00:13:53.679
+and I would learn a lot from that.
+
+NOTE Q: What the situation with respect to "mobile" use (if ever that's applicable)? (yes, Orgzly...using that?)
+
+00:13:53.680 --> 00:13:59.120
+Awesome. I love it. What about the mobile...
+
+00:13:59.121 --> 00:14:04.960
+sorry, did I get that question out there already? Oh, no.
+
+00:14:04.961 --> 00:14:07.917
+I don't use Emacs or any Org Mode things on my
+
+00:14:07.918 --> 00:14:19.963
+phone. I have an iPhone, unfortunately.
+
+00:14:19.964 --> 00:14:24.120
+But for org files, I couldn't really get it to sync over
+
+00:14:24.121 --> 00:14:26.800
+without using a paid app.
+
+00:14:26.801 --> 00:14:28.040
+And I didn't really look into it
+
+00:14:28.041 --> 00:14:30.140
+that much because I have a computer with me
+
+00:14:30.141 --> 00:14:36.000
+almost all the time.
+
+00:14:36.001 --> 00:14:39.520
+Usually I carry around a notebook. And if I really need to
+
+00:14:39.521 --> 00:14:41.940
+know something or remember it for later,
+
+00:14:41.941 --> 00:14:52.660
+I just write it down.
+
+00:14:52.661 --> 00:15:01.759
+I've seen people get started with e-ink tablets, and they
+
+00:15:01.760 --> 00:15:07.959
+sync it with SyncThing because it's Android, but I don't use
+
+00:15:07.960 --> 00:15:21.919
+that, so I can't really attest to how good it is.
+
+NOTE Q: Has using emacs led to expanded interest in programming/computer science?
+
+00:15:21.920 --> 00:15:25.559
+So has using Emacs led you to an expanded interest in
+
+00:15:25.560 --> 00:15:28.519
+programming and computer science? Sorry if
+
+00:15:28.520 --> 00:15:31.781
+I could have got that out of the presentation.
+
+00:15:31.782 --> 00:15:33.999
+I think Emacs is what got me
+
+00:15:34.000 --> 00:15:37.840
+started with Lisp specifically.
+
+00:15:37.900 --> 00:15:40.380
+Otherwise, I probably would have not really looked into it
+
+00:15:40.381 --> 00:15:44.920
+that much, other than like maybe dabbling in Scheme
+
+00:15:44.921 --> 00:15:50.180
+from the Structures and Interpretations of Computer
+
+00:15:50.181 --> 00:15:53.680
+Programs book. But I probably wouldn't have seen that if I
+
+00:15:53.681 --> 00:16:06.120
+hadn't discovered Emacs either so.
+
+00:16:06.121 --> 00:16:08.792
+I was already into programming
+
+00:16:08.793 --> 00:16:14.958
+before Emacs, and I had used VS Code for a little bit and then
+
+00:16:14.959 --> 00:16:22.917
+Vim. But I think I've done most of my programming
+
+00:16:22.918 --> 00:16:26.667
+inside of Emacs, in terms of lines of code written,
+
+00:16:26.668 --> 00:16:40.671
+projects made...
+
+NOTE Q: How does interaction with others work in technical terms?
+
+00:16:40.672 --> 00:16:44.519
+So maybe we'd jump from there, right, to, you mentioned
+
+00:16:44.520 --> 00:16:48.359
+exporting notes, essays, and so on, handing them on to other
+
+00:16:48.360 --> 00:16:53.319
+people. How does interaction with others work in technical
+
+00:16:53.320 --> 00:16:57.759
+terms? We mostly find workflows centered around like
+
+00:16:57.760 --> 00:17:00.479
+Microsoft products, and that makes sense to me. I have a day
+
+00:17:00.480 --> 00:17:03.719
+job where I have to work with a bunch of Microsoft products,
+
+00:17:03.720 --> 00:17:08.399
+and I know the workflows for that. So how do you manage your
+
+00:17:08.400 --> 00:17:14.519
+kind of Emacs-y you know, workflows, um, you know, in terms of
+
+00:17:14.520 --> 00:17:19.119
+sharing with people. Yeah. So for sharing with like my
+
+00:17:19.120 --> 00:17:22.719
+teachers or something, I would, we use like Google at our
+
+00:17:22.720 --> 00:17:25.759
+school. So for, I'm very fortunate that I don't have to deal
+
+00:17:25.760 --> 00:17:29.639
+with Microsoft other than with a very niche situations in
+
+00:17:29.640 --> 00:17:32.599
+which I can just use LibreOffice and then convert to Doc X or
+
+00:17:32.600 --> 00:17:35.719
+something. I heard that chef. That's, that's how all my
+
+00:17:35.720 --> 00:17:39.679
+vendors, uh, my vendors all roll their eyes when they were,
+
+00:17:39.680 --> 00:17:42.885
+oh, you're a Microsoft shop. Yep. Heard.
+
+00:17:42.886 --> 00:17:45.947
+Then they're all Google shops too, in education.
+
+00:17:45.948 --> 00:17:51.958
+Great point. For Google, I just... If my teachers wanted
+
+00:17:51.959 --> 00:17:53.125
+a Google Doc or something,
+
+00:17:53.126 --> 00:17:54.299
+I usually just copy paste
+
+00:17:54.300 --> 00:17:55.679
+whatever I wrote in Emacs
+
+00:17:55.680 --> 00:17:59.333
+and then still keep it, anyway, as a side thing
+
+00:17:59.334 --> 00:18:00.667
+because I don't really trust the cloud
+
+00:18:00.668 --> 00:18:02.875
+that much in terms of using
+
+00:18:02.876 --> 00:18:10.667
+it for later if I wanted to look at it. But for that, I don't
+
+00:18:10.668 --> 00:18:14.339
+really have too much problems. Hopefully, I will find a way
+
+00:18:14.340 --> 00:18:21.439
+to figure it out when I get into university.
+
+00:18:21.440 --> 00:18:26.679
+Awesome. Okay, well, I know we did it once already, but since
+
+00:18:26.680 --> 00:18:30.479
+this will be the end of the video, let me just open the floor
+
+00:18:30.480 --> 00:18:33.439
+one more time for parting thoughts.
+
+00:18:33.440 --> 00:18:41.719
+I'm not sure that I have any. I mean, you said it pretty well,
+
+00:18:41.720 --> 00:18:46.639
+right? I hope my peers see this. I hope they realize other
+
+00:18:46.640 --> 00:18:49.879
+tools are kind of inferior from a gets things done
+
+00:18:49.880 --> 00:18:54.639
+standpoint. Saw your talk. Heard that message in this Q&A.
+
+00:18:54.640 --> 00:18:58.159
+I think you did a great job. You don't have to say more, but
+
+00:18:58.160 --> 00:19:02.835
+just offering you the chance. Thank you.
+
+00:19:02.836 --> 00:19:03.916
+Well, thank you, Daniel,
+
+00:19:03.917 --> 00:19:07.439
+and thanks to everybody watching this video
+
+00:19:07.440 --> 00:19:09.838
+during the conference or after it,
+
+00:19:09.839 --> 00:19:12.159
+and appreciate and look forward
+
+00:19:12.160 --> 00:19:18.880
+to your talks in the future, Daniel. Thank you.
diff --git a/2024/captions/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt b/2024/captions/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt
new file mode 100644
index 00000000..bb183779
--- /dev/null
+++ b/2024/captions/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt
@@ -0,0 +1,405 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:09.279
+So just to be clear, right now we are currently streaming. So
+
+00:00:09.280 --> 00:00:12.679
+if you want to answer with your voice, you can as well. Oh, I'm
+
+00:00:12.680 --> 00:00:17.999
+sorry. Okay. Yeah. So I've got a question. I think there was a
+
+00:00:18.000 --> 00:00:20.279
+little bit of a misunderstanding with whether we were doing
+
+00:00:20.280 --> 00:00:25.079
+a Q&A on BBB or if we were doing it on Etherpad. So it's really
+
+00:00:25.080 --> 00:00:28.479
+up to you. Right now we've set up everything. So if you want to
+
+00:00:28.480 --> 00:00:32.119
+start answering questions with your voice, we might as
+
+00:00:32.120 --> 00:00:33.864
+well. So OK, so I can just do it live.
+
+NOTE Q: When you choose colors based on the same lightness, does it not hurt readability since the eye sees lightness most?
+
+00:00:33.865 --> 00:00:38.239
+So one question is, so I
+
+00:00:38.240 --> 00:00:41.839
+assume this is a question on the lab space, where all the
+
+00:00:41.840 --> 00:00:46.959
+colors are the same lightness. Does it hurt readability? So
+
+00:00:46.960 --> 00:00:53.679
+far, I find it to be OK. For the lab theme, I picked the colors
+
+00:00:53.680 --> 00:01:00.999
+manually. So like I could just fix a angle essentially so
+
+00:01:01.000 --> 00:01:11.759
+that no colors are similar, so I have good readability. But
+
+00:01:11.760 --> 00:01:18.959
+for a random theme in Monte Carlo, it's hard because like
+
+00:01:18.960 --> 00:01:24.639
+it's just random. But yeah, that's a really good point. And
+
+00:01:24.640 --> 00:01:28.959
+also that's one of the motivations I did the nothing, you
+
+00:01:28.960 --> 00:01:33.999
+know, the great scale theme to explore just using
+
+00:01:34.000 --> 00:01:39.759
+lightness. Yeah.
+
+00:01:39.760 --> 00:01:48.199
+So looking at other questions.
+
+00:01:48.200 --> 00:01:52.279
+Okay, great. Do you want to take the next question. So, okay.
+
+NOTE Q: For monte-carlo, are all the "random" colors picked using a colorwheel/hue rotation?
+
+00:01:52.280 --> 00:01:56.959
+Okay, let's go to the third first. Let's finish. Yes, for
+
+00:01:56.960 --> 00:01:59.999
+Monte Carlo are all the random colors that using a color
+
+00:02:00.000 --> 00:02:06.479
+wheel here. Yes. Well, so basically, what this theme does is
+
+00:02:06.480 --> 00:02:14.159
+it. It picks a saturation and lightness for me first. These
+
+00:02:14.160 --> 00:02:19.759
+are also random, but they are picked with some kind of range.
+
+00:02:19.760 --> 00:02:26.559
+And that's a parameter that I can play with, you know, the
+
+00:02:26.560 --> 00:02:28.959
+range of lightness and separation.
+
+00:02:28.960 --> 00:02:33.479
+Once those are fixed, the colors are picked by angles in the
+
+00:02:33.480 --> 00:02:38.399
+color wheel, or heel rotation, as you would put it. So yes,
+
+00:02:38.400 --> 00:02:43.719
+that's roughly the process.
+
+NOTE Q: One area I see emacs able to do themes that is "underused?" is changing the font
+
+00:02:43.720 --> 00:02:47.239
+OK, great. I think the second question is still in the
+
+00:02:47.240 --> 00:02:51.679
+process. Oh, well, maybe you could start fielding it. I
+
+00:02:51.680 --> 00:02:55.319
+think you've got already something to work on. I see one area
+
+00:02:55.320 --> 00:03:01.199
+I see Emacs able to do. under use is changing the font, font
+
+00:03:01.200 --> 00:03:09.759
+size, font type, model space based on various faces. Yeah,
+
+00:03:09.760 --> 00:03:13.439
+so to paraphrase the question, one thing that Emacs is
+
+00:03:13.440 --> 00:03:17.399
+definitely not doing a whole lot of right now is changing the
+
+00:03:17.400 --> 00:03:21.079
+font that is being used, be it the font size, the font family.
+
+00:03:21.080 --> 00:03:25.039
+Sometimes you see themes, especially old mode themes,
+
+00:03:25.040 --> 00:03:29.199
+fontify differently the headers of the documents versus
+
+00:03:29.200 --> 00:03:31.879
+the content, and usually you do have a little bit of a
+
+00:03:31.880 --> 00:03:34.719
+contrast that is being introduced. But is it something that
+
+00:03:34.720 --> 00:03:38.959
+you find value in, this type of contrast based on font? And to
+
+00:03:38.960 --> 00:03:45.159
+me, it's my personal preference to just use one font. I don't
+
+00:03:45.160 --> 00:03:51.479
+even change the font size a lot in org mode. It's just
+
+00:03:51.480 --> 00:03:55.319
+personal preference.
+
+00:03:55.320 --> 00:03:58.999
+I've seen scenes where once I applied, I opened the org doc
+
+00:03:59.000 --> 00:04:04.639
+and suddenly all the titles are like Serif or some fancy
+
+00:04:04.640 --> 00:04:12.759
+fonts. That works. And to me, again, it's a personal
+
+00:04:12.760 --> 00:04:16.919
+preference that I don't really like that, but I know a lot of
+
+00:04:16.920 --> 00:04:21.799
+people like that. So it's up to you, I guess. Yeah, I mean,
+
+00:04:21.800 --> 00:04:25.839
+this, as we've seen in your talk and as well as the previous
+
+00:04:25.840 --> 00:04:29.279
+one we had this morning, you know, themes are very personal
+
+00:04:29.280 --> 00:04:33.079
+and at the end, whatever you need to, you know, some people
+
+00:04:33.080 --> 00:04:35.799
+are going to need more contrast than others, some people are
+
+00:04:35.800 --> 00:04:37.999
+going to need a little more variety in the fonts that they
+
+00:04:38.000 --> 00:04:41.359
+use. Ultimately, it's up to you really what you want to use.
+
+00:04:41.360 --> 00:04:45.199
+The end point, the angle that one should be aiming for is to
+
+00:04:45.200 --> 00:04:49.039
+feel comfortable in what they're editing. And whether this
+
+00:04:49.040 --> 00:04:52.799
+comfort translates into a very barebone color theme like
+
+00:04:52.800 --> 00:04:56.319
+the one we saw this morning with very slight colors but still
+
+00:04:56.320 --> 00:04:59.079
+which has a lot of personality or perhaps something closer
+
+00:04:59.080 --> 00:05:04.279
+to yours which tends to use equal luminance or lightness for
+
+00:05:04.280 --> 00:05:07.879
+the different entries. Well, everyone needs to tune in and
+
+00:05:07.880 --> 00:05:13.959
+find whatever works best for them, I think. Yep. And also, I
+
+00:05:13.960 --> 00:05:18.479
+want to note, I actually have a personal rule. It's also in
+
+00:05:18.480 --> 00:05:24.479
+all my themes. It's that comments have to be italic. I just
+
+00:05:24.480 --> 00:05:31.999
+like the look of italic comments. So, I actually... So, if
+
+00:05:32.000 --> 00:05:37.799
+you... In one of the section in the video, I mentioned I have
+
+00:05:37.800 --> 00:05:41.959
+hooks. Maybe I didn't mention, but I have hooks when using
+
+00:05:41.960 --> 00:05:47.359
+the picking the random theme setup. One of the purpose of
+
+00:05:47.360 --> 00:05:52.359
+that hook is I can add italic to all the themes on the comment
+
+00:05:52.360 --> 00:05:58.999
+face. Which I don't think it works actually right now, but
+
+00:05:59.000 --> 00:06:02.679
+that's the intention. Yeah, but I think it answers the
+
+00:06:02.680 --> 00:06:05.879
+question we started on originally. Because changing the
+
+00:06:05.880 --> 00:06:11.559
+font, I mean, using the italic variant of the font, it's
+
+00:06:11.560 --> 00:06:14.119
+literally a different font. And so, being able to have this
+
+00:06:14.120 --> 00:06:17.479
+type of contrast is actually important for you. So, it's
+
+00:06:17.480 --> 00:06:20.839
+nice that you managed to find this particular bit of
+
+00:06:20.840 --> 00:06:25.519
+knowledge through experimentation. And also I want to add
+
+00:06:25.520 --> 00:06:30.719
+that if you pick a monospace font like I do, usually there's
+
+00:06:30.720 --> 00:06:37.439
+not a lot of... Creativity? No, that's not the word. It's a
+
+00:06:37.440 --> 00:06:45.639
+lot of personality in the regular font part. But people do
+
+00:06:45.640 --> 00:06:51.799
+put a lot of different things in the italic. So yeah, if you
+
+00:06:51.800 --> 00:06:55.999
+can find a way to utilize the italic face, you could see some
+
+00:06:56.000 --> 00:07:01.239
+interesting results. Yeah, definitely. Again, I think
+
+00:07:01.240 --> 00:07:03.719
+it's important to consider all the things you can play with
+
+00:07:03.720 --> 00:07:06.519
+in terms of contrast. Because at the end of the day, you know,
+
+00:07:06.520 --> 00:07:08.839
+some people are going to be more receptive to a change of font
+
+00:07:08.840 --> 00:07:11.639
+than change of color. You know, just considering the amount
+
+00:07:11.640 --> 00:07:14.439
+of people who are colorblind and who are using software like
+
+00:07:14.440 --> 00:07:19.279
+this. You know, sometimes your vision optimizes for
+
+00:07:19.280 --> 00:07:22.039
+particular kind of changes and some people are going to be
+
+00:07:22.040 --> 00:07:26.279
+more sensitive to a slanted eye than they would be to an eye
+
+00:07:26.280 --> 00:07:31.479
+that is red or an eye that is blue. So, But it's not for
+
+00:07:31.480 --> 00:07:31.999
+everyone.
+
+00:07:32.000 --> 00:07:37.519
+So I'm looking at the time and we have about eight minutes
+
+00:07:37.520 --> 00:07:38.839
+until we go into the next talk.
+
+00:07:38.840 --> 00:07:44.519
+To be frank, I don't think I've got any more questions on my
+
+00:07:44.520 --> 00:07:46.879
+end. I'm not sure if we've got any people on BBB who has joined
+
+00:07:46.880 --> 00:07:49.119
+us and would like to ask a question. Let me check on IRC
+
+00:07:49.120 --> 00:07:53.799
+quickly if we've got any questions coming our way. I don't
+
+00:07:53.800 --> 00:07:57.199
+see any. Do you see any on your end?
+
+00:07:57.200 --> 00:08:06.479
+Not really. Well, then I suggest we just leave it at that and
+
+00:08:06.480 --> 00:08:08.679
+enjoy a little break before the next chat. So, thank you so
+
+00:08:08.680 --> 00:08:11.559
+much Metrowind for coming to EmacsConf and talking about
+
+00:08:11.560 --> 00:08:14.399
+colors because, as you saw, many people are interested
+
+00:08:14.400 --> 00:08:17.199
+about them, so much that another person decided to have a
+
+00:08:17.200 --> 00:08:20.639
+chat about theme. We didn't plan for this, but it's nice to
+
+00:08:20.640 --> 00:08:23.959
+see. And, well, perhaps you could collaborate in the future
+
+00:08:23.960 --> 00:08:26.919
+and both find the mutual confidence that you need to push
+
+00:08:26.920 --> 00:08:29.799
+your stuff to Melpa. Because I did hear that you weren't
+
+00:08:29.800 --> 00:08:33.119
+feeling too confident about your random color theme
+
+00:08:33.120 --> 00:08:37.439
+package. But, you know, you've done the first step, which is
+
+00:08:37.440 --> 00:08:40.559
+talking about it and sharing it with all of us. And perhaps
+
+00:08:40.560 --> 00:08:42.759
+the next step is to actually clean up the code to your
+
+00:08:42.760 --> 00:08:47.959
+satisfaction and publish it eventually. Oh, I can see
+
+00:08:47.960 --> 00:08:53.460
+another question. Should we go to that? Sure.
+
+NOTE Q: Have you ever kept any of the random themes that were thrown up?
+
+00:08:53.461 --> 00:08:54.079
+Have you ever
+
+00:08:54.080 --> 00:08:59.719
+kept any of the random themes that were thrown up? So I assume
+
+00:08:59.720 --> 00:09:05.119
+this is for the Monte Carlo setup. The answer is no. The
+
+00:09:05.120 --> 00:09:09.999
+reason is, like I mentioned, I'm using the randomly picking
+
+00:09:10.000 --> 00:09:15.079
+a theme setup right now. And Monte Carlo is one of them. Now,
+
+00:09:15.080 --> 00:09:18.639
+when Emacs picks Monte Carlo by chance, I wouldn't know
+
+00:09:18.640 --> 00:09:23.239
+about it. So I wouldn't know this is my random theme. That's
+
+00:09:23.240 --> 00:09:28.839
+the reason I never kept any, like, good color schemes
+
+00:09:28.840 --> 00:09:34.959
+generated. So, no. Right, okay. Well, considering we don't
+
+00:09:34.960 --> 00:09:37.359
+have any further questions, what I suggest now is that we'll
+
+00:09:37.360 --> 00:09:40.239
+leave it at that. So, again, Metrowind, thank you so much.
+
+00:09:40.240 --> 00:09:43.079
+Thank you. And hopefully we'll hear more of your themes in
+
+00:09:43.080 --> 00:09:51.120
+the future. Cool. Thanks. All right. Bye bye. Bye bye.
diff --git a/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt b/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt
new file mode 100644
index 00000000..375cad2a
--- /dev/null
+++ b/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt
@@ -0,0 +1,1032 @@
+WEBVTT chapters by sachac
+
+00:00:00.000 --> 00:00:07.559
+Hopefully the internet goes well. It's a nice Monday
+
+00:00:07.560 --> 00:00:31.999
+morning here in Tokyo.
+
+00:00:32.000 --> 00:00:37.879
+Are we connected all right?
+
+00:00:37.880 --> 00:00:40.879
+Okay, I seem to be struggling still with my audio. 1 2nd
+
+00:00:40.880 --> 00:00:44.519
+calling. Yeah, you were muted for a moment there. Okay,
+
+00:00:44.520 --> 00:00:49.959
+there we are. Okay. All right. Sorry about that. I got a mute
+
+00:00:49.960 --> 00:00:55.119
+out my, my back office chatter. That's kind of distracting
+
+00:00:55.120 --> 00:00:58.079
+me a little bit. All right. Sorry. I may have lost the plot a
+
+00:00:58.080 --> 00:01:04.919
+little bit. I think I did. However, find the 1st question.
+
+00:01:04.920 --> 00:01:09.919
+I got pretty distracted by conversation backstage. Yeah,
+
+NOTE Q: When I tried comparing transducers.el to cl-lib and dash (benchmark-compiled), I got the following results
+
+00:01:09.920 --> 00:01:15.879
+no problem. So the first question here, someone's asking,
+
+00:01:15.880 --> 00:01:22.279
+when they first tried comparing transducers.el, the cl-lib
+
+00:01:22.280 --> 00:01:27.959
+and Dash bookmark compiled, and they give some detailed
+
+00:01:27.960 --> 00:01:32.479
+results we're sharing on the stream. Um, they expected
+
+00:01:32.480 --> 00:01:36.679
+transducers to be slower than CL loop, but faster than CL lib
+
+00:01:36.680 --> 00:01:41.119
+or dash. However, this isn't the case, any idea why. And so
+
+00:01:41.120 --> 00:01:43.639
+I'll, I'll come back into their data to show there's they're
+
+00:01:43.640 --> 00:01:48.279
+showing, um, you know, there's not a lot of detail on the, on
+
+00:01:48.280 --> 00:01:52.199
+the, on the use case here. We could certainly click through
+
+00:01:52.200 --> 00:02:02.559
+it, do it.
+
+00:02:02.560 --> 00:02:06.999
+Oh, I should've waited to zoom until I find my spot here.
+
+00:02:07.000 --> 00:02:13.639
+There we are.
+
+00:02:13.640 --> 00:02:18.599
+All right, so there's our example.
+
+00:02:18.600 --> 00:02:23.759
+Looks like we are doing a simple map and a sum.
+
+00:02:23.760 --> 00:02:29.239
+Mm-hmm. Yeah, that's right. Yeah, question about
+
+00:02:29.240 --> 00:02:36.279
+performance. So a case like this, a simple, I just want to rip
+
+00:02:36.280 --> 00:02:40.279
+through a collection of numbers and sum them all. That's a
+
+00:02:40.280 --> 00:02:44.679
+case where basically loop is always going to win because
+
+00:02:44.680 --> 00:02:51.319
+loop is optimized. This is true in both Emacs Lisp and in
+
+00:02:51.320 --> 00:02:56.039
+Common Lisp. For a case like this where you're not really
+
+00:02:56.040 --> 00:03:02.399
+doing two nested of chained calls, like you don't have many
+
+00:03:02.400 --> 00:03:05.839
+sort of what I was compositional steps. If you're just
+
+00:03:05.840 --> 00:03:09.999
+ripping through a collection of numbers, loop is always
+
+00:03:10.000 --> 00:03:15.559
+going to win. Transducers kind of shines when you have to do
+
+00:03:15.560 --> 00:03:19.639
+things that loop can't in terms of expressing yourself. So
+
+00:03:19.640 --> 00:03:22.559
+there are lots of different transducers that you can chain
+
+00:03:22.560 --> 00:03:27.079
+together. And in that case, you're kind of prioritizing
+
+00:03:27.080 --> 00:03:33.039
+developer time and developer happiness because you're
+
+00:03:33.040 --> 00:03:36.399
+able to yourself more clearly, whereas sometimes those
+
+00:03:36.400 --> 00:03:40.679
+kind of algorithms can get very hairy if you're just using
+
+00:03:40.680 --> 00:03:45.399
+loop. Now that sounds like I'm moving the goalposts, and
+
+00:03:45.400 --> 00:03:48.639
+there's really no excuse for these things not being as
+
+00:03:48.640 --> 00:03:54.559
+performant as possible. In this specific case, my guess is
+
+00:03:54.560 --> 00:03:57.759
+that the transducers is slower because it has to do a whole
+
+00:03:57.760 --> 00:04:03.239
+bunch of like inner function calls in order to actually do
+
+00:04:03.240 --> 00:04:09.239
+the adding and the collecting. So there's a lot of stuff that
+
+00:04:09.240 --> 00:04:12.119
+just the raw loop doesn't have to do, which transducers
+
+00:04:12.120 --> 00:04:20.439
+does. And so in this case, that's why it would be slower.
+
+00:04:20.440 --> 00:04:29.079
+All right, makes sense.
+
+00:04:29.080 --> 00:04:36.239
+Um... I cannot comment against Dash. And also a reminder
+
+00:04:36.240 --> 00:04:40.159
+that transducers both in CL and in Emacs Lisp here doesn't
+
+00:04:40.160 --> 00:04:44.919
+attempt to do any, you know, fun, you know, inner rewriting
+
+00:04:44.920 --> 00:04:48.239
+or, you know, what's called an Haskell fusion. Like if you
+
+00:04:48.240 --> 00:04:51.359
+have two different map steps, like in a row, it's not gonna
+
+00:04:51.360 --> 00:04:55.159
+see that and somehow fuse them internally. It's a fairly, in
+
+00:04:55.160 --> 00:04:59.679
+that sense, the implementation is just as is.
+
+00:04:59.680 --> 00:05:04.159
+to make it you know as raw fast as possible. The idea being
+
+00:05:04.160 --> 00:05:12.839
+that ergonomics is more important up front. Yeah, that's
+
+00:05:12.840 --> 00:05:17.519
+kind of a whole fascinating sub-panel, right? My theme this
+
+00:05:17.520 --> 00:05:19.799
+conference has been, oh, all these different things we
+
+00:05:19.800 --> 00:05:24.039
+should try to get sub-panels going for and use that. Maybe
+
+00:05:24.040 --> 00:05:29.039
+fill in the dev track or even have a third track or whatever.
+
+00:05:29.040 --> 00:05:31.519
+I'm not that concerned about the logistics of squeezing
+
+00:05:31.520 --> 00:05:38.519
+into the schedule so much. But anyway, interesting, I mean,
+
+00:05:38.520 --> 00:05:40.839
+to say.
+
+NOTE Q: Do you know of any theoretical texts on transducers?
+
+00:05:40.840 --> 00:05:47.799
+Did we already speak to theoretical texts? No, right? No,
+
+00:05:47.800 --> 00:05:53.399
+let's continue. Okay, so another question from the group.
+
+00:05:53.400 --> 00:05:58.879
+Do you know of any theoretical texts on transducers? My
+
+00:05:58.880 --> 00:06:01.959
+readme, particularly of the Common Lisp implementation,
+
+00:06:01.960 --> 00:06:06.159
+is the theoretical text on transducers. Rich Hickey has
+
+00:06:06.160 --> 00:06:10.439
+some YouTube videos which also come close. I mean, he
+
+00:06:10.440 --> 00:06:14.799
+invented the things. But in terms of having a full
+
+00:06:14.800 --> 00:06:21.559
+explanation of everything, it's my readme and it's also
+
+00:06:21.560 --> 00:06:23.319
+the...
+
+00:06:23.320 --> 00:06:28.559
+The info manual of Guile Scheme, their documentation on
+
+00:06:28.560 --> 00:06:34.199
+Surfy 171 is what I used to learn transducers and to
+
+00:06:34.200 --> 00:06:38.399
+re-implement them in other LISPs. So if you just want like a
+
+00:06:38.400 --> 00:06:41.639
+document explaining them, MyReadMe is actually the
+
+00:06:41.640 --> 00:06:46.959
+clearest that I've found. Awesome. Okay, next question.
+
+00:06:46.960 --> 00:06:50.119
+And I'm sorry, you gave a name, you referred to somebody's
+
+00:06:50.120 --> 00:06:55.439
+videos. Rich Hickey, the inventor of Clojure. Rich Hickey,
+
+00:06:55.440 --> 00:07:00.399
+thank you. Hope I got the spelling right, and maybe somebody
+
+00:07:00.400 --> 00:07:04.719
+can catch that and fix it. If not, I'll reach on. Thank you.
+
+NOTE Q: Did you think about [compiler features, macros] viz your cl, fennel, elisp, porting of your transducers?
+
+00:07:04.720 --> 00:07:08.239
+Reach on to the next question. Waters (Lazy Series in
+
+00:07:08.240 --> 00:07:12.799
+Lisp, late 70s) said this should have been done as an
+
+00:07:12.800 --> 00:07:16.799
+additional compiler feature in compilers, but if not, must
+
+00:07:16.800 --> 00:07:21.439
+be a macro package. Do you think about that vis your CL,
+
+00:07:21.440 --> 00:07:27.519
+Fennel, Elisp, porting of transducers? I think that
+
+00:07:27.520 --> 00:07:28.519
+there's definitely
+
+00:07:28.520 --> 00:07:36.519
+some Galaxy Brain Lisp author out there is probably smart
+
+00:07:36.520 --> 00:07:40.599
+enough to turn a bunch of this stuff into macros. I believe
+
+00:07:40.600 --> 00:07:47.119
+that's how the common Lisp library series works. It sees
+
+00:07:47.120 --> 00:07:52.079
+that you were calling map or whatever, and it actually knows
+
+00:07:52.080 --> 00:07:56.639
+that that's a special macro key. in order to be fast. I did not
+
+00:07:56.640 --> 00:08:01.839
+do that. The implementation as I have it is very simple and
+
+00:08:01.840 --> 00:08:05.759
+simplicity shouldn't be underestimated.
+
+00:08:05.760 --> 00:08:13.559
+I love it. What a nice succinct answer. Even I can manage to
+
+00:08:13.560 --> 00:08:16.578
+type that out as I scroll us to the next question.
+
+NOTE Q: Does t-buffer-read provide a lazy stream that's linewise, or charwise, or do something else entirely?
+
+00:08:16.579 --> 00:08:24.079
+So, does t-buffer-read provide a lazy stream
+
+00:08:24.080 --> 00:08:28.359
+that's line-wise or character-wise or do something else
+
+00:08:28.360 --> 00:08:29.018
+entirely?
+
+00:08:29.019 --> 00:08:31.587
+Okay, there are two functions. I showed
+
+00:08:31.588 --> 00:08:35.073
+t-buffer-read. There's also one called t-file-read,
+
+00:08:35.074 --> 00:08:38.682
+which does that. You actually have the buffer open,
+
+00:08:38.683 --> 00:08:40.239
+it's much more clever.
+
+00:08:40.240 --> 00:08:45.999
+t-buffer-read, I believe, is simpler. As long as you have an
+
+00:08:46.000 --> 00:08:52.079
+Emacs list, what is called the current buffer active. I'm
+
+00:08:52.080 --> 00:08:56.679
+fairly sure you're able to just call next-line on it. I don't
+
+00:08:56.680 --> 00:08:59.479
+believe that I'm doing anything fancy there, looking for
+
+00:08:59.480 --> 00:09:03.999
+line ends. I believe I'm just grabbing the next line and then
+
+00:09:04.000 --> 00:09:09.423
+processing that line-wise. Very good.
+
+NOTE Q: Can the Elisp library be combined with the stream.el API or seq in general?
+
+00:09:09.424 --> 00:09:17.303
+Can the Elisp library be combined with the stream.el API
+
+00:09:17.304 --> 00:09:22.830
+or seq in general? I would say that these libraries
+
+00:09:22.831 --> 00:09:27.596
+are completely orthogonal. You saw that everything
+
+00:09:27.597 --> 00:09:29.279
+was prefixed by t-.
+
+00:09:29.280 --> 00:09:36.879
+Basically, transducer is its own zone. However, one thing
+
+00:09:36.880 --> 00:09:40.239
+that I do in the common lisp, which is theoretically
+
+00:09:40.240 --> 00:09:44.359
+possible for the Emacs Lisp as well, is kind of like little
+
+00:09:44.360 --> 00:09:48.919
+shim libraries. So I provide, at least for Common Lisp, for a
+
+00:09:48.920 --> 00:09:51.799
+number of, you know, popular sort of third-party
+
+00:09:51.800 --> 00:09:55.239
+collection types, I provide an ability to use them as
+
+00:09:55.240 --> 00:09:59.559
+sources. Maybe that's what you mean. Like
+
+00:09:59.560 --> 00:10:04.439
+the built-in containers for Emacs Lisp are already
+
+00:10:04.440 --> 00:10:06.519
+supported. So, you know, a vector hash table and so on.
+
+00:10:06.520 --> 00:10:13.719
+make sense so i think what i heard there is yeah go ahead
+
+00:10:13.720 --> 00:10:17.879
+please sorry in terms of mixing like you know like for
+
+00:10:17.880 --> 00:10:22.599
+instance you know like seq-map used in transducers
+
+00:10:22.600 --> 00:10:28.119
+we'll put it that way
+
+00:10:28.120 --> 00:10:31.879
+i was just gonna say i think it um it it sounds like you're
+
+00:10:31.880 --> 00:10:37.199
+saying Yeah, probably they are actually. We don't know yet
+
+00:10:37.200 --> 00:10:41.239
+about any places where they don't play nicely together. So
+
+00:10:41.240 --> 00:10:45.399
+quite possibly so. We can use sequence and transducers
+
+00:10:45.400 --> 00:10:49.959
+together, for example. As a source potentially, yeah. It's
+
+00:10:49.960 --> 00:10:54.159
+very easy because that just uses defgeneric. As long as you
+
+00:10:54.160 --> 00:10:57.719
+have a new, like if you have a new collection type, as long as
+
+00:10:57.720 --> 00:11:01.519
+you implement a def method for it somewhere, it'll just
+
+00:11:01.520 --> 00:11:12.159
+magically work with this library. That's the magic of...
+
+00:11:12.160 --> 00:11:18.439
+Yeah, as an Emacs user enjoying, you know, sort of the
+
+00:11:18.440 --> 00:11:21.959
+renaissance of new features it's had, or sorry, Emacs ERC
+
+00:11:21.960 --> 00:11:27.799
+user for chat. I've seen a lot of awesome stuff get done in the
+
+00:11:27.800 --> 00:11:32.119
+last couple of years with generic set. JP never was working
+
+00:11:32.120 --> 00:11:36.679
+on that. And like, that's just making me my eyes pop and go,
+
+00:11:36.680 --> 00:11:39.279
+wow, that does make a whole lot of things simpler, doesn't
+
+00:11:39.280 --> 00:11:44.279
+it? I think we're a lot of us running into generics and how
+
+00:11:44.280 --> 00:11:47.542
+that solves problems in Emacs.
+
+NOTE Q: How does one debug a t-comp expression? Can you single step and see intermediate results of the different statements you declare?
+
+00:11:47.543 --> 00:11:50.279
+How does one debug a t-comp
+
+00:11:50.280 --> 00:11:55.119
+expression? Can you talk in terms of single step,
+
+00:11:55.120 --> 00:11:58.479
+step-by-step, intermediate results of the different
+
+00:11:58.480 --> 00:12:08.759
+statements you declare? Yes. So in Common Lisp, this is
+
+00:12:08.760 --> 00:12:12.919
+and sly stickers and things like that. In Emacs Lisp, it's a
+
+00:12:12.920 --> 00:12:19.559
+little bit, shall we say, more difficult. For step
+
+00:12:19.560 --> 00:12:20.479
+debugging,
+
+00:12:20.480 --> 00:12:25.679
+so what comp does is comp internally, it should be a macro,
+
+00:12:25.680 --> 00:12:28.839
+but currently it's not, although there's work to improve
+
+00:12:28.840 --> 00:12:33.559
+that. It's doing an internal reduce and it's turning into
+
+00:12:33.560 --> 00:12:37.479
+one giant kind of composed lambda inside. So I don't know if
+
+00:12:37.480 --> 00:12:42.999
+step debugging would work there. However, we do have one
+
+00:12:43.000 --> 00:12:47.439
+function called log, which lets you inspect intermediate
+
+00:12:47.440 --> 00:12:50.759
+results. So you could technically use that to inject
+
+00:12:50.760 --> 00:12:54.279
+yourself somewhere into the transduction chain and, you
+
+00:12:54.280 --> 00:12:57.239
+know, halt or, you know, inspect the current value, et
+
+00:12:57.240 --> 00:13:01.119
+cetera. So you get a bunch of questions lined up. I think
+
+00:13:01.120 --> 00:13:04.199
+we're coming up, uh, within our last five minutes, uh,
+
+00:13:04.200 --> 00:13:07.919
+before some declared, uh, reset time that we have
+
+00:13:07.920 --> 00:13:11.919
+internally to just roll our closing credits, so to speak.
+
+00:13:11.920 --> 00:13:14.839
+Um, not that I would want to cut the question and answer
+
+00:13:14.840 --> 00:13:18.399
+short, but I might have to step away personally. But, um, as
+
+00:13:18.400 --> 00:13:21.519
+we discussed before, you can just kind of run the QA, however
+
+00:13:21.520 --> 00:13:24.879
+you want here. Um, or, or take questions offline if you'd
+
+00:13:24.880 --> 00:13:27.999
+like to answer them off the pad. And I just want to say one more
+
+00:13:28.000 --> 00:13:30.959
+time. Kitt said it managed later. Thanks again for your talk
+
+00:13:30.960 --> 00:13:35.759
+for dedicating the time to this live QA. And I think we can see
+
+00:13:35.760 --> 00:13:40.279
+by the many questions that are here. So I'll try to kind of
+
+00:13:40.280 --> 00:13:42.959
+flip us through as many of them as I can with our last couple of
+
+00:13:42.960 --> 00:13:48.399
+minutes, if that sounds good. Alternately, this might be a
+
+00:13:48.400 --> 00:13:52.079
+good time if you have kind of wrap it up, final thoughts, as
+
+00:13:52.080 --> 00:13:58.399
+Leo Sopanda saying. By all means, have at. Sure, thanks a
+
+00:13:58.400 --> 00:14:01.639
+lot. I'd say that if you are still curious, check out the
+
+00:14:01.640 --> 00:14:05.159
+read-me's because those have a lot of information,
+
+00:14:05.160 --> 00:14:09.519
+including a full description of the API and everything
+
+00:14:09.520 --> 00:14:10.719
+that's available.
+
+00:14:10.720 --> 00:14:16.599
+Otherwise, just give them a shot. Using these things is the
+
+00:14:16.600 --> 00:14:21.639
+best way to learn them, of course. I use them everywhere,
+
+00:14:21.640 --> 00:14:24.719
+basically, all across my Emacs list and all across my common
+
+00:14:24.720 --> 00:14:29.839
+list now. They get a lot of mileage. All right. You're
+
+00:14:29.840 --> 00:14:33.639
+speaking our language now. As Emacs users, all our ears poke
+
+00:14:33.640 --> 00:14:36.039
+up when you say, I'm getting a lot of mileage. I'm using it
+
+00:14:36.040 --> 00:14:39.879
+across everything. Every Emacs user has a story that
+
+00:14:39.880 --> 00:14:42.494
+harmonizes with that, I think.
+
+NOTE Q: Is there a path for transducers to enable elisp processing of otherwise overly large datasets as if just normal Emacs \"buffers\" (i.e. just pulling one thing at a time so essentially stream-like under the hood but buffer-like in interface), with none of the usual perf issues with a traditional buffer structure?
+
+00:14:42.495 --> 00:14:44.519
+So our next question, is
+
+00:14:44.520 --> 00:14:48.599
+there a path for transducers to enable Elisp processing or
+
+00:14:48.600 --> 00:14:53.999
+otherwise overly large data sets as if just normal Emacs
+
+00:14:54.000 --> 00:14:56.959
+buffers, i.e. just pulling one thing at a time. So
+
+00:14:56.960 --> 00:15:00.719
+essentially stream like under the hood, but buffer like an
+
+00:15:00.720 --> 00:15:03.519
+interface. I think that makes sense to me. with none of the
+
+00:15:03.520 --> 00:15:07.799
+usual performance issues, like as if, you know, the history
+
+00:15:07.800 --> 00:15:11.399
+with long files is what that brings to mind, I guess. Yes, so
+
+00:15:11.400 --> 00:15:15.799
+as you saw before, the withBufferRead sort of stream
+
+00:15:15.800 --> 00:15:19.879
+function does have to have the actual buffer in memory, and
+
+00:15:19.880 --> 00:15:22.679
+then you can go really fast. But there's another one with
+
+00:15:22.680 --> 00:15:26.839
+file read. Now, again, I haven't tried to optimize that yet.
+
+00:15:26.840 --> 00:15:30.119
+But in theory, it is able to read right from the underlying
+
+00:15:30.120 --> 00:15:32.839
+file without having to open it as a buffer first.
+
+00:15:32.840 --> 00:15:39.199
+Awesome. Ari, the performance issues mentioned, and that
+
+00:15:39.200 --> 00:15:43.479
+popped up recently in the list and forums, to what extent
+
+00:15:43.480 --> 00:15:46.959
+does tail call optimization and other mechanisms like
+
+00:15:46.960 --> 00:15:50.159
+inlining, garbage collection friendliness, and so on,
+
+00:15:50.160 --> 00:15:55.159
+could these alleviate issues, enable their use at little to
+
+00:15:55.160 --> 00:15:58.439
+no extra costs? I feel like we're leading the witness here,
+
+00:15:58.440 --> 00:16:01.279
+but I'm sure you see where we're going. Yeah, no problem. So
+
+00:16:01.280 --> 00:16:03.799
+in terms of tail optimization, that's already happening
+
+00:16:03.800 --> 00:16:09.199
+because the internal loop mechanism is using CL labels. And
+
+00:16:09.200 --> 00:16:12.199
+in Emacs Lisp, CL labels is just a macro that is like
+
+00:16:12.200 --> 00:16:16.079
+extremely tail recursive. So that's very, very fast. It's
+
+00:16:16.080 --> 00:16:19.039
+not tail recursive, but it's using like goto. So it's
+
+00:16:19.040 --> 00:16:22.519
+extremely, extremely fast, like the raw looping of it. So,
+
+00:16:22.520 --> 00:16:24.359
+okay, well then where does the slowness come from? It's
+
+00:16:24.360 --> 00:16:26.439
+probably coming from those lambdas and it's probably
+
+00:16:26.440 --> 00:16:32.399
+coming from, uh, like extra consing, extra allocation
+
+00:16:32.400 --> 00:16:35.999
+somewhere, which is, um, sort of what you were, what you're
+
+00:16:36.000 --> 00:16:38.519
+referring to with the GC friendliness. So perhaps there's
+
+00:16:38.520 --> 00:16:45.199
+some, um, um, yeah, some, like some fusion that I can do to
+
+00:16:45.200 --> 00:16:51.199
+speed it up. Yeah, that just sounds fascinating endlessly.
+
+NOTE Q: Is there an option to read a csv/json and produce an alist or plist instead of a hash table for an entry?
+
+00:16:51.200 --> 00:16:55.559
+Are there options to like read from a CSV, JSON, produce an
+
+00:16:55.560 --> 00:17:01.679
+alist or plist instead of hash table? Absolutely.
+
+00:17:01.680 --> 00:17:06.239
+Yes, I need to double check that, but we can read both CSV and
+
+00:17:06.240 --> 00:17:10.359
+JSON, and you should be able to just turn on the plist option.
+
+00:17:10.360 --> 00:17:14.159
+I will double check, but there's fairly free conversion
+
+00:17:14.160 --> 00:17:18.039
+between those three types because hash table is not always
+
+00:17:18.040 --> 00:17:22.039
+what you want. And actually, I suspect that slowness that we
+
+00:17:22.040 --> 00:17:24.559
+saw in the demo before was because it was allocating hash
+
+00:17:24.560 --> 00:17:29.239
+tables for every, like, all of the 50,000 lines. And had it
+
+00:17:29.240 --> 00:17:32.599
+been a plist, it would have been faster. Interesting, so
+
+00:17:32.600 --> 00:17:35.399
+maybe there's opportunities even if you end up with hash
+
+00:17:35.400 --> 00:17:38.799
+lists, but then they're shared strategically and you pay
+
+00:17:38.800 --> 00:17:42.039
+the cost of a little extra layer in there that buckets them
+
+00:17:42.040 --> 00:17:46.439
+together the way that we might group files by the first four
+
+00:17:46.440 --> 00:17:50.519
+characters in the file name once we've got a million files.
+
+NOTE Q: Is the common lisp version ready for 'production' use? Is it complete enough and the API stable enough?
+
+00:17:50.520 --> 00:17:54.479
+Anyway, is the Common Lisp version ready for production
+
+00:17:54.480 --> 00:17:59.959
+use? Do you want to comment on API stability? I use it all the
+
+00:17:59.960 --> 00:18:04.159
+time. I'm writing a game in Common Lisp right now, and I'm
+
+00:18:04.160 --> 00:18:08.559
+using transducers everywhere in there, and it doesn't even
+
+00:18:08.560 --> 00:18:11.119
+make a dent in the frame rate, and I'm using them
+
+00:18:11.120 --> 00:18:15.359
+extensively. Okay, well, I'll just read from chat. Thanks
+
+00:18:15.360 --> 00:18:17.476
+so much for the answers.
+
+NOTE Q: Do we need a pre-written \"t-\" version for every already existing reducing function like + or is there a function to construct them from already defined reducer 2-arg functions?
+
+00:18:17.477 --> 00:18:20.439
+Do we need a pre-written or t-minus
+
+00:18:20.440 --> 00:18:24.959
+version for every already existing reducing function,
+
+00:18:24.960 --> 00:18:30.239
+plus, as an example? Or is there a function that constructs,
+
+00:18:30.240 --> 00:18:33.559
+in my, I'm going to add the word, auto-visualifies them
+
+00:18:33.560 --> 00:18:37.319
+already, auto-defines or something, or just generically
+
+00:18:37.320 --> 00:18:42.239
+wraps function calls some way? already defined. This is
+
+00:18:42.240 --> 00:18:49.399
+basically fold. Some built-in functions like plus already
+
+00:18:49.400 --> 00:18:52.599
+function like reducers. It's a coincidence that they do
+
+00:18:52.600 --> 00:18:56.799
+that. But there's an example in the README. Max is one that
+
+00:18:56.800 --> 00:19:00.559
+does not act like that. For instance, maybe I could screen
+
+00:19:00.560 --> 00:19:06.479
+share later, but if you just type in plus one, If you call plus
+
+00:19:06.480 --> 00:19:10.519
+one in Emacs or Common Lisp, you get back one. It actually
+
+00:19:10.520 --> 00:19:15.119
+only needs one argument. If you only type plus, it actually
+
+00:19:15.120 --> 00:19:20.839
+gives you zero. Plus and multiple satisfy the API of
+
+00:19:20.840 --> 00:19:24.759
+reducers. But if you have one that doesn't, like the max
+
+00:19:24.760 --> 00:19:28.759
+function, and similarly, just type in plus as a function
+
+00:19:28.760 --> 00:19:32.359
+call, just plus with nothing else, and you'll see. No, as a
+
+00:19:32.360 --> 00:19:37.199
+function. zero will come out. This basically means it
+
+00:19:37.200 --> 00:19:43.159
+satisfies the reducer API. But a function like max does not.
+
+00:19:43.160 --> 00:19:48.399
+If you just type in max and then one, it won't work. Pardon me,
+
+00:19:48.400 --> 00:19:54.239
+it did. But if you type in max with nothing else, it wouldn't
+
+00:19:54.240 --> 00:19:55.239
+work.
+
+00:19:55.240 --> 00:19:58.599
+Hence, we have to wrap it in something like fold. I would say
+
+00:19:58.600 --> 00:20:01.919
+go look at the fold function. Right, which that I won't do.
+
+00:20:01.920 --> 00:20:04.839
+I'm not that well enough prepped. Darn it. Leo would have
+
+00:20:04.840 --> 00:20:08.399
+been here, but oh, well, you got me. Yeah, no problem. But
+
+00:20:08.400 --> 00:20:16.879
+fold is sort of the ultimate reducer function. Great. So is
+
+00:20:16.880 --> 00:20:26.319
+there, where was I? Here we go. We're way past this, right? So
+
+NOTE Q: Is the compelling argument for transducers is that it's a better abstraction?
+
+00:20:26.320 --> 00:20:34.279
+is the compiling argument for transducers that it's a
+
+00:20:34.280 --> 00:20:38.879
+better abstraction? It seems like there are concerns,
+
+00:20:38.880 --> 00:20:42.399
+objections, while problematically valid focused on
+
+00:20:42.400 --> 00:20:45.679
+implementation. Can this abstraction allow for advances
+
+00:20:45.680 --> 00:20:50.559
+in implementation? Yes, what I've basically done is mostly
+
+00:20:50.560 --> 00:20:55.999
+followed the pattern of usage that exists in Clojure and in
+
+00:20:56.000 --> 00:21:01.159
+Scheme's SERP 171. In theory, the service level API is the
+
+00:21:01.160 --> 00:21:04.999
+same no matter where you're using this, and that's the idea.
+
+00:21:05.000 --> 00:21:08.039
+If you learn them in one list, you should be able to use them
+
+00:21:08.040 --> 00:21:12.879
+everywhere. Then what it's actually doing under the hood is
+
+00:21:12.880 --> 00:21:18.359
+free for us to change around. My implementations are mostly
+
+00:21:18.360 --> 00:21:23.679
+based on the scheme with a few alterations here and there.
+
+00:21:23.680 --> 00:21:27.079
+And in the Common Lisp case, like adding some Common Lisp
+
+00:21:27.080 --> 00:21:27.959
+isms
+
+00:21:27.960 --> 00:21:34.759
+to improve usage like UX a little bit. But overall, we are
+
+00:21:34.760 --> 00:21:38.959
+free to do whatever we want internally to speed up
+
+00:21:38.960 --> 00:21:42.439
+performance. I just haven't done that work. Awesome.
+
+00:21:42.440 --> 00:21:47.239
+Awesome. So here's where I have to, where we're getting the
+
+00:21:47.240 --> 00:21:50.079
+hook. We've just been pulled off the stream. The viewers
+
+00:21:50.080 --> 00:21:54.079
+just saw the crawl by as it sent us over to the other pad where I
+
+00:21:54.080 --> 00:21:57.919
+get to jump on and get involved with that now. But I can't
+
+00:21:57.920 --> 00:22:00.359
+thank you enough, Colin. Would you like me to stop the
+
+00:22:00.360 --> 00:22:03.799
+recording here? Any other comments you'd like to make? Uh,
+
+00:22:03.800 --> 00:22:06.439
+yeah, sure. Like, I mean, I'll stick around for any more live
+
+00:22:06.440 --> 00:22:10.639
+questions. I'm looking at both IRC and, and, um, uh, big blue
+
+00:22:10.640 --> 00:22:13.239
+button here. So if people have more questions, I'll hang
+
+00:22:13.240 --> 00:22:15.959
+around for a bit. I'm going to leave the channel open. I see
+
+00:22:15.960 --> 00:22:17.839
+you do have a few people in here, so I'm just going to go ahead
+
+00:22:17.840 --> 00:22:20.839
+and leave the recording. We can always trim it. Um, trim it
+
+00:22:20.840 --> 00:22:24.279
+up. If you, uh, let us know, Hey, the last 10 minutes weren't
+
+00:22:24.280 --> 00:22:26.999
+anything, you know, or whatever. No, no pressure, no
+
+00:22:27.000 --> 00:22:29.839
+worries, no mistakes. Thank you. Really appreciate you.
+
+00:22:29.840 --> 00:22:31.959
+Yep. Thanks a lot.
+
+NOTE Q: Question about how the transducers video was made? Did you use Reveal.js? Do you have a pointer to the html hosted presentation? How did you generate the content for Reveal?
+
+00:22:31.960 --> 00:22:48.399
+OK, does anyone else have some questions? I see Mohsen in the
+
+00:22:48.400 --> 00:22:52.839
+BigBlueButton chat is asking how I made the video. So the
+
+00:22:52.840 --> 00:22:59.079
+presentation itself was done with RevealJS from Org Mode.
+
+00:22:59.080 --> 00:23:03.639
+So as you saw, I had a raw Org Mode buffer, which was
+
+00:23:03.640 --> 00:23:09.319
+which was the presentation itself, which I then just
+
+00:23:09.320 --> 00:23:11.759
+exported with a few certain settings, a few
+
+00:23:11.760 --> 00:23:15.919
+customizations. And then for screen recording, I used OBS,
+
+00:23:15.920 --> 00:23:19.719
+which worked flawlessly on Arch Linux. I used Sway,
+
+00:23:19.720 --> 00:23:23.159
+Wayland, and all of that. So all of that just worked, which
+
+00:23:23.160 --> 00:23:27.999
+was very impressive. Where do the HTML host the
+
+00:23:28.000 --> 00:23:51.959
+presentation? I don't have that presentation hosted
+
+00:23:51.960 --> 00:23:52.599
+anywhere.
+
+00:23:52.600 --> 00:23:59.119
+I'll look at the.
+
+00:23:59.120 --> 00:24:00.079
+I don't see that.
+
+00:24:00.080 --> 00:24:08.159
+Here it is. So we've got the file here as well.
+
+00:24:08.160 --> 00:24:10.999
+Looks like that's it for questions, basically.
+
+00:24:11.000 --> 00:24:14.919
+Yep, and it looks like everyone's moved on for now. Let's
+
+00:24:14.920 --> 00:24:20.159
+see. I mean, it would be so this is answering lounge 81 on IRC.
+
+NOTE Q: From your investigations and tests so far, do you think there would be the necessity of transducers to eventually go down into the C level code for things like using them to solve "infinitely-big" buffer-like interfaces and such?
+
+00:24:20.160 --> 00:24:24.599
+Yeah, like, if we really wanted to go that hardcore, maybe
+
+00:24:24.600 --> 00:24:29.439
+there's some like C level stuff that we could
+
+00:24:29.440 --> 00:24:36.119
+you know, significant demand for such a thing. You know, so
+
+00:24:36.120 --> 00:24:39.239
+far there hasn't been such demand, but maybe there will be in
+
+00:24:39.240 --> 00:24:42.519
+the future. Yeah, perhaps there's some custom stuff we
+
+00:24:42.520 --> 00:24:43.039
+could do.
+
+00:24:43.040 --> 00:24:48.599
+And otherwise, magic one.
+
+00:24:48.600 --> 00:25:00.599
+Well, it looks like some people are quite happy with this.
+
+00:25:00.600 --> 00:25:14.959
+All right. That's about what I've seen. So why don't we end it
+
+00:25:14.960 --> 00:25:19.839
+here? I think I can control the recording from my end. If I
+
+00:25:19.840 --> 00:25:23.800
+pause it, will that work? All right. Thank you, everyone.
diff --git a/2024/draft-schedule.md b/2024/draft-schedule.md
index aa7f641b..8d74af98 100644
--- a/2024/draft-schedule.md
+++ b/2024/draft-schedule.md
@@ -11,18 +11,18 @@ Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">S
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-project""" startutc="""2024-12-07T14:40:00+0000""" endutc="""2024-12-07T15:00:00+0000""" start="""9:40""" end="""10:00""" title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note="""captioned, video posted, Q&A posted, video: 21:38, answers: 1:02:41"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-gypsum""" startutc="""2024-12-07T15:00:00+0000""" endutc="""2024-12-07T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note="""captioned, video posted, Q&A posted, video: 24:36, answers: 23:38"""]]
[[!template id=sched time="""40""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-update.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-org-update""" startutc="""2024-12-07T15:20:00+0000""" endutc="""2024-12-07T16:00:00+0000""" start="""10:20""" end="""11:00""" title="""The Future of Org""" url="""/2024/talks/org-update""" speakers="""Ihor Radchenko""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-update""" note="""captioned, video posted, Q&A posted, video: 39:35, answers: 30:39"""]]
-[[!template id=sched time="""20""" q-and-a="""none""" pad="""https://pad.emacsconf.org/2024-rust""" startutc="""2024-12-07T15:40:00+0000""" endutc="""2024-12-07T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note="""captioned, video posted, Q&A posted, video: 20:06, answers: 19:15"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-rust""" startutc="""2024-12-07T15:40:00+0000""" endutc="""2024-12-07T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note="""captioned, video posted, Q&A posted, video: 20:06, answers: 19:15"""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-color.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-color""" startutc="""2024-12-07T16:20:00+0000""" endutc="""2024-12-07T16:30:00+0000""" start="""11:20""" end="""11:30""" title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota Sawada""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note="""captioned, video posted, Q&A posted, video: 11:48, answers: 14:31"""]]
[[!template id=sched time="""25""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-p-search""" startutc="""2024-12-07T16:20:00+0000""" endutc="""2024-12-07T16:45:00+0000""" start="""11:20""" end="""11:45""" title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""p-search""" note="""captioned, video posted, Q&A posted, video: 22:42"""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-julia""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""julia""" note="""captioned, video posted, Q&A posted, video: 09:17"""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: MetroWind</a>""" pad="""https://pad.emacsconf.org/2024-theme""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note="""captioned, video posted, Q&A posted, video: 11:28, answers: 09:51"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-theme""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note="""captioned, video posted, Q&A posted, video: 11:28, answers: 09:51"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-guile.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-guile""" startutc="""2024-12-07T18:25:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:25""" end="""1:45""" title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""guile""" note="""captioned, video posted, Q&A posted, video: 15:57"""]]
[[!template id=sched time="""15""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" pad="""https://pad.emacsconf.org/2024-water""" startutc="""2024-12-07T18:30:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:30""" end="""1:45""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note="""captioned, video posted, video: 13:50"""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-secrets""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:05:00+0000""" start="""1:55""" end="""2:05""" title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""secrets""" note="""video posted, video: 14:57"""]]
[[!template id=sched time="""40""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" pad="""https://pad.emacsconf.org/2024-shell""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:35:00+0000""" start="""1:55""" end="""2:35""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note="""captioned, video posted, video: 37:13"""]]
[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-mcclim""" startutc="""2024-12-07T19:25:00+0000""" endutc="""2024-12-07T20:25:00+0000""" start="""2:25""" end="""3:25""" title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""mcclim""" note="""captioned, video posted, Q&A posted, video: 34:29"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-casual""" startutc="""2024-12-07T19:45:00+0000""" endutc="""2024-12-07T20:05:00+0000""" start="""2:45""" end="""3:05""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note="""captioned, video posted, Q&A posted, video: 18:24, answers: 22:12"""]]
-[[!template id=sched time="""20""" q-and-a="""none""" pad="""https://pad.emacsconf.org/2024-hyperdrive""" startutc="""2024-12-07T20:25:00+0000""" endutc="""2024-12-07T20:45:00+0000""" start="""3:25""" end="""3:45""" title="""New in hyperdrive.el: quick install, peer graph, transclusion!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note="""captioned, video posted, Q&A posted, video: 20:25, answers: 22:34"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-hyperdrive""" startutc="""2024-12-07T20:25:00+0000""" endutc="""2024-12-07T20:45:00+0000""" start="""3:25""" end="""3:45""" title="""New in hyperdrive.el: quick install, peer graph, transclusion!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note="""captioned, video posted, Q&A posted, video: 20:25, answers: 22:34"""]]
[[!template id=sched time="""40""" q-and-a="""<a href="https://pad.emacsconf.org/2024-maxima">Etherpad</a>""" pad="""https://pad.emacsconf.org/2024-maxima""" startutc="""2024-12-07T20:45:00+0000""" endutc="""2024-12-07T21:05:00+0000""" start="""3:45""" end="""4:05""" title="""Emacs, eev, and Maxima - now!""" url="""/2024/talks/maxima""" speakers="""Eduardo Ochs""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""maxima""" note="""captioned, video posted, Q&A posted, video: 30:34"""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-writing.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-writing""" startutc="""2024-12-07T21:05:00+0000""" endutc="""2024-12-07T21:15:00+0000""" start="""4:05""" end="""4:15""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note="""captioned, video posted, video: 13:31"""]]
[[!template id=sched time="""25""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-emacs30.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-emacs30""" startutc="""2024-12-07T21:25:00+0000""" endutc="""2024-12-07T21:50:00+0000""" start="""4:25""" end="""4:50""" title="""Emacs 30 Highlights""" url="""/2024/talks/emacs30""" speakers="""Philip Kaludercic""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""emacs30""" note="""captioned, video posted, Q&A posted, video: 24:55, answers: 23:36"""]]
@@ -34,7 +34,7 @@ Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">S
<div class="schedule" data-start="2024-12-08T14:00:00+0000" data-end="2024-12-08T22:30:00+0000" data-tracks="General,Development">
[[!template id=sched status="""done""" time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sun-open">Etherpad</a>""" pad="""https://pad.emacsconf.org/2024-sun-open""" startutc="""2024-12-08T14:00:00+0000""" endutc="""2024-12-08T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2024/talks/sun-open""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sun-open""" note="""video posted, video: 04:37"""]]
-[[!template id=sched time="""10""" q-and-a="""none""" pad="""https://pad.emacsconf.org/2024-links""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note="""captioned, video posted, video: 11:21"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-links">Etherpad</a>""" pad="""https://pad.emacsconf.org/2024-links""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note="""captioned, video posted, video: 11:21"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>""" note="""Development-focused; on the general track for scheduling reasons""" pad="""https://pad.emacsconf.org/2024-regex""" startutc="""2024-12-08T14:30:00+0000""" endutc="""2024-12-08T14:50:00+0000""" start="""9:30""" end="""9:50""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""regex""" note="""captioned, video posted, video: 24:56"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-learning.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-learning""" startutc="""2024-12-08T15:00:00+0000""" endutc="""2024-12-08T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note="""captioned, video posted, Q&A posted, video: 19:39, answers: 24:41"""]]
[[!template id=sched time="""45""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>""" pad="""https://pad.emacsconf.org/2024-blee""" startutc="""2024-12-08T15:30:00+0000""" endutc="""2024-12-08T16:15:00+0000""" start="""10:30""" end="""11:15""" title="""About Blee: enveloping our own autonomy directed digital ecosystem with Emacs""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note="""captioned, video posted, Q&A posted, video: 45:30, answers: 18:11"""]]
diff --git a/2024/info/guile-before.md b/2024/info/guile-before.md
index 18476032..15e63ee8 100644
--- a/2024/info/guile-before.md
+++ b/2024/info/guile-before.md
@@ -23,6 +23,6 @@ Status: TO_CAPTION_QA
12:30.000 Q: Do you think guile-emacs will be able to use or (collaborate with) some of the other awesome projects around Emacs Lisp?
15:04.200 Q: SBCL, ...You mentioned Robert Strandh's SICL along with SBCL---does that work help with the implementation of CL in Guile?
-"""]]<div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-guile">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div>
+"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="guile-qanda-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-guile">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/hyperdrive-after.md b/2024/info/hyperdrive-after.md
index d7cd9485..6727bb6e 100644
--- a/2024/info/hyperdrive-after.md
+++ b/2024/info/hyperdrive-after.md
@@ -288,281 +288,219 @@
Captioner: sachac
-<div class="transcript transcript-qanda"><a name="hyperdrive-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+<div class="transcript transcript-qanda"><a name="hyperdrive-qanda-transcript"></a><h1>Q&A transcript</h1>
-[[!template text="""Thank you for the call. And we can hear you as well. Great. If""" start="00:00:00.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you want to put on your webcam as well, that'd be good.""" start="00:00:02.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Hello. Okay, great. We're back. Sorry for having to call""" start="00:00:10.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you, but just I needed to catch your attention somehow. No,""" start="00:00:13.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""it's great. It's perfect. So how are you doing? I'm doing""" start="00:00:16.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""very well. How are you? I'm doing good as well. I'm starting""" start="00:00:19.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to get tired because it's about to be 10 p.m for me and the""" start="00:00:23.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""energy cost of hosting is starting to take a toll on me but I'm""" start="00:00:29.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""fully there presently and I'm really happy to be here to""" start="00:00:33.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""field you some questions although I don't see any just yet.""" start="00:00:36.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Let me just get how long we have until we need to go to the next""" start="00:00:40.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""talk. We have until 4.05 which leaves us about 15 minutes""" start="00:00:43.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Joseph, I'll first start with a question. Well, first, I'll""" start="00:00:48.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""obviously thank you for your presentation, which I""" start="00:00:52.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""personally found to be very didactic, because I know that""" start="00:00:54.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Prat already presented Hyperdrive last year, and you are""" start="00:00:59.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""presenting this year with something a little more visual,""" start="00:01:04.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""and I found it to be very didactic. So, first, thank you for""" start="00:01:07.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""all this. And I wanted to give you the opportunity as well""" start="00:01:10.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""if... Oh, let me just make sure. Do we have audio on? Let me""" start="00:01:14.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""check. Let me just check something. Let me just make sure""" start="00:01:19.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that we have audio on. I have a few things I wanted to mention""" start="00:01:23.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""first before any questions come in. One was that...""" start="00:01:26.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Can you hear me? Let me just ask the little helps in the""" start="00:01:32.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""background. Sure.""" start="00:01:37.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Not sure if my audio is working or not.""" start="00:01:42.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""have someone to verify for us.""" start="00:01:49.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Leo, is my audio working? Yeah, I can hear you just fine and I""" start="00:01:54.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""think we fixed it now. One thing I wanted to mention was that""" start="00:02:00.000" video="qanda-hyperdrive" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""New version of hyperdrive.el""" start="00:02:05.120" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""as with last year, I just released a new version of""" start="00:02:05.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""hyperdrive.el and it depends on the latest release of""" start="00:02:11.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""transient.el and so if you are going to install this""" start="00:02:16.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""package, make sure that you restart your Emacs after you""" start="00:02:21.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""install it, if you aren't already up to date with transient,""" start="00:02:27.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""which was released yesterday. Otherwise, since it, this""" start="00:02:32.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""latest version of transient.el updates the transient""" start="00:02:37.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""prefix EIEIO class, and it won't work unless you restart""" start="00:02:43.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Emacs. Okay, well, good to know. I think that's a small price""" start="00:02:48.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to pay to be on a bleedingest of bleeding edges. All right, I""" start="00:02:53.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""see there's a question here. Let me see if I can read it. Yeah,""" start="00:02:59.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""sure. Do you want me to field it to you or do you want to read it?""" start="00:03:02.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Oh, sure. Go ahead. I'd love to hear you read it. Sure.""" start="00:03:03.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Thank you. So first question. Hi there.""" start="00:03:06.628" video="qanda-hyperdrive" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""New version of hyperdrive.el""" start="00:00:00.000" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""One thing I wanted to mention was that""" start="00:00:00.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""as with last year, I just released a new version of""" start="00:00:02.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive.el and it depends on the latest release of""" start="00:00:08.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""transient.el and so if you are going to install this""" start="00:00:13.477" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""package, make sure that you restart your Emacs after you""" start="00:00:19.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""install it, if you aren't already up to date with transient,""" start="00:00:25.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""which was released yesterday. Otherwise, since it, this""" start="00:00:29.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""latest version of transient.el updates the transient""" start="00:00:35.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""prefix EIEIO class, and it won't work unless you restart""" start="00:00:40.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Emacs. Okay, well, good to know. I think that's a small price""" start="00:00:46.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to pay to be on a bleedingest of bleeding edges. All right, I""" start="00:00:50.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""see there's a question here. Let me see if I can read it. Yeah,""" start="00:00:57.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""sure. Do you want me to field it to you or do you want to read it?""" start="00:00:59.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Oh, sure. Go ahead. I'd love to hear you read it. Sure.""" start="00:01:01.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Thank you. So first question. Hi there.""" start="00:01:04.105" video="qanda-hyperdrive" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?""" start="00:03:09.210" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Thank you for the talk.""" start="00:03:09.210" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""I enjoyed watching it. I tried this tool last year and it""" start="00:03:10.311" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""seemed to work well, but I don't know anyone who actually""" start="00:03:13.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""uses it. Network effects are tricky. Do you know of any""" start="00:03:15.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""public shares people can join to try to try this tool out""" start="00:03:19.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""properly? Thank you. Network effects are indeed tricky.""" start="00:03:22.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Yeah. That's kind of part of the purpose of the peer graph is""" start="00:03:26.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to make it easier to discover peers in a way that's more, uh,""" start="00:03:32.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""more reliable and consistent than just somebody puts a""" start="00:03:37.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""public key on Reddit and then it's lost unless somebody""" start="00:03:40.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""finds it. Um, but the, the public keys that I know of are,""" start="00:03:44.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""there's the public key for the Ushin hyperdrive, which is""" start="00:03:52.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""basically just the same content that's on the website""" start="00:03:55.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""mirrored to a hyperdrive. Um, and then there are a few other""" start="00:03:58.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""ones. There's like, uh, hypha.coop has some WebZine""" start="00:04:02.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""content accessible via HyperDrive and also via IPFS. And""" start="00:04:09.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""then mauvesignweaver has a blog that's also available on""" start="00:04:16.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Hyper. So that's blog.mauve.moe .""" start="00:04:22.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""But besides that, that's kind of the purpose of this""" start="00:04:25.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""peer graph thing is to make it easier to discover other""" start="00:04:30.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""peers. Yeah, to make it also very visual in a way, because,""" start="00:04:34.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you know, I personally, it's funny because it reminded me of""" start="00:04:39.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""talks that I did in the past about the trust system for PGP""" start="00:04:42.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""keychains, because at the end of the day, you know, this""" start="00:04:47.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""trust system, whether you trust someone absolutely or""" start="00:04:50.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""relatively, the blocking system, it feels very related.""" start="00:04:53.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Any kind of a chain of trust like this, feels very""" start="00:04:56.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""reminiscent, obviously, but it felt very nice that for you,""" start="00:04:59.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you had a dynamic display of this web of trust. Whereas for""" start="00:05:02.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""me, I had to make fancy diagram in ticks, in latex, just to""" start="00:05:07.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""make sure that people understood what was actually going""" start="00:05:11.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""on. Yeah, one thing I want to point out is just the difference""" start="00:05:17.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""in utility for something like the PGP web of trust versus""" start="00:05:24.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""this kind of network of peers is, if I understand right, the""" start="00:05:28.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""main purpose of web of trust is to identify that a certain""" start="00:05:32.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""public key is actually created by the person that they claim""" start="00:05:37.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to be. So you have a way of identifying that a key actually""" start="00:05:45.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""matches like a government identity. Whereas this kind of""" start="00:05:48.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""network of peers has nothing to do with authenticating a key""" start="00:05:52.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""or associating a key with an identity, like a government""" start="00:05:55.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""identity. The purpose is exclusively just to get more peers""" start="00:06:00.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to be able to discover more peers who have things that are""" start="00:06:05.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""worth reading.""" start="00:06:09.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Yeah, it's a different take on a concept, but even though the""" start="00:06:10.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""concept might be the same, I find there's a wealth of things""" start="00:06:16.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that can be done thanks to this, because as you said, you""" start="00:06:21.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""trust someone to send you a file that is trustworthy. Well,""" start="00:06:24.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""with PGP, it's mostly about communication, but about file""" start="00:06:27.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""sharing, it just opens up completely new avenues. Yeah. Do""" start="00:06:30.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you have anything else to add? And about that, I think one of""" start="00:06:35.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""the barriers to the PGP web of trust is that it required""" start="00:06:43.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""getting together to have key parties to meet people and""" start="00:06:48.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""verify identities. Whereas with this kind of thing,""" start="00:06:51.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""there's no need to do that because so long as your content is""" start="00:06:54.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""interesting, it doesn't matter that you're not who you""" start="00:06:56.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""claim to be or that you don't even claim to be anybody. Yeah, I""" start="00:07:00.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""mean, again, as you mentioned, it's not about identifying""" start="00:07:03.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""people, it's just about identifying value, in a way, in the""" start="00:07:07.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""content that people share. It has nothing to do with""" start="00:07:10.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""verifying their actual identity. But again, it's the same""" start="00:07:13.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""technology, it's the same understanding, but for""" start="00:07:16.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""different applications, which is lovely because""" start="00:07:19.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""programming is fractals all over. The same problems repeat""" start="00:07:21.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""themselves and the same solutions show up for widely""" start="00:07:24.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""different scenarios, which is always good. Yeah. Anything""" start="00:07:27.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""else? One more thing. Yeah. One more thing is that I wanted to""" start="00:07:29.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""give some kudos to, um, some of the other projects that""" start="00:07:35.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""inspired the pure graph work. One of them is Adam Porter's or""" start="00:07:39.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""graph view, um, which is a, um, a tool for visualizing""" start="00:07:45.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""different nodes in an org file and how they link to one""" start="00:07:52.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""another. Um, he did. the pioneering work to figure out how to""" start="00:07:57.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""render interactive graphs with GraphViz. And so we worked""" start="00:08:04.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""together on it and kind of hacked down the last parts that""" start="00:08:09.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""weren't working correctly. And so this is inspired a lot.""" start="00:08:15.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""The user interface is inspired a lot by Adam's work. And then""" start="00:08:19.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""also the idea of having people that you mark as blockers and""" start="00:08:21.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""block is inspired by another project called TrustNet by""" start="00:08:28.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Alex Cobbly. I can type in the link there. Alex, how do you""" start="00:08:33.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""spell it? Cobbly? Yeah, I'll type it in here. Thank you. And I""" start="00:08:39.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""think the link is cba.org slash TrustNet. I think that is it.""" start="00:08:46.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""I'm not totally sure. But yeah. Okay well that's very good""" start="00:08:53.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""and thank you for giving credits to the inspiration because""" start="00:09:00.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""again nothing is done without context and it's always nice""" start="00:09:03.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""in the free software world to acknowledge people who have""" start="00:09:08.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""influenced us because it's very nice when people start""" start="00:09:11.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""contributing, maintaining software, publishing stuff""" start="00:09:14.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that they actually start collaborating with people who've""" start="00:09:17.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""inspired them which is a nice way to climb over the shoulders""" start="00:09:20.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""of giants which this community likes so much. All right,""" start="00:09:24.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""moving on to the next question. We are, we have about seven""" start="00:09:28.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""more minutes for questions, so we're still good.""" start="00:09:31.200" video="qanda-hyperdrive" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?""" start="00:01:06.687" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Thank you for the talk.""" start="00:01:06.687" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I enjoyed watching it. I tried this tool last year and it""" start="00:01:07.788" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""seemed to work well, but I don't know anyone who actually""" start="00:01:10.757" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""uses it. Network effects are tricky. Do you know of any""" start="00:01:13.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""public shares people can join to try to try this tool out""" start="00:01:16.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""properly? Thank you. Network effects are indeed tricky.""" start="00:01:19.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Yeah. That's kind of part of the purpose of the peer graph is""" start="00:01:24.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to make it easier to discover peers in a way that's more, uh,""" start="00:01:29.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""more reliable and consistent than just somebody puts a""" start="00:01:34.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""public key on Reddit and then it's lost unless somebody""" start="00:01:37.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""finds it. Um, but the, the public keys that I know of are,""" start="00:01:42.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""there's the public key for the Ushin hyperdrive, which is""" start="00:01:50.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""basically just the same content that's on the website""" start="00:01:53.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""mirrored to a hyperdrive. Um, and then there are a few other""" start="00:01:56.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""ones. There's like, uh, hypha.coop has some WebZine""" start="00:02:00.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""content accessible via HyperDrive and also via IPFS. And""" start="00:02:07.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then mauvesignweaver has a blog that's also available on""" start="00:02:13.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Hyper. So that's blog.mauve.moe .""" start="00:02:19.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But besides that, that's kind of the purpose of this""" start="00:02:23.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""peer graph thing is to make it easier to discover other""" start="00:02:28.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""peers. Yeah, to make it also very visual in a way, because,""" start="00:02:31.757" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you know, I personally, it's funny because it reminded me of""" start="00:02:36.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""talks that I did in the past about the trust system for PGP""" start="00:02:40.437" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""keychains, because at the end of the day, you know, this""" start="00:02:45.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""trust system, whether you trust someone absolutely or""" start="00:02:47.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""relatively, the blocking system, it feels very related.""" start="00:02:50.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Any kind of a chain of trust like this, feels very""" start="00:02:53.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""reminiscent, obviously, but it felt very nice that for you,""" start="00:02:57.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you had a dynamic display of this web of trust. Whereas for""" start="00:03:00.437" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""me, I had to make fancy diagram in ticks, in latex, just to""" start="00:03:04.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""make sure that people understood what was actually going""" start="00:03:08.837" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""on. Yeah, one thing I want to point out is just the difference""" start="00:03:14.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in utility for something like the PGP web of trust versus""" start="00:03:21.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""this kind of network of peers is, if I understand right, the""" start="00:03:25.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""main purpose of web of trust is to identify that a certain""" start="00:03:29.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""public key is actually created by the person that they claim""" start="00:03:34.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to be. So you have a way of identifying that a key actually""" start="00:03:42.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""matches like a government identity. Whereas this kind of""" start="00:03:46.037" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""network of peers has nothing to do with authenticating a key""" start="00:03:49.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or associating a key with an identity, like a government""" start="00:03:53.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""identity. The purpose is exclusively just to get more peers""" start="00:03:57.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to be able to discover more peers who have things that are""" start="00:04:03.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""worth reading.""" start="00:04:07.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Yeah, it's a different take on a concept, but even though the""" start="00:04:07.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""concept might be the same, I find there's a wealth of things""" start="00:04:14.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that can be done thanks to this, because as you said, you""" start="00:04:18.837" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""trust someone to send you a file that is trustworthy. Well,""" start="00:04:21.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""with PGP, it's mostly about communication, but about file""" start="00:04:25.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""sharing, it just opens up completely new avenues. Yeah. Do""" start="00:04:28.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you have anything else to add? And about that, I think one of""" start="00:04:33.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the barriers to the PGP web of trust is that it required""" start="00:04:40.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""getting together to have key parties to meet people and""" start="00:04:45.477" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""verify identities. Whereas with this kind of thing,""" start="00:04:48.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""there's no need to do that because so long as your content is""" start="00:04:51.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interesting, it doesn't matter that you're not who you""" start="00:04:54.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""claim to be or that you don't even claim to be anybody. Yeah, I""" start="00:04:57.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""mean, again, as you mentioned, it's not about identifying""" start="00:05:01.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""people, it's just about identifying value, in a way, in the""" start="00:05:04.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""content that people share. It has nothing to do with""" start="00:05:08.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""verifying their actual identity. But again, it's the same""" start="00:05:10.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""technology, it's the same understanding, but for""" start="00:05:13.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""different applications, which is lovely because""" start="00:05:16.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""programming is fractals all over. The same problems repeat""" start="00:05:18.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""themselves and the same solutions show up for widely""" start="00:05:22.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""different scenarios, which is always good. Yeah. Anything""" start="00:05:24.837" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""else? One more thing. Yeah. One more thing is that I wanted to""" start="00:05:26.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""give some kudos to, um, some of the other projects that""" start="00:05:32.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""inspired the pure graph work. One of them is Adam Porter's or""" start="00:05:36.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""graph view, um, which is a, um, a tool for visualizing""" start="00:05:42.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""different nodes in an org file and how they link to one""" start="00:05:50.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""another. Um, he did. the pioneering work to figure out how to""" start="00:05:55.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""render interactive graphs with GraphViz. And so we worked""" start="00:06:01.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""together on it and kind of hacked down the last parts that""" start="00:06:07.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""weren't working correctly. And so this is inspired a lot.""" start="00:06:12.477" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""The user interface is inspired a lot by Adam's work. And then""" start="00:06:16.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""also the idea of having people that you mark as blockers and""" start="00:06:19.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""block is inspired by another project called TrustNet by""" start="00:06:26.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Alex Cobleigh. I can type in the link there. Alex, how do you""" start="00:06:31.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""spell it? Cobleigh? Yeah, I'll type it in here. Thank you. And I""" start="00:06:37.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""think the link is https://cblgh.org/trustnet. I think that is it.""" start="00:06:43.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I'm not totally sure. But yeah. Okay, well, that's very good.""" start="00:06:50.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and thank you for giving credits to the inspiration, because""" start="00:06:57.837" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""again, nothing is done without context, and it's always nice""" start="00:07:01.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in the free software world to acknowledge people who have""" start="00:07:05.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""influenced us, because it's very nice when people start""" start="00:07:08.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""contributing, maintaining software, publishing stuff""" start="00:07:11.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that they actually start collaborating with people who've""" start="00:07:14.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""inspired them, which is a nice way to climb over the shoulders""" start="00:07:17.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""of giants, which this community likes so much. All right,""" start="00:07:21.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""moving on to the next question. We are, we have about seven""" start="00:07:25.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""more minutes for questions, so we're still good.""" start="00:07:28.677" video="qanda-hyperdrive" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense""" start="00:09:33.587" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Second question, one use case for this sharing and building upon""" start="00:09:33.587" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""second brain, sorry, one use case for this is sharing and""" start="00:09:36.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""building upon second brains, i.e. Zettelkasten, that's""" start="00:09:40.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""denote or what I'm actually doing, but a blocker for me""" start="00:09:43.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""wanting to make one public is wanting to use a block list or""" start="00:09:46.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""whitelist so that I can make them... Cautioning?""" start="00:09:49.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Quarantining? Containing. Yes, definitely containing.""" start="00:09:54.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Why did I go for quarantine rather than containing? I guess""" start="00:09:58.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""my brain went to a dark place from the 2020s. So I can make""" start="00:10:02.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""containing useful information for only me while also being""" start="00:10:07.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""useful in a public sense. Yes, I think your question is about""" start="00:10:11.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""how to keep some of the content of your Zettelkasten private""" start="00:10:18.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""and only have certain parts of it be public. If your desire is""" start="00:10:24.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to only share certain files in your Zettelkasten, then you""" start="00:10:32.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""can use the hyperdrive mirror command that we demonstrated""" start="00:10:38.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""in the Emacs 2023 talk. In short,""" start="00:10:46.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""It lets you specify either a regular expression that""" start="00:10:51.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""matches only some of the files that'll get uploaded from a""" start="00:10:56.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""directory of files on your machine. And only the files that""" start="00:11:00.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""match that regex will be put into the hyperdrive and shared""" start="00:11:04.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""with the world. But it doesn't have to be a regex. It could be a""" start="00:11:08.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""lambda. So it could match based on file size or modification""" start="00:11:11.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""time or really whatever you like. So I hope that answers your""" start="00:11:15.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""question. Great. And I personally, as someone who loves""" start="00:11:21.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""tinkering with my ELSP, I particularly like the ability to""" start="00:11:26.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""specify things with a lambda because it just opens up the""" start="00:11:30.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""ceiling of the possibilities with interactions between""" start="00:11:33.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""different parts of software. And, you know, As I have worked""" start="00:11:36.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""significantly in Orgrim, I could definitely see""" start="00:11:39.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""interactions with lambdas here to make sure that we can send""" start="00:11:42.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""and share files based on the filter list that is""" start="00:11:46.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""incrementally added to thanks to those lambdas. So thanks""" start="00:11:49.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""for this. One more thing I want to add about that is that the,""" start="00:11:53.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that same question of being able to upload only certain""" start="00:11:57.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""files while leaving others to, to be private. was something""" start="00:12:02.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that was inspired by Carl Voigt. I had an email thread with""" start="00:12:06.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""him in which he talked about how he uses his file tags project""" start="00:12:10.080" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""to organize his files. And he'll put a public tag on the files""" start="00:12:18.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""in his org database that he wants to have be published to his""" start="00:12:24.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""website. And so you could very easily just set a regular""" start="00:12:29.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""expression matches that public tag and then all of the other""" start="00:12:32.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""files would be not shared. Yeah, and, oh, sorry, I was, I""" start="00:12:36.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""misclicked, I was talking to production for a second. First""" start="00:12:42.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""time it happens today, so I think this is a testament to the""" start="00:12:45.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""level of tightness. But yeah, as you were saying, whatever""" start="00:12:48.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""heuristics you want is actually a good thing. I think people""" start="00:12:50.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""are a little antsy because they tend to brain dump into their""" start="00:12:53.920" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Orgrimm, Zellcastan, Zellcastan slash e-note, and they""" start="00:12:57.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""really don't want some of their personal notes being out""" start="00:13:02.360" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""there. And well, if you are worried about this, I think""" start="00:13:05.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""learning some Elisp and implementing some Lambda function""" start="00:13:08.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that allows you to filter with intention might be the best""" start="00:13:11.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""solution for you. So I hope we've covered the question as""" start="00:13:15.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""well as we could have. Next question is more about an idea""" start="00:13:20.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""about trying hyperdrive to distribute the Worg. Does that""" start="00:13:23.960" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""make sense to you? Yeah, I mean, you could distribute""" start="00:13:27.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""whatever you wanted. I think that'd be a great idea. Okay,""" start="00:13:31.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""great. Moving to the next question, and we have about three""" start="00:13:35.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""minutes, so I think we'll cover the last two questions and""" start="00:13:38.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""we'll move on to the next talk after that.""" start="00:13:40.840" video="qanda-hyperdrive" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense""" start="00:07:31.064" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Second question, one use case for this sharing and building upon""" start="00:07:31.064" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""second brain, sorry, one use case for this is sharing and""" start="00:07:33.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""building upon second brains, i.e. Zettelkasten, that's""" start="00:07:37.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""denote or what I'm actually doing, but a blocker for me""" start="00:07:41.437" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""wanting to make one public is wanting to use a block list or""" start="00:07:44.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""whitelist so that I can make them... Cautioning?""" start="00:07:46.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Quarantining? Containing. Yes, definitely containing.""" start="00:07:51.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Why did I go for quarantine rather than containing? I guess""" start="00:07:56.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""my brain went to a dark place from the 2020s. So I can make""" start="00:07:59.757" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""containing useful information for only me while also being""" start="00:08:04.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""useful in a public sense. Yes, I think your question is about""" start="00:08:08.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""how to keep some of the content of your Zettelkasten private""" start="00:08:16.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and only have certain parts of it be public. If your desire is""" start="00:08:22.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to only share certain files in your Zettelkasten, then you""" start="00:08:29.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""can use the hyperdrive mirror command that we demonstrated""" start="00:08:35.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in the Emacs 2023 talk. In short,""" start="00:08:43.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It lets you specify either a regular expression that""" start="00:08:48.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""matches only some of the files that'll get uploaded from a""" start="00:08:53.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""directory of files on your machine. And only the files that""" start="00:08:58.037" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""match that regex will be put into the hyperdrive and shared""" start="00:09:02.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""with the world. But it doesn't have to be a regex. It could be a""" start="00:09:05.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""lambda. So it could match based on file size or modification""" start="00:09:08.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""time or really whatever you like. So I hope that answers your""" start="00:09:13.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""question. Great. And I personally, as someone who loves""" start="00:09:18.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""tinkering with my Elisp, I particularly like the ability to""" start="00:09:23.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""specify things with a lambda because it just opens up the""" start="00:09:27.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""ceiling of the possibilities with interactions between""" start="00:09:31.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""different parts of software. And, you know, as I have worked""" start="00:09:34.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""significantly in Org Roam, I could definitely see""" start="00:09:37.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interactions with lambdas here to make sure that we can send""" start="00:09:39.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and share files based on the filter list that is""" start="00:09:44.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""incrementally added to thanks to those lambdas. So thanks""" start="00:09:47.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for this. One more thing I want to add about that is that the,""" start="00:09:51.037" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that same question of being able to upload only certain""" start="00:09:55.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""files while leaving others to be private was something""" start="00:10:00.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that was inspired by Karl Voit. I had an email thread with""" start="00:10:04.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""him in which he talked about how he uses his file tags project""" start="00:10:07.557" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to organize his files. And he'll put a public tag on the files""" start="00:10:16.037" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in his org database that he wants to have be published to his""" start="00:10:21.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""website. And so you could very easily just set a regular""" start="00:10:26.477" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""expression matches that public tag and then all of the other""" start="00:10:29.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""files would be not shared. Yeah, and, oh, sorry, I was, I""" start="00:10:33.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""misclicked, I was talking to production for a second. First""" start="00:10:39.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""time it happens today, so I think this is a testament to the""" start="00:10:42.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""level of tightness. But yeah, as you were saying, whatever""" start="00:10:45.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""heuristics you want is actually a good thing. I think people""" start="00:10:47.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""are a little antsy because they tend to brain dump into their""" start="00:10:51.397" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Org Roam, Zettelkasten, Denote, and they""" start="00:10:54.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""really don't want some of their personal notes being out""" start="00:10:59.837" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""there. And well, if you are worried about this, I think""" start="00:11:02.517" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""learning some Elisp and implementing some Lambda function""" start="00:11:05.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that allows you to filter with intention might be the best""" start="00:11:09.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""solution for you. So I hope we've covered the question as""" start="00:11:13.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""well as we could have. Next question is more about an idea""" start="00:11:17.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""about trying hyperdrive to distribute the Worg. Does that""" start="00:11:21.437" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""make sense to you? Yeah, I mean, you could distribute""" start="00:11:24.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""whatever you wanted. I think that'd be a great idea. Okay,""" start="00:11:28.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""great. Moving to the next question, and we have about three""" start="00:11:32.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""minutes, so I think we'll cover the last two questions and""" start="00:11:36.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""we'll move on to the next talk after that.""" start="00:11:38.317" video="qanda-hyperdrive" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?""" start="00:13:43.547" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Could you comment on the visualization thing,""" start="00:13:43.547" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Org visualization, and your""" start="00:13:45.688" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""experience with this type of content in buffers and the""" start="00:13:47.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""various possibilities, SVG, et cetera?""" start="00:13:49.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Sure. So one thing that we worked on was I added a patch that""" start="00:13:55.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""was merged as part of Emacs 30, which fixes the way that image""" start="00:14:02.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""maps scale when images are scaled. So as an Emacs 30, if you""" start="00:14:07.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""zoom in on an image or shrink an image or rotate an image, now""" start="00:14:16.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""the image map, which is the overlay, so it's not actually an""" start="00:14:21.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""overlay, but it's, so to speak, it's an overlay that allows""" start="00:14:26.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""the images to be clickable based on, you know, where the""" start="00:14:29.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""actual visual display is. You can also click on it or hit help""" start="00:14:32.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""echo. And as of Emacs 30, now that scales with the image""" start="00:14:35.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""itself.""" start="00:14:39.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""The code to make that work on previous versions of Emacs, you""" start="00:14:40.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""can see the advice that we added in hyperdrive-sbb-view, that""" start="00:14:47.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""file in hyperdrive.el, if you're curious to see how you""" start="00:14:54.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""could polyfill that code, so to speak, to make it work on""" start="00:14:58.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""previous versions of Emacs before Emacs 30. But it works""" start="00:15:03.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""great. The way that this works is we generate a GraphViz""" start="00:15:08.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""string that will be sent to GraphViz to render an SVG and also""" start="00:15:13.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""render a CMAPX string. We pipe those back into Emacs and then""" start="00:15:19.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""we generate the image map from the CMAPX file and then we put""" start="00:15:26.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that image map with the SVG, and we render it in a buffer.""" start="00:15:30.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Works pretty well. You can check out the code to see exactly""" start="00:15:35.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""how it works. OK, great. Well, sadly, I think we are a little""" start="00:15:39.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""short on time to cover the last two questions. So Joseph, if""" start="00:15:44.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you want to take a little bit of time maybe to answer the""" start="00:15:47.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""questions in the BBB, you can just do this, even though the""" start="00:15:49.760" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""stream will be moving to the next talk. But I'll use the""" start="00:15:53.720" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""opportunity to thank you both for the talk and for your""" start="00:15:57.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""answers, because they were very insightful. And thank you""" start="00:16:00.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""so much for taking the time to be with us today. Thank you,""" start="00:16:02.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Leo. Enjoy the rest of the conference. Any last words in""" start="00:16:06.160" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""about 15 seconds? Thank you. I'm grateful for your taking""" start="00:16:08.400" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""all this time to make this conference possible. Well, you""" start="00:16:12.880" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""know, the conference would be nothing without the speakers""" start="00:16:16.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""coming and chatting, so you are the ones to thank. I mean, we""" start="00:16:19.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""like the thanking, obviously, but it's mostly you doing the""" start="00:16:22.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""work. All right. Thank you, Joseph. We'll see you later.""" start="00:16:24.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Bye-bye.""" start="00:16:28.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Okay, we are offline. So Joseph, if you wanna finish""" start="00:16:29.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""answering the two questions on your own, feel free to. And""" start="00:16:37.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""whenever you finish, just leave the room. It will stop""" start="00:16:39.600" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""without you having to do anything. Okay, thank you, Leo. No""" start="00:16:42.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""worries, bye-bye. Bye.""" start="00:16:46.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""All right, could I, let's see. I'll just answer these few""" start="00:16:53.240" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""questions and then type in some responses.""" start="00:16:58.480" video="qanda-hyperdrive" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Q: What is something surprising about how you or somebody else that you didn't expect from using the hyperdrive network?""" start="00:17:01.266" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""What is something surprising about how""" start="00:17:01.266" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you or somebody else that""" start="00:17:05.538" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""you didn't expect from using the Hyperdrive network?""" start="00:17:05.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""I think the question is about something surprising from""" start="00:17:08.520" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""using the Hyperdrive network.""" start="00:17:16.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Don't quite understand the question. I think the""" start="00:17:18.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""surprising use case for it is to be able to share say a bunch of""" start="00:17:25.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""Org files, link between those Org files... You could use""" start="00:17:31.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""transclusion to to have a discussion and then you could""" start="00:17:36.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""collaborate on on projects using this sort of asynchronous""" start="00:17:41.480" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""communication using hyperdrive files. If there's a""" start="00:17:49.200" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""more specific question, I'm happy to answer it better.""" start="00:17:53.200" video="qanda-hyperdrive" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Q: You mentioned streaming audio and video - could you confirm that this is in reference to consumption of media, and not broadcasting of it - right?""" start="00:17:59.306" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""You mentioned streaming audio and video. Could you confirm""" start="00:17:59.306" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""that this is in reference to consumption of media and not""" start="00:18:03.680" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""broadcasting of it? So this is all shared on a peer-to-peer""" start="00:18:06.840" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""network. So if I have a file on my machine that's a video or""" start="00:18:12.440" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""audio and I'm advertising on the network that people can""" start="00:18:17.120" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""download it from me, then if you want to download that video""" start="00:18:21.640" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""and I have it, I have a copy of it, When you click on that video""" start="00:18:26.320" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""in your hyperdrive, not only does it download it from me, but""" start="00:18:31.280" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""also you can stream it so you don't have to download the whole""" start="00:18:36.000" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""thing before watching it. So it is both in terms of serving""" start="00:18:39.040" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""the file and downloading the file.""" start="00:18:43.560" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""So I'll stay in the big blue button room. as I type in these""" start="00:18:46.800" video="qanda-hyperdrive" id="subtitle"]]
-[[!template text="""answers. And if anything else comes in, I'll answer it.""" start="00:18:59.880" video="qanda-hyperdrive" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?""" start="00:11:41.024" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Could you comment on the visualization thing,""" start="00:11:41.024" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Org visualization, and your""" start="00:11:43.165" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""experience with this type of content in buffers and the""" start="00:11:44.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""various possibilities, SVG, et cetera?""" start="00:11:47.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Sure. So one thing that we worked on was I added a patch that""" start="00:11:52.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""was merged as part of Emacs 30, which fixes the way that image""" start="00:11:59.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""maps scale when images are scaled. So as an Emacs 30, if you""" start="00:12:05.157" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""zoom in on an image or shrink an image or rotate an image, now""" start="00:12:14.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the image map, which is the overlay, so it's not actually an""" start="00:12:19.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""overlay, but it's, so to speak, it's an overlay that allows""" start="00:12:24.277" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the images to be clickable based on, you know, where the""" start="00:12:26.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""actual visual display is. You can also click on it or hit help""" start="00:12:30.117" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""echo. And as of Emacs 30, now that scales with the image""" start="00:12:32.757" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""itself.""" start="00:12:37.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""The code to make that work on previous versions of Emacs, you""" start="00:12:37.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""can see the advice that we added in hyperdrive-sbb-view, that""" start="00:12:45.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""file in hyperdrive.el, if you're curious to see how you""" start="00:12:51.757" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""could polyfill that code, so to speak, to make it work on""" start="00:12:55.957" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""previous versions of Emacs before Emacs 30. But it works""" start="00:13:01.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""great. The way that this works is we generate a GraphViz""" start="00:13:06.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""string that will be sent to GraphViz to render an SVG and also""" start="00:13:11.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""render a CMAPX string. We pipe those back into Emacs and then""" start="00:13:16.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""we generate the image map from the CMAPX file and then we put""" start="00:13:23.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that image map with the SVG, and we render it in a buffer.""" start="00:13:27.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Works pretty well. You can check out the code to see exactly""" start="00:13:32.597" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""how it works. OK, great. Well, sadly, I think we are a little""" start="00:13:37.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""short on time to cover the last two questions. So Joseph, if""" start="00:13:41.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you want to take a little bit of time maybe to answer the""" start="00:13:44.997" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""questions in the BBB, you can just do this, even though the""" start="00:13:47.237" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""stream will be moving to the next talk. But I'll use the""" start="00:13:51.197" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""opportunity to thank you both for the talk and for your""" start="00:13:54.477" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""answers, because they were very insightful. And thank you""" start="00:13:57.717" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""so much for taking the time to be with us today. Thank you,""" start="00:14:00.317" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Leo. Enjoy the rest of the conference. Any last words in""" start="00:14:03.637" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""about 15 seconds? Thank you. I'm grateful for your taking""" start="00:14:05.877" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""all this time to make this conference possible. Well, you""" start="00:14:10.357" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""know, the conference would be nothing without the speakers""" start="00:14:14.077" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""coming and chatting, so you are the ones to thank. I mean, we""" start="00:14:16.917" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""like the thanking, obviously, but it's mostly you doing the""" start="00:14:19.677" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""work. All right. Thank you, Joseph. We'll see you later.""" start="00:14:21.797" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Bye-bye.""" start="00:14:26.157" video="qanda-hyperdrive" id="subtitle"]]
</div>Questions or comments? Please e-mail [contact@ushin.org](mailto:contact@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20New%20in%20hyperdrive.el%3A%20quick%20install%2C%20peer%20graph%2C%20transclusion%21)
diff --git a/2024/info/hyperdrive-before.md b/2024/info/hyperdrive-before.md
index a9623857..92d1ea38 100644
--- a/2024/info/hyperdrive-before.md
+++ b/2024/info/hyperdrive-before.md
@@ -15,13 +15,11 @@ Status: TO_CAPTION_QA
# Q&A
<div class="vid"><video controls preload="none" id="hyperdrive-qanda"><source src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="hyperdrive-qanda" data="""
-02:05.120 New version of hyperdrive.el
-03:09.210 Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?
-09:33.587 Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense
-13:43.547 Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?
-17:01.266 Q: What is something surprising about how you or somebody else that you didn't expect from using the hyperdrive network?
-17:59.306 Q: You mentioned streaming audio and video - could you confirm that this is in reference to consumption of media, and not broadcasting of it - right?
-
-"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="hyperdrive-qanda-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus"></audio></div><div></div>Duration: 22:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-hyperdrive">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (32MB)</a></li></ul></div></div>
+00:00.000 New version of hyperdrive.el
+01:06.687 Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?
+07:31.064 Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense
+11:41.024 Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?
+
+"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="hyperdrive-qanda-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus"></audio></div><div></div>Duration: 22:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-hyperdrive">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (25MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/literate-after.md b/2024/info/literate-after.md
index 341e4bb1..ec410a23 100644
--- a/2024/info/literate-after.md
+++ b/2024/info/literate-after.md
@@ -420,42 +420,49 @@ Captioner: sachac
<div class="transcript-heading">[[!template new="1" text="""Q: You said at the start that literate didn't catch on in corporate DevOps - why not?""" start="00:11:06.220" video="qanda-literate" id="subtitle"]]</div>[[!template text="""You said at the start that literate didn't catch on in""" start="00:11:06.220" video="qanda-literate" id="subtitle"]]
[[!template text="""corporate devops, why not? You know,""" start="00:11:08.440" video="qanda-literate" id="subtitle"]]
-[[!template text="""I guess the big thing is not everybody's using Emacs, and I""" start="00:11:12.320" video="qanda-literate" id="subtitle"]]
-[[!template text="""don't think anybody would be doing literate programming if""" start="00:11:18.320" video="qanda-literate" id="subtitle"]]
-[[!template text="""you didn't have Emacs. I mean, you gotta have org, or it just""" start="00:11:22.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""doesn't work that well, right?""" start="00:11:27.880" video="qanda-literate" id="subtitle"]]
-[[!template text="""Why not that full stack on Markdown? Yeah, so I often do a lot""" start="00:11:30.800" video="qanda-literate" id="subtitle"]]
+[[!template text="""I guess the big thing is not everybody's using Emacs,""" start="00:11:14.720" video="qanda-literate" id="subtitle"]]
+[[!template text="""and I don't think anybody would be""" start="00:11:18.920" video="qanda-literate" id="subtitle"]]
+[[!template text="""doing literate programming if you didn't""" start="00:11:20.611" video="qanda-literate" id="subtitle"]]
+[[!template text="""have Emacs. I mean, you got to have Org, or it just""" start="00:11:23.652" video="qanda-literate" id="subtitle"]]
+[[!template text="""doesn't work that well, right?""" start="00:11:25.200" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: Why not that full stack on Markdown?""" start="00:11:29.421" video="qanda-literate" id="subtitle"]]</div>[[!template text="""Why not that full stack on Markdown? Yeah, so I often do a lot""" start="00:11:29.421" video="qanda-literate" id="subtitle"]]
[[!template text="""of Markdown. I have got, so I've gone through and make my""" start="00:11:36.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""markdown look a lot like org. So my headers are the same size""" start="00:11:44.280" video="qanda-literate" id="subtitle"]]
+[[!template text="""markdown look a lot like Org. So my headers are the same size""" start="00:11:44.280" video="qanda-literate" id="subtitle"]]
[[!template text="""as org. When I mark, do the triple back ticks, you know, and""" start="00:11:49.040" video="qanda-literate" id="subtitle"]]
-[[!template text="""specify your language, we can now colorize that. So you can""" start="00:11:54.760" video="qanda-literate" id="subtitle"]]
-[[!template text="""kind of now have it syntactically marked up. It would be""" start="00:12:00.200" video="qanda-literate" id="subtitle"]]
+[[!template text="""specify your language, we can now colorize that.""" start="00:11:54.760" video="qanda-literate" id="subtitle"]]
+[[!template text="""So you can kind of now have it""" start="00:11:59.280" video="qanda-literate" id="subtitle"]]
+[[!template text="""syntactically marked up. It would be""" start="00:12:01.522" video="qanda-literate" id="subtitle"]]
[[!template text="""interesting if we kind of expanded on Markdown so that I""" start="00:12:05.680" video="qanda-literate" id="subtitle"]]
[[!template text="""could do a C-c twice on it and run that code block.""" start="00:12:11.200" video="qanda-literate" id="subtitle"]]
[[!template text="""That's a real good idea. Maybe we should work on that.""" start="00:12:14.480" video="qanda-literate" id="subtitle"]]
-[[!template text="""How does your management of to do's project and tasks""" start="00:12:22.120" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Corwin's aside on orgvm""" start="00:12:22.120" video="qanda-literate" id="subtitle"]]</div>[[!template text="""How does your management of TODOs, projects, and tasks""" start="00:12:22.120" video="qanda-literate" id="subtitle"]]
[[!template text="""interact with this literate mindset? I can't believe I'm""" start="00:12:28.040" video="qanda-literate" id="subtitle"]]
[[!template text="""going to do this, but Howard, I'm going to break right in""" start="00:12:31.680" video="qanda-literate" id="subtitle"]]
[[!template text="""there because I just can't. I need to talk about that. So this""" start="00:12:33.880" video="qanda-literate" id="subtitle"]]
[[!template text="""is I bought a domain. And really what I mean is I have this""" start="00:12:37.120" video="qanda-literate" id="subtitle"]]
-[[!template text="""domain of somebody get some work done in this area. I'm""" start="00:12:41.800" video="qanda-literate" id="subtitle"]]
+[[!template text="""domain if somebody gets some work done in this area. I'm""" start="00:12:41.800" video="qanda-literate" id="subtitle"]]
[[!template text="""fascinated by this. That's mostly really actually my whole""" start="00:12:45.600" video="qanda-literate" id="subtitle"]]
[[!template text="""comment. But I just wanted to say, indeed, that is something""" start="00:12:48.840" video="qanda-literate" id="subtitle"]]
[[!template text="""maybe we should work on. Well said. I think the idea of having""" start="00:12:52.600" video="qanda-literate" id="subtitle"]]
-[[!template text="""something that's full stack baked around Emacs is pretty""" start="00:12:56.600" video="qanda-literate" id="subtitle"]]
+[[!template text="""something that's full-stack baked around Emacs is pretty""" start="00:12:56.600" video="qanda-literate" id="subtitle"]]
[[!template text="""fascinating, just thinking about it as some command line""" start="00:12:59.560" video="qanda-literate" id="subtitle"]]
-[[!template text="""tool that we can run to get some work done and then there are""" start="00:13:03.080" video="qanda-literate" id="subtitle"]]
-[[!template text="""documents involved and as you know coming back to the kind of""" start="00:13:05.640" video="qanda-literate" id="subtitle"]]
-[[!template text="""corporate you know sense of some of the things like there's""" start="00:13:09.240" video="qanda-literate" id="subtitle"]]
-[[!template text="""that's that's a little dicey the same way a free software""" start="00:13:12.760" video="qanda-literate" id="subtitle"]]
-[[!template text="""project raising money for itself is a little dicey it might""" start="00:13:15.320" video="qanda-literate" id="subtitle"]]
-[[!template text="""be a necessary way to get through certain kinds of things and""" start="00:13:19.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""like what the corporate side of the world brings to the table""" start="00:13:23.600" video="qanda-literate" id="subtitle"]]
-[[!template text="""here in my mind is that idea of I've got a formal process, like""" start="00:13:26.560" video="qanda-literate" id="subtitle"]]
-[[!template text="""the process itself is an asset. If I were selling my company,""" start="00:13:32.200" video="qanda-literate" id="subtitle"]]
+[[!template text="""tool that we can run to get some work done, and then there are""" start="00:13:03.080" video="qanda-literate" id="subtitle"]]
+[[!template text="""documents involved, and as you know coming back""" start="00:13:05.640" video="qanda-literate" id="subtitle"]]
+[[!template text="""to the kind of corporate""" start="00:13:07.970" video="qanda-literate" id="subtitle"]]
+[[!template text="""sense of some of the things like there...""" start="00:13:10.512" video="qanda-literate" id="subtitle"]]
+[[!template text="""that's a little dicey the same way a free software""" start="00:13:12.760" video="qanda-literate" id="subtitle"]]
+[[!template text="""project raising money for itself is a little dicey.""" start="00:13:15.320" video="qanda-literate" id="subtitle"]]
+[[!template text="""It might be a necessary way to get through""" start="00:13:19.039" video="qanda-literate" id="subtitle"]]
+[[!template text="""certain kinds of things and like""" start="00:13:21.721" video="qanda-literate" id="subtitle"]]
+[[!template text="""what the corporate side of the world brings to the table""" start="00:13:23.883" video="qanda-literate" id="subtitle"]]
+[[!template text="""Here in my mind is that idea of I've got a formal process,""" start="00:13:26.560" video="qanda-literate" id="subtitle"]]
+[[!template text="""like the process itself is an asset.""" start="00:13:31.990" video="qanda-literate" id="subtitle"]]
+[[!template text="""If I were selling my company,""" start="00:13:33.831" video="qanda-literate" id="subtitle"]]
[[!template text="""that would be visibly of value to outside auditors that""" start="00:13:35.240" video="qanda-literate" id="subtitle"]]
-[[!template text="""would help us arbitrate the sale. It's just empirical. Then""" start="00:13:39.400" video="qanda-literate" id="subtitle"]]
-[[!template text="""tie that together with free software is maybe a little""" start="00:13:43.480" video="qanda-literate" id="subtitle"]]
+[[!template text="""would help us arbitrate the sale. It's just empirical.""" start="00:13:39.400" video="qanda-literate" id="subtitle"]]
+[[!template text="""Then tie that together with free software is maybe a little""" start="00:13:43.258" video="qanda-literate" id="subtitle"]]
[[!template text="""unstated ethos of doing our work in the open, and you might""" start="00:13:48.240" video="qanda-literate" id="subtitle"]]
[[!template text="""even deal with some of the ick factor. that you know that for a""" start="00:13:53.160" video="qanda-literate" id="subtitle"]]
[[!template text="""handler. Maybe so, but yeah, the downside to that is you'd""" start="00:13:58.760" video="qanda-literate" id="subtitle"]]
@@ -470,7 +477,8 @@ Captioner: sachac
[[!template text="""personally haven't soaked too many weekends into it. But I""" start="00:14:37.480" video="qanda-literate" id="subtitle"]]
[[!template text="""just love the way you're thinking in terms of, well, we""" start="00:14:42.440" video="qanda-literate" id="subtitle"]]
[[!template text="""should think more about that. Gosh, that's great to hear.""" start="00:14:45.160" video="qanda-literate" id="subtitle"]]
-[[!template text="""Yeah. Yeah, I mean, just like the talk yesterday on the""" start="00:14:49.520" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org and Markdown fragmentation""" start="00:14:49.520" video="qanda-literate" id="subtitle"]]</div>[[!template text="""Yeah. Yeah, I mean, just like the talk yesterday on the""" start="00:14:49.520" video="qanda-literate" id="subtitle"]]
[[!template text="""future of org, it's like, let's standardize it. Because,""" start="00:14:53.400" video="qanda-literate" id="subtitle"]]
[[!template text="""yeah, we don't want to have org fragmented like Markdown is.""" start="00:14:57.640" video="qanda-literate" id="subtitle"]]
[[!template text="""Markdown is terribly fragmented. You know, everybody's""" start="00:15:03.240" video="qanda-literate" id="subtitle"]]
@@ -493,7 +501,8 @@ Captioner: sachac
[[!template text="""spirit of yes, let's think about it. You know, your, your""" start="00:16:06.520" video="qanda-literate" id="subtitle"]]
[[!template text="""comments about, let's think about the workflows that work""" start="00:16:09.960" video="qanda-literate" id="subtitle"]]
[[!template text="""for us. Wow. Does that hit home? Right? So great. Yeah. Yeah.""" start="00:16:12.600" video="qanda-literate" id="subtitle"]]
-[[!template text="""Yeah. Okay. So, uh, on to do's and that sort of thing, um. You""" start="00:16:17.920" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: How does your management of "TODOs" (projects/tasks) interact with this literate mindset, any insightful things you do on that front?""" start="00:16:17.920" video="qanda-literate" id="subtitle"]]</div>[[!template text="""Yeah. Okay. So, uh, on to do's and that sort of thing, um. You""" start="00:16:17.920" video="qanda-literate" id="subtitle"]]
[[!template text="""know, a lot is the same as it was 10 years ago. At the beginning""" start="00:16:25.280" video="qanda-literate" id="subtitle"]]
[[!template text="""of every sprint,""" start="00:16:32.200" video="qanda-literate" id="subtitle"]]
[[!template text="""my company, we're using JIRA.""" start="00:16:33.320" video="qanda-literate" id="subtitle"]]
@@ -505,9 +514,11 @@ Captioner: sachac
[[!template text="""it'll reference all the projects, and I do symlinks to every""" start="00:17:02.800" video="qanda-literate" id="subtitle"]]
[[!template text="""code base that I need to use. Most of the to-dos I put inside my""" start="00:17:06.480" video="qanda-literate" id="subtitle"]]
[[!template text="""code block is kind of just for me, just so I can remember it.""" start="00:17:12.480" video="qanda-literate" id="subtitle"]]
-[[!template text="""Because the work that I have to do needs to be tracked a little""" start="00:17:16.640" video="qanda-literate" id="subtitle"]]
-[[!template text="""more""" start="00:17:22.760" video="qanda-literate" id="subtitle"]]
-[[!template text="""fine-grained, I guess. Yeah. Do I use LP also on larger""" start="00:17:24.120" video="qanda-literate" id="subtitle"]]
+[[!template text="""Because the work that I have to do""" start="00:17:16.640" video="qanda-literate" id="subtitle"]]
+[[!template text="""needs to be tracked a little more""" start="00:17:21.087" video="qanda-literate" id="subtitle"]]
+[[!template text="""fine-grained, I guess. Yeah.""" start="00:17:24.120" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: Do you LP also on larger projects?""" start="00:17:30.630" video="qanda-literate" id="subtitle"]]</div>[[!template text="""Do I use LP also on larger""" start="00:17:30.630" video="qanda-literate" id="subtitle"]]
[[!template text="""projects? More files and nested directories? Yeah, I""" start="00:17:33.440" video="qanda-literate" id="subtitle"]]
[[!template text="""haven't really done nested directories, but I can now. Now""" start="00:17:37.200" video="qanda-literate" id="subtitle"]]
[[!template text="""that I've now kind of realized that I have the feature that I""" start="00:17:43.880" video="qanda-literate" id="subtitle"]]
@@ -520,7 +531,9 @@ Captioner: sachac
[[!template text="""of my init file and make it into a package. I'm looking for a""" start="00:18:20.520" video="qanda-literate" id="subtitle"]]
[[!template text="""good name right now. I'm calling it jobs, jump to project""" start="00:18:24.480" video="qanda-literate" id="subtitle"]]
[[!template text="""sections. Anyway, but yeah, I think that's kind of a nice,""" start="00:18:30.240" video="qanda-literate" id="subtitle"]]
-[[!template text="""useful feature. Have I used Cucumber, Gherkin, and other""" start="00:18:36.400" video="qanda-literate" id="subtitle"]]
+[[!template text="""useful feature.""" start="00:18:36.400" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: Have you used Cucumber/Gherkin/BDD and do you think it has a strong overlap to what you talked about here?""" start="00:18:38.936" video="qanda-literate" id="subtitle"]]</div>[[!template text="""Have I used Cucumber, Gherkin, and other""" start="00:18:38.936" video="qanda-literate" id="subtitle"]]
[[!template text="""behavior-driven development?""" start="00:18:41.920" video="qanda-literate" id="subtitle"]]
[[!template text="""Have I, I mean, I do a lot of...""" start="00:18:44.480" video="qanda-literate" id="subtitle"]]
[[!template text="""more test driven. I do a lot of unit tests and I just put it""" start="00:18:50.720" video="qanda-literate" id="subtitle"]]
@@ -529,7 +542,7 @@ Captioner: sachac
[[!template text="""function that I'm testing. I like that so I can kind of see it.""" start="00:19:07.200" video="qanda-literate" id="subtitle"]]
[[!template text="""I don't tangle it out to that same source file. I tangle it""" start="00:19:11.520" video="qanda-literate" id="subtitle"]]
[[!template text="""somewhere else if I tangle it at all because I don't need to. I""" start="00:19:15.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""can just, you know, control C that and run it. I like that""" start="00:19:19.120" video="qanda-literate" id="subtitle"]]
+[[!template text="""can just, you know, C-c that and run it. I like that""" start="00:19:19.120" video="qanda-literate" id="subtitle"]]
[[!template text="""aspect of it.""" start="00:19:23.200" video="qanda-literate" id="subtitle"]]
[[!template text="""Yeah, just keeping things together. That's the big problem""" start="00:19:24.880" video="qanda-literate" id="subtitle"]]
[[!template text="""I have with a lot of tests is the tests are somewhere else.""" start="00:19:29.320" video="qanda-literate" id="subtitle"]]
@@ -539,11 +552,13 @@ Captioner: sachac
[[!template text="""you've got to do a lot of mocks and a lot of startup and tear""" start="00:19:43.360" video="qanda-literate" id="subtitle"]]
[[!template text="""down, that kind of thing. Yeah, that doesn't help as much.""" start="00:19:47.760" video="qanda-literate" id="subtitle"]]
[[!template text="""And you probably have to kind of go old school on that.""" start="00:19:51.840" video="qanda-literate" id="subtitle"]]
-[[!template text="""What granularity I'm looking for with my org files and my""" start="00:19:54.600" video="qanda-literate" id="subtitle"]]
-[[!template text="""subcontent? That's a real good question and really""" start="00:20:01.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""subjective. I change that over time. I begin by just dump. I""" start="00:20:04.880" video="qanda-literate" id="subtitle"]]
-[[!template text="""just dump everything in my head into a file and then I go""" start="00:20:13.160" video="qanda-literate" id="subtitle"]]
-[[!template text="""through and start to refine it.""" start="00:20:17.080" video="qanda-literate" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: What granularity are you looking for re your org files and contents, with respect to a codebase that it tangles to, or in non-coding contexts?""" start="00:19:54.600" video="qanda-literate" id="subtitle"]]</div>[[!template text="""What granularity I'm looking for with my org files and my""" start="00:19:54.600" video="qanda-literate" id="subtitle"]]
+[[!template text="""subcontent? That's a real good question""" start="00:20:01.360" video="qanda-literate" id="subtitle"]]
+[[!template text="""and really subjective.""" start="00:20:03.635" video="qanda-literate" id="subtitle"]]
+[[!template text="""I change that over time. I begin by just dumping.""" start="00:20:05.256" video="qanda-literate" id="subtitle"]]
+[[!template text="""I just dump everything in my head into a file""" start="00:20:13.160" video="qanda-literate" id="subtitle"]]
+[[!template text="""and then I go through and start to refine it.""" start="00:20:16.379" video="qanda-literate" id="subtitle"]]
[[!template text="""My goal at one point was to have an Emacs config file that was""" start="00:20:19.680" video="qanda-literate" id="subtitle"]]
[[!template text="""really small and simple. And boy, that just doesn't happen.""" start="00:20:26.160" video="qanda-literate" id="subtitle"]]
[[!template text="""It's just too fun to add things and try new ideas. And I found""" start="00:20:29.920" video="qanda-literate" id="subtitle"]]
@@ -552,7 +567,7 @@ Captioner: sachac
[[!template text="""extract these and put them into different files so I can keep""" start="00:20:47.120" video="qanda-literate" id="subtitle"]]
[[!template text="""it clean. And so I think it's like with any code base, you're""" start="00:20:49.960" video="qanda-literate" id="subtitle"]]
[[!template text="""just going to keep refactoring. It's an iterative process.""" start="00:20:54.360" video="qanda-literate" id="subtitle"]]
-[[!template text="""So having the ability to, like with an org file, where you can""" start="00:20:59.000" video="qanda-literate" id="subtitle"]]
+[[!template text="""So having the ability to, like with an Org file, where you can""" start="00:20:59.000" video="qanda-literate" id="subtitle"]]
[[!template text="""archive a subtree. Okay, this idea didn't pan out. Archive""" start="00:21:04.200" video="qanda-literate" id="subtitle"]]
[[!template text="""it. I can come back to it later. Being able to just kind of""" start="00:21:09.160" video="qanda-literate" id="subtitle"]]
[[!template text="""shove it somewhere else is really a nice little feature. All""" start="00:21:13.520" video="qanda-literate" id="subtitle"]]
diff --git a/2024/info/papers-after.md b/2024/info/papers-after.md
index 858ee9dd..fa3043b2 100644
--- a/2024/info/papers-after.md
+++ b/2024/info/papers-after.md
@@ -199,18 +199,18 @@ Captioner: sachac
[[!template text="""presentation that wasn't able to fit in, I suggest we just""" start="00:01:08.800" video="qanda-papers" id="subtitle"]]
[[!template text="""start taking questions. All right. So yeah, right now I'm""" start="00:01:11.840" video="qanda-papers" id="subtitle"]]
[[!template text="""reading the question from IRC and also from the pad. So I""" start="00:01:16.560" video="qanda-papers" id="subtitle"]]
-[[!template text="""guess I'm gonna take what's already written there. So the""" start="00:01:19.440" video="qanda-papers" id="subtitle"]]
+[[!template text="""guess I'm gonna take what's already written there.""" start="00:01:19.440" video="qanda-papers" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: I'd be interested how to start this journey of writing academic papers in Org-Roam when not having used Emacs Org-Mode yet? Thanks!""" start="00:01:23.160" video="qanda-papers" id="subtitle"]]</div>[[!template text="""first one say asking, I'd be interested in how to start this""" start="00:01:23.160" video="qanda-papers" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: I'd be interested how to start this journey of writing academic papers in Org-Roam when not having used Emacs Org-Mode yet? Thanks!""" start="00:01:23.160" video="qanda-papers" id="subtitle"]]</div>[[!template text="""So the first one is asking, I'd be interested in how to start this""" start="00:01:23.160" video="qanda-papers" id="subtitle"]]
[[!template text="""journey to write academic paper in org-roam when not having""" start="00:01:27.360" video="qanda-papers" id="subtitle"]]
[[!template text="""used Emacs org mode yet. So I saw this one before and I guess it""" start="00:01:30.240" video="qanda-papers" id="subtitle"]]
-[[!template text="""would be possible to do that, like to use org documents only""" start="00:01:36.640" video="qanda-papers" id="subtitle"]]
-[[!template text="""as the way that you are writing papers. Like maybe you can""" start="00:01:43.040" video="qanda-papers" id="subtitle"]]
-[[!template text="""just use that as a template that you're going to export. And""" start="00:01:46.760" video="qanda-papers" id="subtitle"]]
-[[!template text="""if you are familiar with LaTeX, it's going to be more useful,""" start="00:01:51.960" video="qanda-papers" id="subtitle"]]
-[[!template text="""I guess, and maybe more convenient to work with inside of""" start="00:01:54.960" video="qanda-papers" id="subtitle"]]
+[[!template text="""would be possible to do that, to use Org documents only""" start="00:01:36.640" video="qanda-papers" id="subtitle"]]
+[[!template text="""as the way that you are writing papers. Maybe you can""" start="00:01:43.040" video="qanda-papers" id="subtitle"]]
+[[!template text="""just use that as a template that you're going to export.""" start="00:01:46.760" video="qanda-papers" id="subtitle"]]
+[[!template text="""If you are familiar with LaTeX, it's going to be more useful,""" start="00:01:51.960" video="qanda-papers" id="subtitle"]]
+[[!template text="""and maybe more convenient to work with inside of""" start="00:01:54.960" video="qanda-papers" id="subtitle"]]
[[!template text="""Emacs. But then I'm not 100% sure if that's... How do you say""" start="00:01:59.600" video="qanda-papers" id="subtitle"]]
-[[!template text="""that? Maybe the, in my opinion, the benefits of using""" start="00:02:05.000" video="qanda-papers" id="subtitle"]]
+[[!template text="""that? Maybe, in my opinion, the benefits of using""" start="00:02:05.000" video="qanda-papers" id="subtitle"]]
[[!template text="""org-roam in that setup is that you can link the things. For""" start="00:02:10.800" video="qanda-papers" id="subtitle"]]
[[!template text="""me, I'm using the search function for org-roam to just""" start="00:02:14.680" video="qanda-papers" id="subtitle"]]
[[!template text="""navigate between the files. So that's really some, a good""" start="00:02:18.840" video="qanda-papers" id="subtitle"]]
@@ -218,7 +218,7 @@ Captioner: sachac
[[!template text="""the presentation, that's some, maybe that's something you""" start="00:02:26.120" video="qanda-papers" id="subtitle"]]
[[!template text="""can start using org-mode with to write papers. So yeah.""" start="00:02:28.040" video="qanda-papers" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: How about connecting Emacs Org-Roam to Zotero? Is that something you have experience with?""" start="00:02:35.840" video="qanda-papers" id="subtitle"]]</div>[[!template text="""some second questions. So how about connecting Emacs or Roam""" start="00:02:35.840" video="qanda-papers" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: How about connecting Emacs Org-Roam to Zotero? Is that something you have experience with?""" start="00:02:35.840" video="qanda-papers" id="subtitle"]]</div>[[!template text="""Second question. So how about connecting Emacs or Roam""" start="00:02:35.840" video="qanda-papers" id="subtitle"]]
[[!template text="""to Zotero? Is that something that you have experience with?""" start="00:02:38.880" video="qanda-papers" id="subtitle"]]
[[!template text="""Not at all. Actually, I used briefly Zotero in the past and I""" start="00:02:42.080" video="qanda-papers" id="subtitle"]]
[[!template text="""really didn't like it or didn't really get into that. I don't""" start="00:02:47.120" video="qanda-papers" id="subtitle"]]
@@ -258,7 +258,7 @@ Captioner: sachac
[[!template text="""publisher page and copying the bibtex block and""" start="00:05:09.360" video="qanda-papers" id="subtitle"]]
[[!template text="""just using putting that in my file. Yes, it can be not a very""" start="00:05:15.200" video="qanda-papers" id="subtitle"]]
[[!template text="""efficient workflow on that side. But after that, you're""" start="00:05:20.040" video="qanda-papers" id="subtitle"]]
-[[!template text="""having to the PDF. It's and having it inside the notice.""" start="00:05:23.360" video="qanda-papers" id="subtitle"]]
+[[!template text="""having the PDF and having it inside the note.""" start="00:05:23.360" video="qanda-papers" id="subtitle"]]
[[!template text="""Yeah, it's great. Yeah. To some extent, it kind of depends on""" start="00:05:26.600" video="qanda-papers" id="subtitle"]]
[[!template text="""the reference system that is used by the field in which you""" start="00:05:30.760" video="qanda-papers" id="subtitle"]]
[[!template text="""are or the university in which you're publishing. Because""" start="00:05:33.320" video="qanda-papers" id="subtitle"]]
@@ -271,7 +271,7 @@ Captioner: sachac
[[!template text="""I'm not sure we want to be opening now. But if you are""" start="00:05:55.440" video="qanda-papers" id="subtitle"]]
[[!template text="""interested and if you're not too attached about getting""" start="00:05:57.800" video="qanda-papers" id="subtitle"]]
[[!template text="""everything right, it's really easy to get started with""" start="00:06:01.000" video="qanda-papers" id="subtitle"]]
-[[!template text="""stuff like org-roam-bip-tech. It's supposed to get you""" start="00:06:03.680" video="qanda-papers" id="subtitle"]]
+[[!template text="""stuff like org-roam-bibtex. It's supposed to get you""" start="00:06:03.680" video="qanda-papers" id="subtitle"]]
[[!template text="""most of the way down to a working setup. And if you need to get""" start="00:06:06.320" video="qanda-papers" id="subtitle"]]
[[!template text="""everything working down to the comma based on your""" start="00:06:11.320" video="qanda-papers" id="subtitle"]]
[[!template text="""reference system, that's going to be a little harder. But""" start="00:06:14.360" video="qanda-papers" id="subtitle"]]
diff --git a/2024/info/rust-before.md b/2024/info/rust-before.md
index 87bd4f60..0e413d02 100644
--- a/2024/info/rust-before.md
+++ b/2024/info/rust-before.md
@@ -1,6 +1,6 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 21-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Format: 21-min talk ; Q&A: BigBlueButton conference room
Etherpad: <https://pad.emacsconf.org/2024-rust>
Status: TO_CAPTION_QA
diff --git a/2024/info/transducers-after.md b/2024/info/transducers-after.md
index f48b41d4..8dbe9101 100644
--- a/2024/info/transducers-after.md
+++ b/2024/info/transducers-after.md
@@ -496,7 +496,7 @@ Captioner: sachac
[[!template text="""I love it. What a nice succinct answer. Even I can manage to""" start="00:08:05.760" video="qanda-transducers" id="subtitle"]]
[[!template text="""type that out as I scroll us to the next question.""" start="00:08:13.560" video="qanda-transducers" id="subtitle"]]
-<div class="transcript-heading">[[!template new="1" text="""Q: Does t-buffer-read provide a lazy stream that\'s linewise, or charwise, or do something else entirely?""" start="00:08:16.579" video="qanda-transducers" id="subtitle"]]</div>[[!template text="""So, does t-buffer-read provide a lazy stream""" start="00:08:16.579" video="qanda-transducers" id="subtitle"]]
+<div class="transcript-heading">[[!template new="1" text="""Q: Does t-buffer-read provide a lazy stream that's linewise, or charwise, or do something else entirely?""" start="00:08:16.579" video="qanda-transducers" id="subtitle"]]</div>[[!template text="""So, does t-buffer-read provide a lazy stream""" start="00:08:16.579" video="qanda-transducers" id="subtitle"]]
[[!template text="""that's line-wise or character-wise or do something else""" start="00:08:24.080" video="qanda-transducers" id="subtitle"]]
[[!template text="""entirely?""" start="00:08:28.360" video="qanda-transducers" id="subtitle"]]
[[!template text="""Okay, there are two functions. I showed""" start="00:08:29.019" video="qanda-transducers" id="subtitle"]]
@@ -525,14 +525,14 @@ Captioner: sachac
[[!template text="""supported. So, you know, a vector hash table and so on.""" start="00:10:04.440" video="qanda-transducers" id="subtitle"]]
[[!template text="""make sense so i think what i heard there is yeah go ahead""" start="00:10:06.520" video="qanda-transducers" id="subtitle"]]
[[!template text="""please sorry in terms of mixing like you know like for""" start="00:10:13.720" video="qanda-transducers" id="subtitle"]]
-[[!template text="""instance you know like seek dash map used in transducers""" start="00:10:17.880" video="qanda-transducers" id="subtitle"]]
+[[!template text="""instance you know like seq-map used in transducers""" start="00:10:17.880" video="qanda-transducers" id="subtitle"]]
[[!template text="""we'll put it that way""" start="00:10:22.600" video="qanda-transducers" id="subtitle"]]
[[!template text="""i was just gonna say i think it um it it sounds like you're""" start="00:10:28.120" video="qanda-transducers" id="subtitle"]]
[[!template text="""saying Yeah, probably they are actually. We don't know yet""" start="00:10:31.880" video="qanda-transducers" id="subtitle"]]
[[!template text="""about any places where they don't play nicely together. So""" start="00:10:37.200" video="qanda-transducers" id="subtitle"]]
[[!template text="""quite possibly so. We can use sequence and transducers""" start="00:10:41.240" video="qanda-transducers" id="subtitle"]]
[[!template text="""together, for example. As a source potentially, yeah. It's""" start="00:10:45.400" video="qanda-transducers" id="subtitle"]]
-[[!template text="""very easy because that just uses def generic. As long as you""" start="00:10:49.960" video="qanda-transducers" id="subtitle"]]
+[[!template text="""very easy because that just uses defgeneric. As long as you""" start="00:10:49.960" video="qanda-transducers" id="subtitle"]]
[[!template text="""have a new, like if you have a new collection type, as long as""" start="00:10:54.160" video="qanda-transducers" id="subtitle"]]
[[!template text="""you implement a def method for it somewhere, it'll just""" start="00:10:57.720" video="qanda-transducers" id="subtitle"]]
[[!template text="""magically work with this library. That's the magic of...""" start="00:11:01.520" video="qanda-transducers" id="subtitle"]]
@@ -684,7 +684,7 @@ Captioner: sachac
[[!template text="""implementation. Can this abstraction allow for advances""" start="00:20:42.400" video="qanda-transducers" id="subtitle"]]
[[!template text="""in implementation? Yes, what I've basically done is mostly""" start="00:20:45.680" video="qanda-transducers" id="subtitle"]]
[[!template text="""followed the pattern of usage that exists in Clojure and in""" start="00:20:50.560" video="qanda-transducers" id="subtitle"]]
-[[!template text="""Schemes SERP 171. In theory, the service level API is the""" start="00:20:56.000" video="qanda-transducers" id="subtitle"]]
+[[!template text="""Scheme's SERP 171. In theory, the service level API is the""" start="00:20:56.000" video="qanda-transducers" id="subtitle"]]
[[!template text="""same no matter where you're using this, and that's the idea.""" start="00:21:01.160" video="qanda-transducers" id="subtitle"]]
[[!template text="""If you learn them in one list, you should be able to use them""" start="00:21:05.000" video="qanda-transducers" id="subtitle"]]
[[!template text="""everywhere. Then what it's actually doing under the hood is""" start="00:21:08.040" video="qanda-transducers" id="subtitle"]]
@@ -711,7 +711,8 @@ Captioner: sachac
[[!template text="""anything, you know, or whatever. No, no pressure, no""" start="00:22:24.280" video="qanda-transducers" id="subtitle"]]
[[!template text="""worries, no mistakes. Thank you. Really appreciate you.""" start="00:22:27.000" video="qanda-transducers" id="subtitle"]]
[[!template text="""Yep. Thanks a lot.""" start="00:22:29.840" video="qanda-transducers" id="subtitle"]]
-[[!template text="""OK, does anyone else have some questions? I see Mohsen in the""" start="00:22:31.960" video="qanda-transducers" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: Question about how the transducers video was made? Did you use Reveal.js? Do you have a pointer to the html hosted presentation? How did you generate the content for Reveal?""" start="00:22:31.960" video="qanda-transducers" id="subtitle"]]</div>[[!template text="""OK, does anyone else have some questions? I see Mohsen in the""" start="00:22:31.960" video="qanda-transducers" id="subtitle"]]
[[!template text="""BigBlueButton chat is asking how I made the video. So the""" start="00:22:48.400" video="qanda-transducers" id="subtitle"]]
[[!template text="""presentation itself was done with RevealJS from Org Mode.""" start="00:22:52.840" video="qanda-transducers" id="subtitle"]]
[[!template text="""So as you saw, I had a raw Org Mode buffer, which was""" start="00:22:59.080" video="qanda-transducers" id="subtitle"]]
@@ -729,7 +730,8 @@ Captioner: sachac
[[!template text="""Looks like that's it for questions, basically.""" start="00:24:08.160" video="qanda-transducers" id="subtitle"]]
[[!template text="""Yep, and it looks like everyone's moved on for now. Let's""" start="00:24:11.000" video="qanda-transducers" id="subtitle"]]
[[!template text="""see. I mean, it would be so this is answering lounge 81 on IRC.""" start="00:24:14.920" video="qanda-transducers" id="subtitle"]]
-[[!template text="""Yeah, like, if we really wanted to go that hardcore, maybe""" start="00:24:20.160" video="qanda-transducers" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Q: From your investigations and tests so far, do you think there would be the necessity of transducers to eventually go down into the C level code for things like using them to solve "infinitely-big" buffer-like interfaces and such?""" start="00:24:20.160" video="qanda-transducers" id="subtitle"]]</div>[[!template text="""Yeah, like, if we really wanted to go that hardcore, maybe""" start="00:24:20.160" video="qanda-transducers" id="subtitle"]]
[[!template text="""there's some like C level stuff that we could""" start="00:24:24.600" video="qanda-transducers" id="subtitle"]]
[[!template text="""you know, significant demand for such a thing. You know, so""" start="00:24:29.440" video="qanda-transducers" id="subtitle"]]
[[!template text="""far there hasn't been such demand, but maybe there will be in""" start="00:24:36.120" video="qanda-transducers" id="subtitle"]]
diff --git a/2024/schedule-details.md b/2024/schedule-details.md
index 6504f8c5..291fc5a4 100644
--- a/2024/schedule-details.md
+++ b/2024/schedule-details.md
@@ -9,7 +9,7 @@ Jump to: <a href="#dev">Development</a>
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard.mp4">Download .mp4 (21MB)</a></li>""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note="""captioned, video posted, video: 13:50"""]]
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.webm">Download --main.webm (87MB)</a></li>""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note="""captioned, video posted, video: 37:13"""]]
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.webm">Download --answers.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.webm">Download --main.webm (32MB)</a></li>""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note="""captioned, video posted, Q&A posted, video: 18:24, answers: 22:12"""]]
-[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm">Download --main.webm (74MB)</a></li>""" title="""New in hyperdrive.el: quick install, peer graph, transclusion!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note="""captioned, video posted, Q&A posted, video: 20:25, answers: 22:34"""]]
+[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (25MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm">Download --main.webm (74MB)</a></li>""" title="""New in hyperdrive.el: quick install, peer graph, transclusion!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note="""captioned, video posted, Q&A posted, video: 20:25, answers: 22:34"""]]
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.webm">Download --main.webm (41MB)</a></li>""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note="""captioned, video posted, video: 13:31"""]]
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.webm">Download --answers.webm (39MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--edited.webm">Download --edited.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.webm">Download --main.webm (60MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--notes.org">Download --notes.org</a></li>""" title="""Emacs 30 Highlights""" url="""/2024/talks/emacs30""" speakers="""Philip Kaludercic""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""emacs30""" note="""captioned, video posted, Q&A posted, video: 24:55, answers: 23:36"""]]
[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.webm">Download --main.webm (21MB)</a></li>""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note="""captioned, video posted, video: 11:21"""]]
diff --git a/2024/schedule-image.md b/2024/schedule-image.md
index 43ef8bb4..66b3f670 100644
--- a/2024/schedule-image.md
+++ b/2024/schedule-image.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-11:00 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(185,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:20-11:30 Colour your Emacs with ease</title><rect x="219" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: quick install, peer graph, transclusion!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: quick install, peer graph, transclusion!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/maxima" title="Emacs, eev, and Maxima - now!" data-slug="maxima"><title> 3:45- 4:05 Emacs, eev, and Maxima - now!</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">maxima</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title>10:30-11:15 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="141" y="15" opacity="0.8" width="70" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:30-11:45 Fun things with GNU Hyperbole</title><rect x="235" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/open-mic" title="Open mic/pad for quick updates etc." data-slug="open-mic"><title> 1:00- 1:30 Open mic/pad for quick updates etc.</title><rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(421,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">open-mic</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:40- 1:55 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(460,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:15- 2:35 Literate programming for the 21st Century</title><rect x="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:00- 3:10 An example of a cohesive student workflow in Emacs</title><rect x="564" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(577,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:20- 3:40 So you want to be an Emacs-fluencer?</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-11:00 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(185,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:20-11:30 Colour your Emacs with ease</title><rect x="219" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: quick install, peer graph, transclusion!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: quick install, peer graph, transclusion!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/maxima" title="Emacs, eev, and Maxima - now!" data-slug="maxima"><title> 3:45- 4:05 Emacs, eev, and Maxima - now!</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">maxima</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title>10:30-11:15 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="141" y="15" opacity="0.8" width="70" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:30-11:45 Fun things with GNU Hyperbole</title><rect x="235" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/open-mic" title="Open mic/pad for quick updates etc." data-slug="open-mic"><title> 1:00- 1:30 Open mic/pad for quick updates etc.</title><rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(421,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">open-mic</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:40- 1:55 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(460,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:15- 2:35 Literate programming for the 21st Century</title><rect x="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:00- 3:10 An example of a cohesive student workflow in Emacs</title><rect x="564" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(577,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:20- 3:40 So you want to be an Emacs-fluencer?</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div> \ No newline at end of file
diff --git a/2024/talks/hyperdrive.md b/2024/talks/hyperdrive.md
index 83843130..e0247b50 100644
--- a/2024/talks/hyperdrive.md
+++ b/2024/talks/hyperdrive.md
@@ -101,12 +101,14 @@ See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in
Adam Porter (github alphapapa).
- Q:What is something surprising about how you or somebody else that
you didn't expect from using the hyperdrive network?
- - A: 
+ - A: Don't quite understand the question. I think the surprising use case for it is to be able to share say a bunch of Org files, link between those Org files... You could use transclusion to to have a discussion and then you could collaborate on on projects using this sort of asynchronous communication using hyperdrive files. If there's a more specific question, I'm happy to answer it better.
+
- Q: You mentioned streaming audio and video - could you confirm that
this is in reference to consumption of media, and not broadcasting
of it - right?
- A: Since the network is peer-to-peer, audio and video is
streamed between peers.
+ - So this is all shared on a peer-to-peer network. So if I have a file on my machine that's a video or audio and I'm advertising on the network that people can download it from me, then if you want to download that video and I have a copy of it, when you click on that video in your hyperdrive, not only does it download it from me, but also you can stream it so you don't have to download the whole thing before watching it. So it is both in terms of serving the file and downloading the file.
## Notes
diff --git a/2024/talks/project.md b/2024/talks/project.md
index 7a17f28e..7aa44df8 100644
--- a/2024/talks/project.md
+++ b/2024/talks/project.md
@@ -60,118 +60,112 @@ He will discuss the features of the writing log and the joys of editing it in Or
## Questions and answers
-- Q: what does 0573 means in your init. file name?
- - A: Index number used to "name"/ describe a project.  My
- project folders in my home directory are of the format
- ####stubOfTheProjectsFullName. Maybe i will describe my project
- numbering system in a future talk. It helps enormously in
- navigating between projects and stayting organized. I store the
- project ID number and the folder name in a sqlite database that
- I pop open with a bash alias to the DB Browser for SQlite. I
- also use the Project ID to track time spent on each project to
- the nearest 15 minues increment. I do this time tracking once
- every several hours 2-4 times a day. If I cannot remember what I
- was doing, nothing is recorded. This is important for keeping
- the data accurate. This practive is a pain but the data are
- valuable for self-assessments and annual reports.
-- Q: <gringo\> What does Zettelkasten mean?
- - A: <vidianos\> It's a notetaking method <Neil\>Useful
- overview at
- [https://zettelkasten.de/introduction/](https://zettelkasten.de/introduction/)
- - A: Pls cf.
- [https://en.wikipedia.org/wiki/Zettelkasten](https://en.wikipedia.org/wiki/Zettelkasten)
- An augmented org-roam is found in the zetteldesk.el project by
- Vidianos
- [https://github.com/Vidianos-Giannitsis/zetteldesk.el](https://github.com/Vidianos-Giannitsis/zetteldesk.el).
- See  his talk from EmacsConf 2022: 
- [https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s](https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s)
- - A: A great resource is Sönke Ahrens's "How to Take Smart
- Notes" (to get you thinking about the progressive evolution of
- your note taking; and a solid walk through of Zettlekasten in
- practice/implementation) . There also is a German edition of the
- book, it's called: "Das Zettelkasten-Prinzip". The book
- "Antinet Zettelkasten" by Scott Scheper clarifies several
- misconceptions about the Zettelkasten Method (see chapter 3). He
- spent months replicating the analog version that Luhman used and
- gained a number of important insights. I have seen the method
- applied in ways that were never intended. I think that these
- vairant approaches are innovative and can enhance productivity,
- but they can cause some confusion. The ultimate source is the
- [https://niklas-luhmann-archiv.de/](https://niklas-luhmann-archiv.de/).
- - Smart notes are linked to one another. They make up a kind of
- hypertext, similar to a wiki, as a whole.
- - Org-Roam and Denote are two implementations that can support the
- slipcase; backlinks are important (and also/perhaps a
- consideration of the hierarchy)
-- Q: How many papers are you writing at the same time?
- - A: Working on 10--15/y, publishing 1--8/y
- - On a given day, 2 papers/day usually, sometimes up to 5
- papers/day
-- Q: How you capture those ideas when when you are away from Emacs?+3
- - A: Digital recorder for recording thoughts, especially during
- daily commute. I also mentioned caputing thoughts in
- 750words.com. I was an early user (May 2012) and was
- grandfathered in with a free subscription for life. This is why
- I am reluctant to give it up. I started learning to use Emacs
- in 2000. I have not yet moved all of my workflow to Emacs, but I
- am getting there. The other site that I use when I exceed the
- 5000 word limit at 750words.com is WriteHoney
- [https://app.writehoney.com/write](https://app.writehoney.com/write).
- - Whisper AI to transcribe the recordings. See this site for the
- post transcription scripts that I apply to clean up the text
- before I see the trasncript:
- [https://github.com/MooersLab/bash-whisper-transcription](https://github.com/MooersLab/bash-whisper-transcription).
- I also jot down notes but not so much after I started using the
- digitial voice recorder (DVR). Dragging the audo file to the
- folder where I do the transcriptions does take a wee bit of time
- so I try to be judicious about selecting when I turn on the DVR.
- I should probably write a Elisp function to transcribe the audio
- recording from the DVR, save the transcript, and delete the
- audio recording so that I can streamline this process. There is
- alawys a way to do things more efficiently with Emacs!
- - sachac: oooh, I can recommend getting an inexpensive lapel mic if you don't already have one. I'm also experimenting with using keywords to organize my audio braindumps.
-- Q: What if an ideas does not belong to any current working manuscript?
- - A: Sandbox area in a log file. The Sandbox area is called
- "Future additions and tangents" in the template log file and
- is also used to draft sections of the paper that I am uncertain
- that I will retain.
- - If not related, kept in an external diary
-- Q: It looks like you have daily log per project, what do you think
- about just using single daily notes and cross referencing different
- projects?
- - A: I have \> 800 projects per year in 10 categories. Several
- years ago, I made org files for each category with 1000
- headlines, but this proved to be too unwieldy for me at the time
- as a noivice org-mode user. The log files for the manuscript
- projects wind up with 50-100 pages of content each so the
- single-threaded nature of Emacs hampers scrolling through such
- huge org files. In addition, I want to keep all other projects
- out of sight and mind while focused on the project at hand.
-- Q: <gringo\> If there were one habit from your process (referencing your extensive flow chart) that you want active learners/professional researchers to adopt, which would it be and why?
- - Keeping a daily diary is essential for overcoming the fears of
- forgetting and losing momentum. These fears are the maiin
- barriers to switching between projects on a given day. The
- in-grained preference is to do binge writing, which I still
- succumb to doing sometimes, but I am trying to avoid binge
- writing with this system.
-- Q: <gs-101\> I see that you use checkboxes for tasks. Did you know
- you can format headings to support tracking them? Like this: TODO
- Heading \[0/4\]
- - A: Yes, I convert some of my most important todo items into
- \*\*\* TODO headline to be picked up by arg agenda. I add the
- writing-project log file to the list of org files that org
- agenda searches. I use a Elisp function to add new \*\*\*TODO
- items to the list when they come to mind. I will post this
- function shortly on the AAAreadme of
- [https://github.com/MooersLab/writingLogTemplateInOrg](https://github.com/MooersLab/writingLogTemplateInOrg).
- This eliminates the need to refile the idea, which I am too
- undisciplined to do.
-- Q: I actually love this one! But it creates as much separated log as
- there is project. You limit yourself to work only on how many
- project per day? How do you explore them back (if you ever)?  I
- assume your org files is growing exponantially over time. You said
- about "valuable when receiving critiques?" (Donovan)  
-- A: Thank you for the opportunity to make clarifications. I try to
+- Q: what does 0573 means in your init. file name?
+ - A: Index number used to "name"/ describe a project. My
+ project folders in my home directory are of the format
+ ####stubOfTheProjectsFullName. Maybe i will describe my project
+ numbering system in a future talk. It helps enormously in
+ navigating between projects and stayting organized. I store the
+ project ID number and the folder name in a sqlite database that
+ I pop open with a bash alias to the DB Browser for SQlite. I
+ also use the Project ID to track time spent on each project to
+ the nearest 15 minues increment. I do this time tracking once
+ every several hours 2-4 times a day. If I cannot remember what I
+ was doing, nothing is recorded. This is important for keeping
+ the data accurate. This practive is a pain but the data are
+ valuable for self-assessments and annual reports.
+- Q: <gringo\> What does Zettelkasten mean?
+ - A: <vidianos\> It's a notetaking method <Neil\>Useful
+ overview at
+ [https://zettelkasten.de/introduction/](https://zettelkasten.de/introduction/)
+ - A: Pls cf.
+ [https://en.wikipedia.org/wiki/Zettelkasten](https://en.wikipedia.org/wiki/Zettelkasten)
+ An augmented org-roam is found in the zetteldesk.el project by Vidianos [https://github.com/Vidianos-Giannitsis/zetteldesk.el](https://github.com/Vidianos-Giannitsis/zetteldesk.el). See  his talk from EmacsConf 2022: 
+ [https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s](https://www.youtube.com/watch?v=dJ859kiFRLg&t=0s)
+ - A: A great resource is Sönke Ahrens's "How to Take Smart
+ Notes" (to get you thinking about the progressive evolution of
+ your note taking; and a solid walk through of Zettlekasten in
+ practice/implementation) . There also is a German edition of the
+ book, it's called: "Das Zettelkasten-Prinzip". The book
+ "Antinet Zettelkasten" by Scott Scheper clarifies several
+ misconceptions about the Zettelkasten Method (see chapter 3). He
+ spent months replicating the analog version that Luhman used and
+ gained a number of important insights. I have seen the method
+ applied in ways that were never intended. I think that these
+ vairant approaches are innovative and can enhance productivity,
+ but they can cause some confusion. The ultimate source is the
+ [https://niklas-luhmann-archiv.de/](https://niklas-luhmann-archiv.de/).
+ - Smart notes are linked to one another. They make up a kind of
+ hypertext, similar to a wiki, as a whole.
+ - Org-Roam and Denote are two implementations that can support the
+ slipcase; backlinks are important (and also/perhaps a
+ consideration of the hierarchy)
+- Q: How many papers are you writing at the same time?
+ - A: Working on 10--15/y, publishing 1--8/y
+ - On a given day, 2 papers/day usually, sometimes up to 5
+ papers/day
+- Q: How you capture those ideas when when you are away from Emacs?+3
+ - A: Digital recorder for recording thoughts, especially during
+ daily commute. I also mentioned caputing thoughts in
+ 750words.com. I was an early user (May 2012) and was
+ grandfathered in with a free subscription for life. This is why
+ I am reluctant to give it up. I started learning to use Emacs
+ in 2000. I have not yet moved all of my workflow to Emacs, but I
+ am getting there. The other site that I use when I exceed the
+ 5000 word limit at 750words.com is WriteHoney
+ [https://app.writehoney.com/write](https://app.writehoney.com/write).
+ - Whisper AI to transcribe the recordings. See this site for the
+ post transcription scripts that I apply to clean up the text before I see the transcript: [https://github.com/MooersLab/bash-whisper-transcription](https://github.com/MooersLab/bash-whisper-transcription).
+ I also jot down notes but not so much after I started using the
+ digitial voice recorder (DVR). Dragging the audio file to the
+ folder where I do the transcriptions does take a wee bit of time
+ so I try to be judicious about selecting when I turn on the DVR.
+ I should probably write a Elisp function to transcribe the audio
+ recording from the DVR, save the transcript, and delete the
+ audio recording so that I can streamline this process. There is
+ always a way to do things more efficiently with Emacs!
+ - sachac: oooh, I can recommend getting an inexpensive lapel mic if you don't already have one. I'm also experimenting with using keywords to organize my audio braindumps.
+- Q: What if an ideas does not belong to any current working manuscript?
+ - A: Sandbox area in a log file. The Sandbox area is called
+ "Future additions and tangents" in the template log file and
+ is also used to draft sections of the paper that I am uncertain
+ that I will retain.
+ - If not related, kept in an external diary
+- Q: It looks like you have daily log per project, what do you think
+ about just using single daily notes and cross referencing different
+ projects?
+ - A: I have \> 800 projects per year in 10 categories. Several
+ years ago, I made org files for each category with 1000
+ headlines, but this proved to be too unwieldy for me at the time
+ as a noivice org-mode user. The log files for the manuscript
+ projects wind up with 50-100 pages of content each so the
+ single-threaded nature of Emacs hampers scrolling through such
+ huge org files. In addition, I want to keep all other projects
+ out of sight and mind while focused on the project at hand.
+- Q: If there were one habit from your process (referencing your extensive flow chart) that you want active learners/professional researchers to adopt, which would it be and why?
+ - Keeping a daily diary is essential for overcoming the fears of
+ forgetting and losing momentum. These fears are the maiin
+ barriers to switching between projects on a given day. The
+ in-grained preference is to do binge writing, which I still
+ succumb to doing sometimes, but I am trying to avoid binge
+ writing with this system.
+- Q: I see that you use checkboxes for tasks. Did you know
+ you can format headings to support tracking them? Like this: TODO
+ Heading \[0/4\]
+ - A: Yes, I convert some of my most important todo items into
+ \*\*\* TODO headline to be picked up by arg agenda. I add the
+ writing-project log file to the list of org files that org
+ agenda searches. I use a Elisp function to add new \*\*\*TODO
+ items to the list when they come to mind. I will post this
+ function shortly on the AAAreadme of [https://github.com/MooersLab/writingLogTemplateInOrg](https://github.com/MooersLab/writingLogTemplateInOrg).
+ This eliminates the need to refile the idea, which I am too
+ undisciplined to do.
+- Q: I actually love this one! But it creates as much separated log as
+ there is project. You limit yourself to work only on how many
+ project per day? How do you explore them back (if you ever)?  I
+ assume your org files is growing exponantially over time. You said
+ about "valuable when receiving critiques?" (Donovan)  
+ - A: Thank you for the opportunity to make clarifications. I try to
work on two writing projects a day on average terms of doing
generative writing tasks. Yes, there is one writing-project log file
per project. They tend to grow to a length of 50-100 pages by the
@@ -186,41 +180,21 @@ He will discuss the features of the writing log and the joys of editing it in Or
history of decisions in the daily log is invaluable for responding
to probing questions by reviewers about why we decided to do certain
procedures.
-- <\_viz\> Q: Sorry, not really related to the talk's topic but can
- you share the pymol project that shown in the writing log slide
- earlier in the talk? I am interested in the paper/project.
- - A: Thank you for your interest on the PyMOL project. I have not
- published that particular project yet, but a number of related
- PyMOL projects are on my GitHub site. The most popular is
- MooersLab/PyMOLshortcuts
- [https://github.com/MooersLab/pymolshortcuts](https://github.com/MooersLab/pymolshortcuts).
- The associated paper is here
- [https://onlinelibrary.wiley.com/doi/10.1002/pro.3781](https://onlinelibrary.wiley.com/doi/10.1002/pro.3781).
- I have run PyMOL in Jupyter
- [https://github.com/MooersLab/jupyterlabpymolpysnips](https://github.com/MooersLab/jupyterlabpymolpysnips) 
- [https://pubmed.ncbi.nlm.nih.gov/33967632/](https://pubmed.ncbi.nlm.nih.gov/33967632/)
- ,  Colab  
- [https://github.com/MooersLab/colabOpenSourcePyMOLpySnips](https://github.com/MooersLab/colabOpenSourcePyMOLpySnips) 
- [https://proceedings.scipy.org/articles/majora-1b6fd038-002](https://proceedings.scipy.org/articles/majora-1b6fd038-002),
- RStudio 
- [https://github.com/MooersLab/rstudiopymolpysnips](https://github.com/MooersLab/rstudiopymolpysnips),
- and Org-mode
- [https://github.com/MooersLab/orgpymolpysnips](https://github.com/MooersLab/orgpymolpysnips).
- I gave a talk about the later at emacsconf 2021
- [https://emacsconf.org/2021/talks/molecular/](https://emacsconf.org/2021/talks/molecular/). 
-- <jsiegel62\> Q: Have you tweaked your Emacs configuration at all
- \-- with cus keybindings, etc \-- to support the process you
- demonstrated? Thank for the good question because my talk was
- focused on a template org document. I use org-ref heavily. I use it
- to add Bibtex entries, download PDFs of research articles by their
- DOIs, and rename them with the citekey. I made several Elisp
- functions that do minor tasks to support my worflow. I will post
- them github. 
-- <PlasmaStrike\> I like to Seperate my ZettelKasten and GTD  with
- Daily and global, Zettelkasten daily would be a journal, The reason
- to keep them seperated is daily is to start with a black sheet and
- can be thrown ignored if not done well, If good enough goes into
- zettel etc. That is a good suggestion. Thank you for sharing it.
+- Q: Sorry, not really related to the talk's topic but can
+ you share the pymol project that shown in the writing log slide
+ earlier in the talk? I am interested in the paper/project.
+ - A: Thank you for your interest on the PyMOL project. I have not published that particular project yet, but a number of related PyMOL projects are on my GitHub site. The most popular is MooersLab/PyMOLshortcuts [https://github.com/MooersLab/pymolshortcuts](https://github.com/MooersLab/pymolshortcuts). The associated paper is here [https://onlinelibrary.wiley.com/doi/10.1002/pro.3781](https://onlinelibrary.wiley.com/doi/10.1002/pro.3781). I have run PyMOL in Jupyter [https://github.com/MooersLab/jupyterlabpymolpysnips](https://github.com/MooersLab/jupyterlabpymolpysnips)  [https://pubmed.ncbi.nlm.nih.gov/33967632/](https://pubmed.ncbi.nlm.nih.gov/33967632/) ,  Colab   [https://github.com/MooersLab/colabOpenSourcePyMOLpySnips](https://github.com/MooersLab/colabOpenSourcePyMOLpySnips)  [https://proceedings.scipy.org/articles/majora-1b6fd038-002](https://proceedings.scipy.org/articles/majora-1b6fd038-002), RStudio  [https://github.com/MooersLab/rstudiopymolpysnips](https://github.com/MooersLab/rstudiopymolpysnips), and Org-mode [https://github.com/MooersLab/orgpymolpysnips](https://github.com/MooersLab/orgpymolpysnips). I gave a talk about the later at emacsconf 2021
+ [https://emacsconf.org/2021/talks/molecular/](https://emacsconf.org/2021/talks/molecular/). 
+- Q: Have you tweaked your Emacs configuration at all
+ \-- with cus keybindings, etc \-- to support the process you
+ demonstrated?
+ - A: Thank for the good question because my talk was focused on a template org document. I use org-ref heavily. I use it to add Bibtex entries, download PDFs of research articles by their DOIs, and rename them with the citekey. I made several Elisp functions that do minor tasks to support my worflow. I will post them github. 
+- I like to separate my ZettelKasten and GTD  with
+ daily and global, Zettelkasten daily would be a journal. The reason
+ to keep them seperated is daily is to start with a black sheet and
+ can be thrown ignored if not done well, If good enough goes into
+ zettel etc.
+ - Blaine: That is a good suggestion. Thank you for sharing it.
## Notes
@@ -229,57 +203,47 @@ He will discuss the features of the writing log and the joys of editing it in Or
- Hello from Madagascar :) Hello from Brazil (there's an old song
about madagascar:
[https://www.youtube.com/watch?v=k206JIkXJbk](https://www.youtube.com/watch?v=k206JIkXJbk))
- :) Hello from Uganda Hello from ISS\^\^ The International Space
- Station? 0_0 Hello from US Hello world and outer space!!!!
+ :) Hello from Uganda Hello from ISS\^\^ The International Space Station? 0_0 Hello from US
+ - Blaine: Hello world and outer space!!!
- It's so awesome seeing these talks that are not strictly software
- development relatedThank you!
-- It's amazing to see how much people do with emacs Thank you!
+ development related
+ - Thank you!
+- It's amazing to see how much people do with emacs
+ - Thank you!
- \[MooersLab/writingLogTemplateInOrg: Template for
writing.log in
org-mode\]([https://github.com/MooersLab/writingLogTemplateInOrg](https://github.com/MooersLab/writingLogTemplateInOrg))
- it's really impressive. it also makes me realise that
- people are a lot more organised than could ever be. I have been
- studying time management for decades; it is still a stuggle for me.
+ people are a lot more organised than could ever be.
+ - Blaine: I have been studying time management for decades; it is still a stuggle for me.
- That chart looks complicated. It can get pretty complicated
as its deeply personal and has seen several revisions.  (Sounds like
- the chart is descriptive and not prescriptive) Right, is just
- descriptive. Yes, that concept map it a bit overwhelming. I plann to
- make a slimmed down version. Thank you for the feedback.
+ the chart is descriptive and not prescriptive)
+ - Blaine: Right, is just descriptive. Yes, that concept map it a bit overwhelming. I plann to make a slimmed down version. Thank you for the feedback.
- I love the fact. that "shower" is called out as an
Ideation "feed" in the writing process chart :-) Takes shower
- thoughts to a whole new level...It is a feature of our insane 24-7
- culture.
+ thoughts to a whole new level...
+ - Blaine: It is a feature of our insane 24-7 culture.
- I missed that, but that's kinda cute. (Kinda true too)
- I do love the "Shower" element in that diagram.
- Wow didnt notice the Shower element
- The man is trying to treat cancer, I expected nothing
- less complicated than this gg Thank you! Yes, our work has added
- years of additional life to many cancer patients. 
+ less complicated than this gg
+ - Blaine: Thank you! Yes, our work has added years of additional life to many cancer patients.
- There is a package \-- I think it is 'org-tracktable
\-- that records word counts by session in an inline block within
org files 
[https://github.com/tty-tourist/org-tracktable](https://github.com/tty-tourist/org-tracktable)
- i will check it out. Thank you for the link! My time tracking
- databse has 10,848 rows after 2.5 years. It may be over 100,000 rows
- long by the time that I expire. I decided that a org-mode table
- would be not appropriate. I adandoned the Google Sheet Workbook over
- a year ago because it is reduant with entries in my timespent.db. I
- did not like the duplicated effort.  I am now testing the use of a
- heat map for a similar writing accountability purpose. It tallies my
- writing effort per day from my timespent.db file. I enter \`hmj\`
- for Heat Map of Journal article writing to effort.  This is a long
- bash alias to to script and commands that generate the heatmap and
- post it on Github. The GitHub repo for the script is here
- [https://github.com/MooersLab/writing-time-spent-heatmap](https://github.com/MooersLab/writing-time-spent-heatmap).
- I have similar aliases for makng heatmps for grant writing,
- teaching, and service, but my daily focus is on article writing.
+ - Blaine: I will check it out. Thank you for the link! My time tracking database has 10,848 rows after 2.5 years. It may be over 100,000 rows long by the time that I expire. I decided that a org-mode table would be not appropriate. I adandoned the Google Sheet Workbook over a year ago because it is redundant with entries in my timespent.db. I did not like the duplicated effort.  I am now testing the use of a heat map for a similar writing accountability purpose. It tallies my writing effort per day from my timespent.db file. I enter \`hmj\` for Heat Map of Journal article writing to effort.  This is a long bash alias to to script and commands that generate the heatmap and post it on Github. The GitHub repo for the script is here [https://github.com/MooersLab/writing-time-spent-heatmap](https://github.com/MooersLab/writing-time-spent-heatmap). I have similar aliases for makng heatamps for grant writing, teaching, and service, but my daily focus is on article writing.
- oohhh using a drawer for stashing these details away is a
- nice idea! Thank you! Org-mode has so many niffty feature like
- drawers.
+ nice idea!
+ - Blaine: Thank you! Org-mode has so many nifty feature like drawers.
- I'm impressed by how systematic he is about everything.
+ - Blaine: Thank you!
- I'm thankful for people like the presenter that dedicate
so much of their time to researching treatments for the horrible
- diseases that people suffer. Thank you!
+ diseases that people suffer.
+ - Blaine: Thank you!
- I feel like that writing log can be turned into an emacs mode. the spreadsheet that was shown earlier
- Also noticed that he uses Emacs without any themes.
- Evidence that the default theme is sufficient for some. Black on white, however uncomfortable to me, really is what most people want.
diff --git a/captioning.md b/captioning.md
index 895e732b..9a85080c 100644
--- a/captioning.md
+++ b/captioning.md
@@ -7,12 +7,12 @@ easier to understand and search.
If you see a talk that you'd like to caption, feel free to download it
and start working on it with your favourite subtitle editor. Let me
know what you pick by e-mailing me at <sacha@sachachua.com> so that I
-can update the index and try to avoid duplication of work. [Find talks that need captions here](https://emacsconf.org/help_with_main_captions). You can also help by [adding chapter markers to Q&A sessions](https://emacsconf.org/help_with_chapter_markers).
+can update the backstage index and try to avoid duplication of work. [Find talks that need captions here](https://emacsconf.org/help_with_main_captions). You can also help by [adding chapter markers to Q&A sessions](https://emacsconf.org/help_with_chapter_markers).
You're welcome to work with captions using your favourite tool. We've
been using <https://github.com/sachac/subed> to caption things as VTT
or SRT in Emacs, often starting with autogenerated captions from
-OpenAI Whisper (the .vtt).
+OpenAI Whisper or WhisperX (the .vtt file backstage).
We'll be posting VTT files so that they can be included by the HTML5
video player (demo: <https://emacsconf.org/2021/talks/news/>), so if
@@ -26,59 +26,13 @@ You can e-mail me the subtitles when you're done, and then I can merge
it into the video.
You might find it easier to start with the autogenerated captions
-and then refer to any resources provided by the speaker in order to
+and then refer to the video or any resources provided by the speaker in order to
figure out spelling. Sometimes speakers provide pretty complete
scripts, which is great, but they also tend to add extra words.
-# Reflowing the text
-
-First, let's start with reflowing. We like to have one line of
-captions about 60 characters long so that they'll display nicely in
-the stream. If the captions haven't been reflowed yet, you can reflow
-the captions at natural pausing points (ex: phrases) so that they're
-displayed nicely. You don't have to worry too much about getting the
-timestamps precisely.
-
-For example, instead of:
-
-- so i'm going to talk today about a
-- fun rewrite i did of uh of the bindat
-- package
-
-you can edit it to be more like:
-
-- So I'm going to talk today
-- about a fun rewrite I did
-- of the bindat package.
-
-You probably don't need to do this step if you're working with the VTT
-files in the backstage area, since we try to reflow things before
-people edit them, but we thought we'd demonstrate it in case people
-are curious.
-
-We start with the text file that OpenAI Whisper generates. We set my
-`fill-column` to 50 and use `display-fill-column-indicator-mode` to
-give myself a goal column. A little over is fine too. Then we use
-`emacsconf-reflow` from the
-[emacsconf-el](git.emacsconf.org/emacsconf-el/) repository to quickly
-split up the text into captions by looking for where we want to add
-newlines and then typing the word or words. We type in ' to join lines.
-Sometimes, if it splits at the wrong one, we just undo it and edit it
-normally.
-
-It took about 4 minutes to reflow John Wiegley's 5-minute presentation.
-
-<video src="https://media.emacsconf.org/reflowing.webm" controls=""></video>
-
-The next step is to align it with
-[aeneas](https://github.com/readbeyond/aeneas) to get the timestamps
-for each line of text. `subed-align` from the subed package helps with that.
-
-<video src="https://media.emacsconf.org/alignment.webm" controls=""></video>
-
# Edit the VTT to fix misrecognized words
-The next step is to edit these subtitles. VTT files are plain text, so
+The first step is to edit misrecognized words. VTT files are plain text, so
you can edit them with regular `text-mode` if you want to. If you're
editing subtitles within Emacs,
[subed](https://github.com/sachac/subed) can conveniently synchronize
@@ -88,7 +42,7 @@ filename, but if it can't find it, you can use `C-c C-v`
(`subed-mpv-find-media`) to play a file or `C-c C-u` to play a URL.
Look for misrecognized words and edit them. We also like to change
-things to follow Emacs keybinding conventions. We sometimes spell out
+things to follow Emacs keybinding conventions (C-c instead of Control C). We sometimes spell out
acronyms on first use or add extra information in brackets. The
captions will be used in a transcript as well, so you can add
punctuation, remove filler words, and try to make it read better.
@@ -98,23 +52,58 @@ use `M-j` (`subed-jump-to-current-subtitle`) to jump to the caption if
I'm not already on it, listen for the right spot, and maybe use
`M-SPC` to toggle playback. Use `M-.` (`subed-split-subtitle`) to
split a caption at the current MPV playing position and `M-m`
-(`subed-merge-with-next`) to merge a subtitle with the next one. Times
-don't need to be very precise. If you don't understand a word or
-phrase, add two question marks (`[??]`) and move on. We'll ask the
-speakers to review the subtitles and can sort that out then.
+(`subed-merge-with-next`) to merge a subtitle with the next one.
+
+If you don't understand a word or phrase, add two
+question marks (`[??]`) and move on. We'll ask the
+speakers to review the subtitles and can sort that
+out then.
+
+If there are multiple speakers, you can indicate switches between speakers
+with a `[speaker-name]:` tag, or just leave it plain.
-If there are multiple speakers, indicate switches between speakers
-with a `[speaker-name]:` tag.
<video src="https://media.emacsconf.org/editing.webm" controls=""></video>
Once you've gotten the hang of things, it might take between 1x to 4x
the video time to edit captions.
+# Subtitle timing
+
+Times don't need to be very precise. If you notice
+that the times are way out of whack and it's
+getting in the way of your subtitling, we can
+adjust the times using the [aeneas forced
+alignment tool](https://www.readbeyond.it/aeneas/
+and `subed-align`).
+
+## Splitting and merging subtitles
+
+If you want to split and merge subtitles, you can
+use `M-.` (`subed-split-subtitle`) and `M-m`
+(`subed-merge-dwim`). If the playback position is
+in the current subtitle, splitting will use the
+playback position. If it isn't, it will guess an
+appropriate time based on characters per second
+for the current subtitle.
+
+## Splitting with word-level timing data
+
+If there is a `.json` or `.srv2` file with
+word-level timing data, you can load it with
+`subed-word-data-load-from-file` from
+`subed-word-data.el` in the subed package. You can
+then split with the usual `M-.`
+(`subed-split-subtitle`), and it should use
+word-level timestamps when available.
+
# Playing your subtitles together with the video
-To load a specific subtitle file in MPV, use the `--sub-file=` or
-`--sub-files=` command-line argument.
+MPV should automatically load subtitle files if
+they're in the same directory as the video. To
+load a specific subtitle file in MPV, you can use
+the `--sub-file=` or `--sub-files=` command-line
+argument.
If you're using subed, the video should autoplay if it's named the
same as your subtitle file. If not, you can use `C-c C-v`
@@ -125,14 +114,6 @@ point with `C-c ,` (`subed-toggle-sync-player-to-point`), and
synchronizing point to player with `C-c .`
(`subed-toggle-sync-point-to-player`).
-# Using word-level timing data
-
-If there is a `.srv2` file with word-level timing data, you can load
-it with `subed-word-data-load-from-file` from `subed-word-data.el` in
-the subed package. You can then split with the usual `M-.`
-(`subed-split-subtitle`), and it should use word-level timestamps when
-available.
-
# Starting from a script
Some talks don't have autogenerated captions, or you may prefer to
@@ -148,29 +129,35 @@ If the speaker provided a script, I usually put the script under this heading.
```
If you're using subed, you can move to the point to a good stopping
-point for a phrase, toggle playing with `M-SPC`, and then `M-.`
+point for a phrase, use `M-SPC` to toggle pausing `M-.`
(`subed-split-subtitle`) when the player reaches that point. If it's
too fast, use `M-j` to repeat the current subtitle.
# Starting from scratch
-You can send us a text file with just the text transcript in it and
-not worry about the timestamps. We can figure out the timing using
+One option is to send us a text file with just the text transcript in it
+and not worry about the timestamps. We can figure out the timing using
[aeneas for forced alignment](https://www.readbeyond.it/aeneas/).
-If you want to try timing as you go, you might find it easier to start
-by making a VTT file with one subtitle spanning the whole video, like
-this:
+If you want to try timing as you go, you might
+find it easier to start by making a VTT file with
+one subtitle spanning the whole video (either
+using the video duration or a very large
+duration), like this:
```text
WEBVTT
-00:00:00.000 -> 00:39:07.000
+00:00:00.000 -> 24:00:00.000
```
-Then start playback and type, using `M-.` (`subed-split-subtitle`) to
-split after a reasonable length for a subtitle. If it's too fast, use
-`M-j` to repeat the current subtitle.
+Use `C-c C-p` (`subed-toggle-pause-while-typing`)
+to automatically pause when typing. Then start
+playback with `M-SPC` and type, using `M-.`
+(`subed-split-subtitle`) to split after a
+reasonable length for a subtitle. If it's too
+fast, use `M-j` to repeat the current subtitle or
+adjust `subed-mpv-plackback-speed`.
# Chapter markers
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index 23c34fab..13d55ca7 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -361,10 +361,15 @@ Indexing
- emacsconf-subed-make-chapter-file-based-on-comments
- change status to ~TO_CAPTION_QA~
-Also copy the
-*** Process the lessons learned
+Also copy the YouTube comments and IRC comments
+emacsconf-extract-irc-anonymize-log
+
+*** Send thank-you emails to the speakers
*** Write a report
Sample: https://emacsconf.org/2023/report/
+*** Notify emacs-discuss that the Q&A is up
+*** Send thank-you emails to the volunteers
+*** Process the lessons learned
* General infrastructure
** Linode instance sizes
*** Production