From 7de533575eaee26d857b41ceb21680ec56d3e064 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 26 Dec 2023 21:01:37 -0500 Subject: add transcript links --- ...kandfeel-without-pain--pedro-a-aranda--main.vtt | 755 ++++++++ ...aling--matthew-jorgensen-plasmastrike--main.vtt | 353 ++++ ...rowser-in-a-buffer--michael-bauer--original.vtt | 1973 ++++++++++++++++++++ 2023/talks/flat.md | 7 + 2023/talks/koutline.md | 7 + 2023/talks/poltys.md | 7 + 6 files changed, 3102 insertions(+) create mode 100644 2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt create mode 100644 2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt create mode 100644 2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt (limited to '2023') diff --git a/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt b/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt new file mode 100644 index 00000000..5d17e1de --- /dev/null +++ b/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt @@ -0,0 +1,755 @@ +WEBVTT + + +00:00:01.880 --> 00:00:02.380 +That's how I came into this. + +00:00:10.120 --> 00:00:10.480 +Finally, the next big thing was starting + +00:00:16.100 --> 00:00:16.600 +2005, I went fully Linux and then for Mac OS, + +00:00:19.540 --> 00:00:20.040 +and I switched to vanilla self-compiled + +00:00:25.279 --> 00:00:25.779 +versions of Emacs. So what do I want to show? + +00:00:30.540 --> 00:00:30.920 +Couple of time ago in the development list + +00:00:34.540 --> 00:00:34.760 +there was a short exchange about the nil and + +00:00:38.400 --> 00:00:38.900 +the flood button, flood button button styles, + +00:00:42.480 --> 00:00:42.700 +saying that it was equivalent and they are + +00:00:45.480 --> 00:00:45.980 +not. So instead of starting a Flame Wars, + +00:00:49.220 --> 00:00:49.720 +I thought it was better to go and publicize + +00:00:54.520 --> 00:00:55.020 +the goodies you get with Flood Button. + +00:00:57.260 --> 00:00:57.440 +And this is what I'm going to be showing you + +00:01:00.140 --> 00:01:00.640 +practically. Why Flood Button? + +00:01:06.020 --> 00:01:06.500 +2005, more or less, I came across DOOM Emacs, + +00:01:07.660 --> 00:01:08.160 +which was nice. And I, + +00:01:12.180 --> 00:01:12.600 +especially I liked the DOOM mode line, + +00:01:13.740 --> 00:01:14.040 +which was, I think it is, + +00:01:15.560 --> 00:01:16.060 +it is, and it was cool at that time. + +00:01:20.280 --> 00:01:20.500 +I was using other themes and it was not that + +00:01:23.760 --> 00:01:24.020 +easy to adapt for these other themes and even + +00:01:26.080 --> 00:01:26.280 +less when you are in an environment with + +00:01:30.060 --> 00:01:30.560 +dynamic themes like mine because I tend to + +00:01:36.500 --> 00:01:36.680 +adapt the theme to the light conditions in my + +00:01:40.520 --> 00:01:40.760 +working place. So what I did at the end was + +00:01:44.540 --> 00:01:44.820 +coming up with a style for faces called flood + +00:01:49.020 --> 00:01:49.140 +button for boxes, called flood button as a + +00:01:52.640 --> 00:01:53.140 +simple way to get modern looking buttons and + +00:01:59.160 --> 00:01:59.380 +bars. So flood button is a face style for + +00:02:02.380 --> 00:02:02.740 +boxes within buttons that automatically sets + +00:02:05.240 --> 00:02:05.440 +the border color to the background of the + +00:02:08.440 --> 00:02:08.880 +face, as opposed to nil, + +00:02:10.440 --> 00:02:10.940 +which uses the foreground. + +00:02:14.380 --> 00:02:14.880 +And this produces a very doom mode line-ish + +00:02:18.400 --> 00:02:18.640 +look and feel. And if you want to know where + +00:02:21.580 --> 00:02:21.780 +I use it, basically for the mode line and I'm + +00:02:24.720 --> 00:02:25.200 +using tab line for a long time now. + +00:02:28.480 --> 00:02:28.680 +So for the mode line and for tab line to + +00:02:35.080 --> 00:02:35.280 +organize my windows. And since an image is + +00:02:37.160 --> 00:02:37.660 +worth more than a thousand words, + +00:02:40.860 --> 00:02:41.160 +I'm just going to stop this and start sharing + +00:02:44.120 --> 00:02:44.360 +a small Emacs environment I have ready for + +00:02:47.020 --> 00:02:47.220 +this talk where I'm going to show you a flat + +00:02:50.220 --> 00:02:50.720 +button in real life. So if you hold with me, + +00:02:56.100 --> 00:02:56.600 +I'm going to share a window. + +00:02:58.840 --> 00:02:59.340 +It's going to be this 1. + +00:03:01.386 --> 00:03:01.430 +Share and share. Here we are. + +00:03:01.780 --> 00:03:02.280 +And share. Here we are. + +00:03:08.040 --> 00:03:08.540 +So this is an Emacs which is recent, + +00:03:13.460 --> 00:03:13.740 +reasonably recent. Nothing especially it was + +00:03:14.900 --> 00:03:15.400 +compiled, it's Emacs 30. + +00:03:18.480 --> 00:03:18.780 +And I think what I have here is something + +00:03:19.900 --> 00:03:20.400 +that I compiled last weekend. + +00:03:24.940 --> 00:03:25.140 +I was tempted to use something compiled this + +00:03:28.080 --> 00:03:28.580 +morning, but I saw a patch by Ellie regarding + +00:03:30.640 --> 00:03:31.140 +something in the faces and I didn't want to + +00:03:34.160 --> 00:03:34.440 +live a too risky life here, + +00:03:36.220 --> 00:03:36.720 +so I'm going to use this. + +00:03:40.740 --> 00:03:41.240 +I'm not starting the ZMAC from the normal + +00:03:44.160 --> 00:03:44.660 +Emacs directory. I have my own, + +00:03:49.440 --> 00:03:49.840 +I have a special customization directory for + +00:03:51.560 --> 00:03:52.060 +Emacs, and this is this 1. + +00:03:57.760 --> 00:03:58.100 +And here what I have is basically an early + +00:04:01.880 --> 00:04:02.220 +init and an init. So the early init, + +00:04:03.680 --> 00:04:03.900 +which is quite stupid as you see, + +00:04:07.800 --> 00:04:08.300 +the only thing that it does is getting rid of + +00:04:10.640 --> 00:04:10.800 +most of the things that I'm not going to be + +00:04:12.740 --> 00:04:13.240 +using here. So I have no toolbar, + +00:04:15.700 --> 00:04:16.200 +no scroll bar, no tool tips. + +00:04:20.560 --> 00:04:20.760 +I don't like global highlighting my line art, + +00:04:21.720 --> 00:04:22.040 +so I'm not using that. + +00:04:22.800 --> 00:04:23.300 +I'm not using dialogues. + +00:04:25.560 --> 00:04:26.060 +And to start up easier, + +00:04:29.440 --> 00:04:29.940 +I don't inhibit, I don't use any startups + +00:04:34.540 --> 00:04:35.020 +screen. So just to make sure that everything + +00:04:41.360 --> 00:04:41.860 +is correct, that everything is as I want, + +00:04:44.840 --> 00:04:45.340 +just to show you my Emacs. + +00:04:49.240 --> 00:04:49.740 +As you see the Emacs 30, + +00:04:53.900 --> 00:04:54.100 +which was built on the 26th of November which + +00:04:55.520 --> 00:04:56.020 +was not very long ago. + +00:04:57.880 --> 00:04:58.380 +And now here comes the real magic. + +00:05:00.540 --> 00:05:01.040 +My init and my init file. + +00:05:04.020 --> 00:05:04.520 +Maybe I go to my init file here. + +00:05:11.880 --> 00:05:12.040 +What I have is just a variable saying that I + +00:05:15.880 --> 00:05:16.380 +want an extra 8 pixels for my mode line. + +00:05:18.240 --> 00:05:18.740 +And I have 2 functions. + +00:05:23.800 --> 00:05:24.300 +1 is modifying the mode line, + +00:05:25.920 --> 00:05:26.420 +both the active and the inactive, + +00:05:32.180 --> 00:05:32.680 +using the nil style with this line width of 8 + +00:05:36.380 --> 00:05:36.600 +pixels and to compare with it what I have + +00:05:39.140 --> 00:05:39.640 +here is another function which will customize + +00:05:42.400 --> 00:05:42.780 +the face for mode line and instead of using + +00:05:44.960 --> 00:05:45.460 +nil I'm using here flat button. + +00:05:49.440 --> 00:05:49.940 +So this is my all the magic that I need. + +00:05:53.240 --> 00:05:53.500 +I'm going to copy that and I'm going to go to + +00:05:57.340 --> 00:05:57.520 +the scratch buffer which is always the best + +00:05:58.780 --> 00:05:59.280 +way of checking these things. + +00:06:05.660 --> 00:06:06.100 +When I normally work with themes, + +00:06:09.320 --> 00:06:09.520 +what I do is if I want to further modify the + +00:06:13.620 --> 00:06:14.120 +themes, I add an advice to load a theme after + +00:06:17.800 --> 00:06:18.040 +the theme is loaded. In this first case, + +00:06:21.280 --> 00:06:21.540 +what I'm going to be doing is adding the nil + +00:06:22.680 --> 00:06:23.180 +sign so that you can see it. + +00:06:30.240 --> 00:06:30.740 +And once this is done, + +00:06:33.000 --> 00:06:33.500 +I'm going to load 1 of the Modo Soprandi + +00:06:42.600 --> 00:06:43.100 +themes, the tinted 1. Here we are. + +00:06:56.400 --> 00:06:56.900 +And as you can see, when I loaded the theme, + +00:07:01.880 --> 00:07:02.160 +what I see here is my mode line with the + +00:07:05.320 --> 00:07:05.580 +x-ray pixels using since I'm using the nil + +00:07:09.520 --> 00:07:09.720 +style it's using the background color and + +00:07:12.620 --> 00:07:13.120 +this gives you this thick black line there + +00:07:17.080 --> 00:07:17.240 +furthermore if you have the inactive line you + +00:07:20.660 --> 00:07:21.040 +see that it is grayed out so it's always + +00:07:22.800 --> 00:07:23.300 +using the foreground color. + +00:07:33.300 --> 00:07:33.480 +So now what I'm going to do is to load the + +00:07:35.200 --> 00:07:35.700 +models we have any which is the dark theme + +00:07:40.080 --> 00:07:40.400 +and this case what you see is the love deal + +00:07:43.220 --> 00:07:43.720 +the lines always using the foreground color + +00:07:49.200 --> 00:07:49.700 +use the Give you an extra 8 pixels of a white + +00:07:53.000 --> 00:07:53.500 +color here, which is not what we really want. + +00:07:58.900 --> 00:07:59.240 +At least not what I wanted to have. + +00:08:01.560 --> 00:08:02.060 +So what I'm going to do now is I'm going to + +00:08:08.940 --> 00:08:09.440 +remove this advice and add the flat style + +00:08:12.800 --> 00:08:13.260 +thing, flat style function, + +00:08:15.480 --> 00:08:15.920 +so that we're going to do the same. + +00:08:18.380 --> 00:08:18.540 +But now when I load the themes I'm going to + +00:08:20.760 --> 00:08:21.040 +have a flat button style for the mode line + +00:08:21.880 --> 00:08:22.380 +and you'll see the difference. + +00:08:29.480 --> 00:08:29.980 +So if I now load Modo Software Andy theme, + +00:08:35.380 --> 00:08:35.640 +tint it, what I get here is as you see I get + +00:08:40.520 --> 00:08:40.760 +a solid mode line which is a bit more which + +00:08:49.240 --> 00:08:49.400 +is wider than the normal mode line And if I + +00:08:53.140 --> 00:08:53.480 +go to the dark theme, I am going to see, + +00:08:55.440 --> 00:08:55.920 +you're going to see that now the theme + +00:08:59.860 --> 00:09:00.360 +changes and I have a mode line which is, + +00:09:02.700 --> 00:09:03.080 +if not the doom mode line, + +00:09:08.260 --> 00:09:08.760 +quite close to the Doom mode line. + +00:09:11.200 --> 00:09:11.700 +Where do I use this? Personally, + +00:09:15.280 --> 00:09:15.580 +I use it for the mode line and for the tab + +00:09:18.960 --> 00:09:19.460 +line, as I've said. And it gives me this + +00:09:27.040 --> 00:09:27.340 +clean themes with thicker mode line and tab + +00:09:33.620 --> 00:09:34.120 +lines which at least in my personal feeling + +00:09:40.160 --> 00:09:40.660 +look quite modern. And this will be my + +00:09:43.820 --> 00:09:44.200 +demonstration. So I'm going to stop sharing + +00:09:46.820 --> 00:09:46.960 +the screen and I'm going to try and see if + +00:09:49.400 --> 00:09:49.900 +there's anything on the on the chat. + +00:09:57.040 --> 00:09:57.360 +And I just wanted to know if there are any + +00:10:01.240 --> 00:10:01.740 +questions. Thank you Pedro. + +00:10:05.000 --> 00:10:05.180 +Yeah We are now into the Q&A portion of the + +00:10:06.420 --> 00:10:06.920 +talk. So if folks have questions, + +00:10:10.080 --> 00:10:10.240 +please post them on IRC or on the pad and + +00:10:11.040 --> 00:10:11.540 +we'll take them up here. + +00:10:25.400 --> 00:10:25.900 +Okay, I see a question here saying, + +00:10:28.520 --> 00:10:28.860 +do you plan to upstream the style into + +00:10:32.580 --> 00:10:32.900 +core-remix? It's part of core-remix since + +00:10:35.800 --> 00:10:36.300 +Emacs 29, so you have it. + +00:10:49.060 --> 00:10:49.540 +How difficult to...I mean, + +00:10:54.320 --> 00:10:54.620 +you already have the flat button style in + +00:10:57.660 --> 00:10:57.940 +Core Remax. And you've seen that the main + +00:11:00.740 --> 00:11:00.980 +thing is, if you want to have a thing like + +00:11:06.660 --> 00:11:06.940 +that, you just have to customize the face. + +00:11:10.920 --> 00:11:11.420 +I don't think it's too difficult to do. + +00:11:13.380 --> 00:11:13.880 +It's adding the style that you want. + +00:11:17.360 --> 00:11:17.860 +So if you want to see it again, + +00:11:20.860 --> 00:11:21.160 +I'm going to go and share the screen once + +00:11:23.980 --> 00:11:24.160 +again and show you the only thing that you + +00:11:31.740 --> 00:11:32.240 +really need to do. And control X 1, + +00:11:34.680 --> 00:11:35.180 +control X buffer to init. + +00:11:41.040 --> 00:11:41.320 +So this is what you would have to do to get + +00:11:48.880 --> 00:11:49.020 +your mode line or mode line inactive with a + +00:11:52.360 --> 00:11:52.660 +flat button style. So what you do is you get + +00:11:56.120 --> 00:11:56.280 +your face like this, the face that you want + +00:11:59.640 --> 00:12:00.060 +to modify. You say that you inherit from the + +00:12:02.920 --> 00:12:03.200 +original face and what you do is that you add + +00:12:06.820 --> 00:12:07.000 +a box with the line width that you want and + +00:12:08.040 --> 00:12:08.540 +the style plug button. + +00:12:10.900 --> 00:12:11.400 +I don't think it's too difficult to do. + +00:12:23.100 --> 00:12:23.600 +How much work was involved in implementing + +00:12:27.360 --> 00:12:27.780 +this style? It is not 1 of the biggest + +00:12:28.940 --> 00:12:29.440 +patches you have in Emacs. + +00:12:32.260 --> 00:12:32.640 +It was my first patch, + +00:12:34.500 --> 00:12:34.960 +so it was like 20 liners. + +00:12:40.280 --> 00:12:40.780 +It's not too much. Yes, + +00:12:44.540 --> 00:12:45.040 +I am going to go and... + +00:12:54.733 --> 00:12:54.800 +Oops. SKB and... There you are. + +00:12:58.660 --> 00:12:58.900 +And there you are. I've checked it for copy + +00:13:05.440 --> 00:13:05.580 +and paste. Of course, then what you have to + +00:13:09.440 --> 00:13:09.760 +do is to add an advice and add this thing + +00:13:16.680 --> 00:13:16.980 +after the add this code after the well after + +00:13:17.760 --> 00:13:18.260 +you've loaded the theme. + +00:13:22.420 --> 00:13:22.920 +It says, ModeLine and ModeLineInactive. + +00:13:27.400 --> 00:13:27.720 +I'm also using it for TabLine and + +00:13:29.820 --> 00:13:30.060 +TabLineInactive and all this kind of things. + +00:13:30.060 --> 00:13:30.560 +Thanks. + +00:14:00.660 --> 00:14:01.160 +Thanks. Any other questions? + +00:14:35.020 --> 00:14:35.520 +Reactions? Thank you. Thank you. + +00:15:04.160 --> 00:15:04.340 +Okay, I think we still have about 6 or 7 more + +00:15:05.840 --> 00:15:06.220 +minutes of live Q&A on stream, + +00:15:07.400 --> 00:15:07.900 +so if folks have any more questions, + +00:15:09.940 --> 00:15:10.440 +please do feel free to post them on the pad. + +00:15:30.060 --> 00:15:30.560 +Silence. Silence. Silence. + +00:16:02.280 --> 00:16:02.780 +Well, do you teach eMAX to any of your + +00:16:04.700 --> 00:16:05.200 +university students? As such, + +00:16:08.080 --> 00:16:08.580 +there's no course that we teach, + +00:16:12.800 --> 00:16:13.300 +but in tutorships and in tutoring sessions, + +00:16:15.460 --> 00:16:15.800 +when we do practical things, + +00:16:21.100 --> 00:16:21.300 +and I do a lot, I tend to use Emacs for all + +00:16:24.480 --> 00:16:24.960 +the tasks so that the students get involved + +00:16:28.220 --> 00:16:28.380 +in it. I also have a small introduction to + +00:16:29.640 --> 00:16:30.110 +Emacs that I share with my students. + +00:16:33.400 --> 00:16:33.900 +So So every year I have 2 or 3 new adepts. + +00:17:43.900 --> 00:17:44.400 +We have a question on IRC. + +00:17:46.920 --> 00:17:47.080 +Someone asking can you please show what the + +00:17:53.160 --> 00:17:53.660 +tab line looks like? Just a second. + +00:17:56.880 --> 00:17:57.380 +This would be like this. + +00:18:03.096 --> 00:18:03.193 +For that I'm going to use my regular Emacs. + +00:18:06.220 --> 00:18:06.560 +Just my my regular emacs so just let me fire + +00:18:09.220 --> 00:18:09.720 +it up. Sure. + +00:18:23.540 --> 00:18:24.040 +And + +00:18:39.760 --> 00:18:40.120 +That's my current situation with the tab + +00:18:42.660 --> 00:18:43.140 +line. I do have a couple of functions. + +00:18:44.680 --> 00:18:45.180 +So this is 1 of the things that I use. + +00:18:51.500 --> 00:18:51.600 +As you see, both the tab line here and the + +00:18:57.040 --> 00:18:57.340 +mode line change. And the other thing is I + +00:19:00.520 --> 00:19:01.020 +can, this is for some situations, + +00:19:03.600 --> 00:19:03.940 +not currently because it's just later, + +00:19:06.420 --> 00:19:06.680 +it's a bit too dark. But this is for light + +00:19:10.260 --> 00:19:10.760 +days. I have like 3 or 4 themes that I can + +00:19:15.020 --> 00:19:15.140 +switch to these are the themes that I + +00:19:18.120 --> 00:19:18.620 +normally use This is how the tab line looks. + +00:19:22.660 --> 00:19:23.160 +This is how the tab line here looks with the + +00:19:28.280 --> 00:19:28.780 +with a flat button style. + +00:19:35.640 --> 00:19:36.140 +Looks great, Thank you for sharing. + +00:19:37.200 --> 00:19:37.700 +You're welcome. + +00:19:50.720 --> 00:19:51.220 +Okay, I think we have 2 or 3 more minutes. + +00:19:53.600 --> 00:19:54.100 +So if folks, if you have any final questions + +00:19:55.480 --> 00:19:55.980 +for Pedro, please post them in. + +00:20:37.360 --> 00:20:37.860 +Okay. Okay. + +00:20:54.260 --> 00:20:54.760 +Okay. + +00:21:34.540 --> 00:21:34.700 +No further questions. Yeah, + +00:21:36.380 --> 00:21:36.880 +it seems we don't have any further questions. + +00:21:39.100 --> 00:21:39.480 +Just another audience member also thanking + +00:21:44.060 --> 00:21:44.200 +you on the chat. So with that, + +00:21:45.320 --> 00:21:45.480 +I'll say Thank you very much, + +00:21:47.080 --> 00:21:47.580 +Pedro, for your great talk and for the Q&A, + +00:21:50.220 --> 00:21:50.320 +for your work and for helping spreading the + +00:21:52.360 --> 00:21:52.860 +joy of Emacs. Okay, thanks. + +00:21:56.140 --> 00:21:56.640 +Thank you. Bye-bye. It was a nice experience + +00:21:59.200 --> 00:21:59.700 +here. Very nice tool. Cheers. + +00:22:01.640 --> 00:22:01.920 +Awesome. Take care. Bye. + +00:22:02.720 --> 00:22:03.220 +Bye. Bye. diff --git a/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt b/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt new file mode 100644 index 00000000..7d2db739 --- /dev/null +++ b/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt @@ -0,0 +1,353 @@ +WEBVTT + + +00:00:03.340 --> 00:00:03.480 +Today I will share a nice workflow I have + +00:00:04.400 --> 00:00:04.900 +developed for stream of consciousness + +00:00:06.560 --> 00:00:06.759 +journaling. The goal of stream of + +00:00:08.080 --> 00:00:08.240 +consciousness journaling is to get your + +00:00:09.960 --> 00:00:10.080 +thoughts on the screen as effectively and + +00:00:10.679 --> 00:00:11.040 +efficiently as possible. + +00:00:12.780 --> 00:00:12.980 +These 2 features when combined reinforce each + +00:00:14.860 --> 00:00:15.060 +other and let you hear yourself think in a + +00:00:15.960 --> 00:00:16.460 +very efficient manner, + +00:00:17.220 --> 00:00:17.580 +increasing the number, + +00:00:18.960 --> 00:00:19.160 +quality, and types of thoughts you can get + +00:00:21.100 --> 00:00:21.260 +out of it. The tools I will be using for this + +00:00:22.680 --> 00:00:23.099 +are Emacs, KL line from the Hyperbolt + +00:00:24.080 --> 00:00:24.279 +package, centered cursor mode, + +00:00:25.119 --> 00:00:25.619 +Olivetti mode, and optionally, + +00:00:26.820 --> 00:00:27.240 +voice to text. Additionally, + +00:00:28.939 --> 00:00:29.119 +you can see my commands and key bindings on + +00:00:31.500 --> 00:00:31.680 +the right. I will start off by showing a + +00:00:32.119 --> 00:00:32.619 +typing demo + +00:00:48.120 --> 00:00:48.620 +about how my day went. + +00:01:12.900 --> 00:01:13.180 +There are certain functionalities for stream + +00:01:14.640 --> 00:01:14.960 +of consciousness journaling that are desired + +00:01:15.900 --> 00:01:16.320 +or detrimental to the process. + +00:01:17.040 --> 00:01:17.540 +Stream of thought functionalities, + +00:01:26.000 --> 00:01:26.240 +things I want. The ability to optionally use + +00:01:27.720 --> 00:01:28.020 +speech to text. I do this by using + +00:01:29.380 --> 00:01:29.880 +Nerdictation, a Python program. + +00:01:32.320 --> 00:01:32.480 +I am still experimenting with this as it + +00:01:34.120 --> 00:01:34.200 +changes the quality and types of thoughts you + +00:01:35.280 --> 00:01:35.720 +can get out of stream of consciousness + +00:01:37.680 --> 00:01:37.880 +journaling. I am still looking for better + +00:01:39.900 --> 00:01:40.240 +ways of doing this. The ability to easily + +00:01:41.680 --> 00:01:41.880 +organize and split off my thoughts by + +00:01:43.040 --> 00:01:43.540 +creating and manipulating outlines. + +00:01:46.280 --> 00:01:46.560 +Creating them in real time is needed for live + +00:01:48.240 --> 00:01:48.720 +journaling and allows for later editing + +00:01:53.140 --> 00:01:53.300 +really easily. I showed off some of these + +00:01:56.479 --> 00:01:56.740 +commands before. To just write words without + +00:01:57.540 --> 00:01:58.040 +worrying about format. + +00:02:00.160 --> 00:02:00.480 +To not worry about scrolling, + +00:02:01.640 --> 00:02:02.140 +I use centered cursor mode. + +00:02:05.200 --> 00:02:05.660 +To not worry about lines, + +00:02:06.960 --> 00:02:07.460 +I use the KOutline auto-filling + +00:02:09.360 --> 00:02:09.800 +functionality. To not worry about pressing + +00:02:11.400 --> 00:02:11.720 +Enter, and to have a nice looking journal + +00:02:12.660 --> 00:02:13.160 +with hard returns afterwards. + +00:02:19.060 --> 00:02:19.320 +Manually filling is needed with spacing when + +00:02:22.160 --> 00:02:22.660 +it is wrong. I do that with metaJ. + +00:02:30.680 --> 00:02:31.180 +Counterproductive functionality. + +00:02:33.480 --> 00:02:33.680 +Spell checking. While this is useful for + +00:02:35.500 --> 00:02:35.680 +editing, it is not useful for stream of + +00:02:36.220 --> 00:02:36.720 +consciousness journaling. + +00:02:39.020 --> 00:02:39.140 +Having this on or off conditionally while you + +00:02:40.760 --> 00:02:40.940 +are live journaling is a killer feature of + +00:02:48.040 --> 00:02:48.460 +Emacs. Reading slash editing the journal. + +00:02:50.240 --> 00:02:50.380 +Part of the value proposition of this is to + +00:02:51.420 --> 00:02:51.820 +listen to what you are thinking, + +00:02:52.680 --> 00:02:53.180 +so this is needed functionality. + +00:02:55.580 --> 00:02:55.680 +You cannot listen very well when you are + +00:02:57.360 --> 00:02:57.720 +speaking, and the converse is true as well. + +00:02:59.240 --> 00:02:59.440 +You cannot speak very well when you are + +00:03:01.280 --> 00:03:01.440 +listening, decreasing what you can get out of + +00:03:04.120 --> 00:03:04.240 +it. Features when editing or listening to + +00:03:05.200 --> 00:03:05.700 +your journal. Spell checking. + +00:03:07.780 --> 00:03:08.280 +I use the Spackage Spellfoo, + +00:03:20.740 --> 00:03:20.980 +but there are others. I use multiple panes to + +00:03:25.040 --> 00:03:25.440 +read and edit. I use a combination of follow + +00:03:27.940 --> 00:03:28.440 +mode and some of my custom functions. + +00:03:31.860 --> 00:03:32.360 +These are what I use right here. + +00:03:53.360 --> 00:03:53.480 +The ability to change the view specs of the + +00:03:59.340 --> 00:03:59.840 +document. Stuff like, toggling blank lines. + +00:04:08.300 --> 00:04:08.800 +Show the first heading of everything. + +00:04:18.620 --> 00:04:18.839 +You can also export the KOutline pages to + +00:04:21.560 --> 00:04:21.779 +HTML for other people to read or another way + +00:04:29.440 --> 00:04:29.940 +to look at it. Easy manipulation of cells. + +00:04:34.040 --> 00:04:34.160 +You use the Alt and arrow keys just like in + +00:04:37.200 --> 00:04:37.700 +Orm mode to delete cells easily. + +00:04:47.020 --> 00:04:47.180 +The ability to manually reformat KL9 cells in + +00:04:49.540 --> 00:04:49.760 +addition to auto formatting of the cells for + +00:04:50.860 --> 00:04:51.180 +when spacing looks off. + +00:04:53.900 --> 00:04:54.080 +MetaJ is nice, and auto-filling is also nice + +00:04:54.920 --> 00:04:55.420 +for having multiple pages. + +00:04:58.660 --> 00:04:59.020 +Why do I use these tools versus other common + +00:05:06.060 --> 00:05:06.200 +tools? K-Outline vs. Playtext Writing in + +00:05:08.460 --> 00:05:08.600 +outlines helps me easily structure my + +00:05:09.960 --> 00:05:10.280 +thoughts in a way that is easy to write, + +00:05:12.500 --> 00:05:12.800 +read, and edit. Org Mode vs. + +00:05:15.360 --> 00:05:15.600 +K-Outline Org Mode gives me lots of ways to + +00:05:17.120 --> 00:05:17.620 +structure my journal slash document. + +00:05:19.600 --> 00:05:20.100 +While this is great for a lot of things, + +00:05:21.540 --> 00:05:22.040 +for stream of consciousness journaling, + +00:05:24.960 --> 00:05:25.140 +this causes decision fatigue and loss of + +00:05:30.320 --> 00:05:30.720 +concentration. Types of questions I get when + +00:05:31.960 --> 00:05:32.460 +structuring an org-mode document? + +00:05:35.080 --> 00:05:35.400 +Do I keep everything in a heading or below + +00:05:36.100 --> 00:05:36.600 +the heading in paragraphs? + +00:05:38.080 --> 00:05:38.240 +How do I handle new lines? + +00:05:40.240 --> 00:05:40.520 +Do I just use visual line mode with no hard + +00:05:42.520 --> 00:05:42.880 +returns? Or if I make hard returns, + +00:05:44.800 --> 00:05:45.300 +on what line number do I do them? + +00:05:50.080 --> 00:05:50.460 +More visual line nodes in org-mode documents + +00:05:52.660 --> 00:05:53.160 +like a potential org ID in your property + +00:05:57.720 --> 00:05:57.940 +stores. While a lot of the above is really + +00:05:59.880 --> 00:06:00.060 +nice if you are making something like a + +00:06:01.640 --> 00:06:02.060 +website to present to other people, + +00:06:04.080 --> 00:06:04.340 +these features are counterproductive to + +00:06:05.040 --> 00:06:05.540 +stream-of-thought journaling. + +00:06:08.900 --> 00:06:09.200 +Org mode is also top-notch for other things + +00:06:11.780 --> 00:06:12.280 +such as GTD. I don't think org mode has + +00:06:13.820 --> 00:06:14.280 +bindings to create child, + +00:06:15.460 --> 00:06:15.960 +same-level, and parent cells. + +00:06:19.340 --> 00:06:19.600 +Centered cursor mode versus scroll lock mode + +00:06:22.640 --> 00:06:22.960 +built-in. Scroll lock mode changes its place + +00:06:28.180 --> 00:06:28.380 +when you move the cursor from the bottom or + +00:06:30.080 --> 00:06:30.280 +the top of the page. Centered cursor mode + +00:06:33.420 --> 00:06:33.680 +will reliably fix itself to the center when + +00:06:36.280 --> 00:06:36.780 +the cursor position is not there. diff --git a/2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt b/2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt new file mode 100644 index 00000000..8622eb0d --- /dev/null +++ b/2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt @@ -0,0 +1,1973 @@ +WEBVTT + + +00:00:07.299 --> 00:00:07.799 +I think it's still going up. + +00:00:11.200 --> 00:00:11.700 +All right. I think we should be live now. + +00:00:12.900 --> 00:00:13.139 +So hi, everyone. And hi, + +00:00:13.780 --> 00:00:14.280 +Michael. How are you doing? + +00:00:18.080 --> 00:00:18.340 +Hi. Hello, EmacsConf. I'm pretty excited to + +00:00:22.420 --> 00:00:22.800 +be live at this year's EmacsConf and getting + +00:00:25.640 --> 00:00:25.960 +a chance to talk about my favorite program or + +00:00:29.140 --> 00:00:29.439 +our favorite program. Well, + +00:00:30.439 --> 00:00:30.820 +yeah, I'm doing pretty fine, + +00:00:32.680 --> 00:00:32.900 +and I'm excited. Well, + +00:00:35.020 --> 00:00:35.520 +so are we. So without further ado, + +00:00:37.640 --> 00:00:37.760 +the floor is yours. Present for as much as + +00:00:39.200 --> 00:00:39.700 +you want. We've already discussed the timings + +00:00:41.380 --> 00:00:41.880 +so I'll let you on your own. + +00:00:44.059 --> 00:00:44.380 +Okay so let's get started. + +00:00:46.560 --> 00:00:46.760 +The topic of the talk is the browser in a + +00:00:49.920 --> 00:00:50.420 +buffer or Poltus, a periodic web weaver. + +00:00:53.540 --> 00:00:53.700 +Poltus is a kind of spider and the name of + +00:00:55.680 --> 00:00:56.180 +the project I'm going to show you. + +00:01:01.400 --> 00:01:01.900 +But first let's set the stage for this + +00:01:04.940 --> 00:01:05.440 +project. Here we have Emacs I'm presenting + +00:01:07.240 --> 00:01:07.740 +from and here we have Firefox. + +00:01:09.600 --> 00:01:09.960 +I'm inside and there's a video. + +00:01:12.720 --> 00:01:13.220 +Okay, let's do this. Don't do the inception. + +00:01:14.900 --> 00:01:15.400 +Put it over there somewhere. + +00:01:17.940 --> 00:01:18.440 +Okay. So here's Firefox. + +00:01:20.760 --> 00:01:21.260 +It's not, it's, It's in a buffer, + +00:01:23.560 --> 00:01:24.060 +but it's pretty disconnected from Emacs. + +00:01:27.700 --> 00:01:28.200 +It's in an XWM buffer. + +00:01:30.880 --> 00:01:31.320 +So you can use it from inside Emacs, + +00:01:35.320 --> 00:01:35.440 +but they don't talk. Emacs doesn't talk to + +00:01:36.860 --> 00:01:37.120 +the browser and the browser doesn't talk + +00:01:40.320 --> 00:01:40.820 +back. And I'm going to show you something + +00:01:42.720 --> 00:01:43.220 +that changes this. But first, + +00:01:45.100 --> 00:01:45.280 +I think for many of you, + +00:01:47.080 --> 00:01:47.200 +it's the same, like there's Emacs and the + +00:01:49.120 --> 00:01:49.620 +other important program is the browser. + +00:01:55.340 --> 00:01:55.840 +So how do you do something? + +00:01:57.880 --> 00:01:58.180 +Let's continue with the stage. + +00:01:59.640 --> 00:02:00.140 +We have some research session. + +00:02:03.400 --> 00:02:03.680 +We have this EmacsConf we found this year and + +00:02:04.960 --> 00:02:05.460 +there are a lot of talks. + +00:02:07.500 --> 00:02:07.700 +This is the 1 we're watching right now and + +00:02:09.520 --> 00:02:10.020 +let's have a look. What else is interesting? + +00:02:11.980 --> 00:02:12.480 +Ah, this was yesterday. + +00:02:15.060 --> 00:02:15.560 +So have a look at today. + +00:02:17.980 --> 00:02:18.480 +There is a world of possibilities. + +00:02:20.320 --> 00:02:20.600 +That sounds great. Oh, + +00:02:23.340 --> 00:02:23.840 +that is right now. So greetings to you. + +00:02:27.800 --> 00:02:28.080 +Yes, the browser and the buffer and other + +00:02:30.200 --> 00:02:30.700 +stuff. So now we have a lot of talks, + +00:02:35.900 --> 00:02:36.080 +tabs open and we're going to go back to + +00:02:40.800 --> 00:02:41.300 +Emacs. I can't switch buffers in a dedicated + +00:02:43.580 --> 00:02:43.940 +window. So apparently I can't do that. + +00:02:50.500 --> 00:02:50.600 +Here's Emacs again. Now I'm in Emacs and I + +00:02:51.900 --> 00:02:52.400 +want to have something from my browser, + +00:02:56.080 --> 00:02:56.200 +maybe like the open tabs or I want to + +00:02:59.180 --> 00:02:59.380 +annotate them. I'm in org mode right now, + +00:03:02.400 --> 00:03:02.900 +so I would like to do it from Org Mode maybe. + +00:03:05.380 --> 00:03:05.740 +How do I get the tab? Okay, + +00:03:08.940 --> 00:03:09.440 +let's tap back. I want to annotate this page. + +00:03:11.860 --> 00:03:12.360 +Let's get the link, put it here. + +00:03:13.660 --> 00:03:13.940 +Oh, that wasn't a link. + +00:03:15.420 --> 00:03:15.920 +That was something totally different. + +00:03:19.540 --> 00:03:19.960 +So let's use the mouse. + +00:03:22.540 --> 00:03:23.040 +There's the link. Now we could put a title + +00:03:30.060 --> 00:03:30.560 +and so on. What I'm showing you here is it is + +00:03:34.160 --> 00:03:34.640 +pretty, no it's not too difficult, + +00:03:36.680 --> 00:03:36.820 +but it could be easier interacting with the + +00:03:40.380 --> 00:03:40.580 +browser. And there are helpers to do + +00:03:41.980 --> 00:03:42.480 +something like this. I had, + +00:03:46.440 --> 00:03:46.640 +for example, I used for a long time this + +00:03:50.400 --> 00:03:50.660 +extension. It's called export tabs URLs and + +00:03:53.000 --> 00:03:53.400 +you got a list of your tabs and you can just + +00:03:54.280 --> 00:03:54.780 +copy them to clipboard. + +00:03:55.900 --> 00:03:56.280 +So now we have the tabs, + +00:03:58.620 --> 00:03:58.940 +copy them to clipboard and there they are. + +00:04:00.640 --> 00:04:01.140 +So now we can do something with the tabs, + +00:04:03.240 --> 00:04:03.740 +rearrange them, take notes and so on. + +00:04:14.320 --> 00:04:14.640 +Okay. And there's even other stuff for while + +00:04:17.519 --> 00:04:18.019 +researching for this talk on this extension, + +00:04:21.060 --> 00:04:21.260 +I found this tab session manager where you + +00:04:23.080 --> 00:04:23.300 +can have a look at your tabs it does + +00:04:26.540 --> 00:04:27.040 +snapshots it exports it in Brazilian + +00:04:29.820 --> 00:04:30.320 +different formats and yeah that's even more + +00:04:35.600 --> 00:04:35.740 +luxurious no better but it's still not an + +00:04:41.380 --> 00:04:41.880 +emacs okay so how could we get it into Emacs? + +00:04:44.040 --> 00:04:44.540 +Maybe this thing called Pultus could help. + +00:04:49.000 --> 00:04:49.180 +The theme is from a browser extension and a + +00:04:52.440 --> 00:04:52.760 +manual workflow. As I showed you right now, + +00:04:54.400 --> 00:04:54.860 +we want to go to an interactive Emacs + +00:04:57.620 --> 00:04:57.800 +interface. How to deal with the browser and + +00:04:59.280 --> 00:04:59.780 +its tabs from inside Emacs. + +00:05:05.860 --> 00:05:06.360 +And we're gonna do just that right now. + +00:05:08.880 --> 00:05:09.340 +So we had this research session over there. + +00:05:10.320 --> 00:05:10.820 +So now it's demo time. + +00:05:12.620 --> 00:05:13.120 +We had this research session. + +00:05:14.620 --> 00:05:15.120 +Let's open it again. Here is it. + +00:05:18.340 --> 00:05:18.840 +And now we want to do it from inside Emacs. + +00:05:22.940 --> 00:05:23.300 +We say please Emacs insert this or please + +00:05:28.000 --> 00:05:28.200 +Poltis insert this. And now we have the + +00:05:30.020 --> 00:05:30.040 +browser session inside Emacs. + +00:05:35.280 --> 00:05:35.760 +It's a little bit roomy so you can see it + +00:05:40.200 --> 00:05:40.380 +over the internet. And we learned that + +00:05:44.120 --> 00:05:44.280 +BigBooplotten doesn't set a title or has a + +00:05:46.160 --> 00:05:46.360 +new line in it. I'm not actually sure what + +00:05:49.740 --> 00:05:50.120 +happened here. So let's have this browser + +00:05:51.940 --> 00:05:52.440 +session and what can we do with it? + +00:05:57.860 --> 00:05:58.320 +For once you can just copy stuff here, + +00:06:01.560 --> 00:06:01.720 +you can take notes and it updates with the + +00:06:03.900 --> 00:06:04.040 +browser. If you change something in the + +00:06:06.020 --> 00:06:06.420 +browser, maybe switch these tabs, + +00:06:07.720 --> 00:06:08.220 +they switch over there. + +00:06:12.340 --> 00:06:12.560 +Or you say, okay, I don't want to have + +00:06:17.340 --> 00:06:17.500 +HyperDrive in here. And I don't need the + +00:06:19.440 --> 00:06:19.540 +instructions for speakers because I'm not a + +00:06:22.500 --> 00:06:22.800 +speaker so I have a live sync to Emacs from + +00:06:29.440 --> 00:06:29.640 +the browser in this Org Mode interface and we + +00:06:31.180 --> 00:06:31.420 +can do more stuff with it, + +00:06:37.640 --> 00:06:37.800 +for example we could I already showed you how + +00:06:41.880 --> 00:06:42.380 +to rearrange stuff. We can open new tabs. + +00:06:46.220 --> 00:06:46.720 +We can have a look at let's say emacs-conf + +00:06:53.480 --> 00:06:53.680 +again and they're just updating and now it + +00:06:57.040 --> 00:06:57.540 +says a new tab, add another 1, + +00:07:02.000 --> 00:07:02.500 +okay. So I think you get the gist. + +00:07:05.220 --> 00:07:05.720 +Now let's take a note on this. + +00:07:11.460 --> 00:07:11.960 +This conference sounds interesting. + +00:07:20.820 --> 00:07:21.140 +Have a look. Maybe thumbs up. + +00:07:23.420 --> 00:07:23.920 +Okay I can do this. So now there's a link, + +00:07:30.920 --> 00:07:31.420 +not a link, a note. If I close it and reopen + +00:07:33.900 --> 00:07:34.400 +it, There's the note again. + +00:07:39.000 --> 00:07:39.500 +So we have persistent notes for browser tabs + +00:07:42.040 --> 00:07:42.400 +or not actually browser tabs, + +00:07:46.240 --> 00:07:46.560 +it's actually URLs. Use the browser tab. + +00:07:49.600 --> 00:07:50.100 +I'm gonna open another URL. + +00:07:51.500 --> 00:07:52.000 +Now it's not without a node. + +00:07:54.480 --> 00:07:54.980 +Going back, the node is back there. + +00:08:01.260 --> 00:08:01.760 +That's how far I can show you Politis because + +00:08:05.720 --> 00:08:06.220 +the interface isn't finished otherwise. + +00:08:11.680 --> 00:08:12.100 +But the backend is pretty cool and I'm gonna + +00:08:13.180 --> 00:08:13.580 +tell you more about that. + +00:08:15.360 --> 00:08:15.860 +The interface is right now just browser + +00:08:18.640 --> 00:08:18.940 +interaction 1 way from the browser into org + +00:08:22.240 --> 00:08:22.740 +mode, an org mode interface and it has nodes. + +00:08:25.080 --> 00:08:25.580 +But it's not too difficult to imagine, + +00:08:30.420 --> 00:08:30.920 +for example, adding tags or... + +00:08:32.020 --> 00:08:32.500 +I just remembered Or I just remembered + +00:08:39.400 --> 00:08:39.900 +something. Okay. So for example, + +00:08:45.060 --> 00:08:45.220 +adding texts or scheduling information or + +00:08:47.360 --> 00:08:47.720 +what else, all the stuff you do with org + +00:08:51.920 --> 00:08:52.420 +mode. Or go the other way around and sync + +00:08:54.920 --> 00:08:55.320 +from the org mode buffer to the browser. + +00:09:01.440 --> 00:09:01.560 +So I could delete this heading or rename it + +00:09:03.280 --> 00:09:03.420 +or stuff like that. So it's reflected in the + +00:09:04.840 --> 00:09:05.000 +browser. I'm not going to do it right now + +00:09:05.640 --> 00:09:06.140 +because it's not implemented. + +00:09:10.240 --> 00:09:10.440 +But just to give you an outlook of the + +00:09:14.960 --> 00:09:15.200 +possibilities. Good. So let's leave this + +00:09:24.000 --> 00:09:24.500 +browser session here. Browser session below. + +00:09:35.280 --> 00:09:35.500 +Okay. Change the outline structure or stuff + +00:09:39.380 --> 00:09:39.880 +like this. So get the browser back, + +00:09:43.420 --> 00:09:43.740 +debugging. Yep, this talks, + +00:09:44.800 --> 00:09:45.060 +I could change something here, + +00:09:47.920 --> 00:09:48.420 +go back to the talks page and still working. + +00:09:56.920 --> 00:09:57.120 +Now I showed you what it does and what can + +00:10:01.560 --> 00:10:01.720 +you use it for or What is it intended to be + +00:10:02.660 --> 00:10:03.040 +used for if it's finished, + +00:10:04.640 --> 00:10:05.140 +because it isn't finished as I said. + +00:10:07.240 --> 00:10:07.740 +Manage your open tabs. + +00:10:12.340 --> 00:10:12.840 +So for example my use case is I do something, + +00:10:16.080 --> 00:10:16.580 +have a big collection of tabs open And then I + +00:10:22.800 --> 00:10:22.940 +need RAM. This PC here has just 4 GB of it, + +00:10:25.080 --> 00:10:25.580 +so sometimes I need to close the browser too. + +00:10:27.260 --> 00:10:27.760 +I don't have to close the PC. + +00:10:32.540 --> 00:10:32.740 +And in this case I'd like to save the + +00:10:37.240 --> 00:10:37.740 +session. So far I just copied this clipboard + +00:10:40.380 --> 00:10:40.880 +thing I showed you earlier in an org mode and + +00:10:44.640 --> 00:10:44.900 +Captured it away and this should be the + +00:10:48.120 --> 00:10:48.300 +future for this workflow You just capture the + +00:10:49.520 --> 00:10:49.700 +browser session rearrange it. + +00:10:51.760 --> 00:10:51.860 +However, you like it and then you make make + +00:10:54.160 --> 00:10:54.520 +it offline. So this is the thing I didn't + +00:10:57.840 --> 00:10:58.340 +show you. You can, if you were looking here + +00:11:04.020 --> 00:11:04.160 +you can you see that this heading is open in + +00:11:08.560 --> 00:11:09.060 +tab 37, window 1. So if you would remove + +00:11:14.120 --> 00:11:14.480 +this, it's offline. And you keep just the org + +00:11:16.300 --> 00:11:16.700 +structure. It's a simple text file then. + +00:11:25.940 --> 00:11:26.100 +And the plan future feature is to go back to + +00:11:27.540 --> 00:11:28.040 +the online state. So you have a session, + +00:11:28.900 --> 00:11:29.400 +maybe a browser window, + +00:11:30.920 --> 00:11:31.420 +you save it to Org Mode, + +00:11:34.600 --> 00:11:34.960 +close the window and some days later or weeks + +00:11:38.080 --> 00:11:38.580 +later you return to this research session, + +00:11:40.240 --> 00:11:40.740 +maybe something about Emacs or whatever + +00:11:43.740 --> 00:11:44.180 +spikes your interest, and you can just reopen + +00:11:46.500 --> 00:11:46.920 +it from the browser, from Org Mode. + +00:11:48.820 --> 00:11:49.000 +So Org Mode becomes the controller of the + +00:11:50.320 --> 00:11:50.820 +browser. And it's not, + +00:11:52.440 --> 00:11:52.680 +it doesn't have to be Org Mode, + +00:11:53.860 --> 00:11:54.360 +but for the demo purpose, + +00:11:58.260 --> 00:11:58.760 +Org Mode was the most easy interface. + +00:12:02.540 --> 00:12:02.800 +That easy. I don't know if you're doing more + +00:12:05.600 --> 00:12:05.860 +complex interactive stuff in Org Mode, + +00:12:08.640 --> 00:12:09.140 +but there's some tricky edge cases. + +00:12:12.560 --> 00:12:12.920 +I just finished this demo half an hour ago, + +00:12:15.360 --> 00:12:15.520 +maybe an hour ago, and I'm really lucky that + +00:12:18.580 --> 00:12:19.080 +it worked in the end. Org mode, + +00:12:23.000 --> 00:12:23.400 +pretty great. So maybe you could do another + +00:12:25.200 --> 00:12:25.700 +interface, does not matter. + +00:12:29.760 --> 00:12:30.260 +Easy access to more info from inside Emacs. + +00:12:32.360 --> 00:12:32.580 +Yeah, Of course, you can imagine like we have + +00:12:34.700 --> 00:12:35.200 +just the title URL here, + +00:12:39.160 --> 00:12:39.360 +but you could even get at the text of the + +00:12:41.120 --> 00:12:41.280 +buffer. I'd show you in the, + +00:12:42.340 --> 00:12:42.840 +in the, how is it done section, + +00:12:44.540 --> 00:12:44.960 +manage and research session, + +00:12:48.460 --> 00:12:48.620 +tab groups. I already showed you this and + +00:12:49.240 --> 00:12:49.740 +browse all your links. + +00:12:54.780 --> 00:12:54.960 +I also showed you. So let's go over to how is + +00:12:57.340 --> 00:12:57.840 +it done. How is it done then? + +00:13:08.760 --> 00:13:08.940 +It should be quite apparent that somehow the + +00:13:11.660 --> 00:13:11.820 +browser has to sync its state to Emacs and + +00:13:13.680 --> 00:13:14.180 +Emacs has to know about the browser and + +00:13:15.660 --> 00:13:16.120 +there's like a bidirectional state + +00:13:17.560 --> 00:13:18.060 +synchronization going on here. + +00:13:21.480 --> 00:13:21.980 +And there's a browser side and an Emacs side. + +00:13:28.080 --> 00:13:28.580 +The browser side is a add-on, + +00:13:31.080 --> 00:13:31.580 +a web extension add-on. + +00:13:38.940 --> 00:13:39.380 +I first tried to use WebDriver by DIY. + +00:13:40.760 --> 00:13:41.040 +I don't know if you know it, + +00:13:43.440 --> 00:13:43.780 +you open a web socket and then you can talk + +00:13:47.460 --> 00:13:47.860 +to the browser, but It was so frustrating to + +00:13:50.440 --> 00:13:50.940 +actually get it to do what I wanted to do + +00:13:54.000 --> 00:13:54.280 +that I changed to the web extension and this + +00:13:55.580 --> 00:13:56.080 +wasn't that much better, + +00:13:58.520 --> 00:13:58.840 +but I finally had all the features I needed + +00:14:02.660 --> 00:14:02.780 +because WebDriver is like all in flux and you + +00:14:04.200 --> 00:14:04.540 +have to look at the Firefox bug tracker. + +00:14:05.860 --> 00:14:06.360 +Do they have implemented this already? + +00:14:09.900 --> 00:14:10.400 +And no, most often they don't. + +00:14:13.580 --> 00:14:13.940 +So now it's a web extension add-on and it + +00:14:16.280 --> 00:14:16.480 +just tells Emacs little facts about the + +00:14:20.060 --> 00:14:20.560 +browser. And for you to make, + +00:14:23.500 --> 00:14:23.720 +to, that this facts make more sense for you, + +00:14:27.180 --> 00:14:27.680 +I think I have to explain how the Emacs side + +00:14:31.560 --> 00:14:32.060 +of this works. So the Emacs side, + +00:14:37.160 --> 00:14:37.460 +at first I thought I make it quite simple and + +00:14:38.800 --> 00:14:39.300 +then I over engineered it. + +00:14:42.040 --> 00:14:42.540 +And now it's great, but also not finished. + +00:14:44.540 --> 00:14:45.040 +So the Emacs site is a database. + +00:14:52.580 --> 00:14:53.080 +It's a triple store or RDF database. + +00:14:57.800 --> 00:14:58.300 +It stores all information in triples. + +00:14:58.980 --> 00:14:59.480 +So you have a subject, + +00:15:04.280 --> 00:15:04.780 +subject, predicate, and an object. + +00:15:10.440 --> 00:15:10.940 +And you can query this database. + +00:15:14.920 --> 00:15:15.060 +For those of you who watched last year's talk + +00:15:19.740 --> 00:15:20.240 +of Andrew Hyatt about SQL in Emacs. + +00:15:23.100 --> 00:15:23.300 +He presented such a database if you want to + +00:15:24.960 --> 00:15:25.380 +have a closer look. And sorry, + +00:15:26.520 --> 00:15:27.020 +Andrew, I didn't use yours. + +00:15:29.540 --> 00:15:29.860 +I had to make my own. I'm not sure it's + +00:15:31.320 --> 00:15:31.820 +better, but it was fun. + +00:15:36.220 --> 00:15:36.720 +And it has some different design decisions. + +00:15:41.040 --> 00:15:41.200 +For those of you who don't know what's up + +00:15:42.440 --> 00:15:42.940 +with a database like this, + +00:15:47.020 --> 00:15:47.360 +maybe you know web apps like all this new Org + +00:15:51.960 --> 00:15:52.460 +Mode clones. How are they called? + +00:15:56.480 --> 00:15:56.820 +Obsidian, Roam, and so on and so on. + +00:15:58.260 --> 00:15:58.760 +All of these are possible because, + +00:16:01.300 --> 00:16:01.640 +I don't know if Obsidian too, + +00:16:04.360 --> 00:16:04.540 +but stuff like Roam is possible because they + +00:16:07.760 --> 00:16:08.000 +have a triple store in the browser and use + +00:16:10.520 --> 00:16:11.020 +this to power their knowledge base. + +00:16:14.280 --> 00:16:14.540 +And if you have had a look at Org Rome, + +00:16:17.160 --> 00:16:17.400 +you know it's uses a database too, + +00:16:19.340 --> 00:16:19.640 +because if this knowledge gets bigger, + +00:16:21.360 --> 00:16:21.860 +database is better to handle. + +00:16:27.860 --> 00:16:28.360 +And now here's a triplet store or a database + +00:16:31.920 --> 00:16:32.420 +to manage your browser session inside Emacs, + +00:16:34.240 --> 00:16:34.740 +but it's not limited to browser session. + +00:16:37.440 --> 00:16:37.940 +You could do nodes and stuff. + +00:16:40.900 --> 00:16:41.120 +I don't have a project for this, + +00:16:52.620 --> 00:16:53.120 +but you can look at this project from Andrew + +00:16:56.380 --> 00:16:56.880 +Hyatt. Has a pretty interesting notes + +00:16:59.620 --> 00:17:00.120 +project. So here is it in Emacs. + +00:17:03.960 --> 00:17:04.460 +There's the link. You can have a look. + +00:17:09.560 --> 00:17:10.060 +Okay. So now we have this database in Emacs. + +00:17:12.319 --> 00:17:12.440 +It's possible to do something like this in + +00:17:15.800 --> 00:17:16.300 +Emacs now because the database has Emacs + +00:17:21.220 --> 00:17:21.700 +SQLite integrated And the browser logs inside + +00:17:22.900 --> 00:17:23.359 +into this database via Emacs. + +00:17:26.579 --> 00:17:26.839 +It sends Emacs, it connects to Emacs via + +00:17:32.380 --> 00:17:32.580 +WebSocket. Emacs is a WebSocket server and + +00:17:35.580 --> 00:17:35.800 +then it sends little snippets like this + +00:17:46.420 --> 00:17:46.920 +window shows these tabs or this tab shows + +00:17:51.060 --> 00:17:51.300 +this URL And Emacs has triggers in this + +00:17:53.600 --> 00:17:53.760 +database. It can install Elisp triggers and + +00:17:58.420 --> 00:17:58.920 +the trigger powered the org mode frontend. + +00:18:06.040 --> 00:18:06.540 +Okay, so that's how it's done. + +00:18:08.780 --> 00:18:09.280 +It's not finished, but it does something. + +00:18:13.540 --> 00:18:13.820 +Now I want to do some closing remarks and + +00:18:14.440 --> 00:18:14.940 +maybe some more remarks. + +00:18:17.120 --> 00:18:17.400 +First off, an interesting concept I thought + +00:18:23.240 --> 00:18:23.680 +up while implementing this is cheesy garbage + +00:18:28.100 --> 00:18:28.580 +collect. For all you fans of dynamic + +00:18:31.000 --> 00:18:31.340 +languages, you know what garbage collect is. + +00:18:33.720 --> 00:18:34.220 +And Emacs users probably know it. + +00:18:38.060 --> 00:18:38.380 +Cleans up after you. You are using this Emacs + +00:18:40.280 --> 00:18:40.780 +and you are making lots of little objects and + +00:18:42.540 --> 00:18:42.920 +after some time Emacs says, + +00:18:45.260 --> 00:18:45.580 +okay, I'm doing some cleanup for you. + +00:18:46.260 --> 00:18:46.760 +That's garbage collect. + +00:18:49.040 --> 00:18:49.360 +And I thought why not have garbage collect + +00:18:52.000 --> 00:18:52.500 +for the browser? You're doing this browsing + +00:18:55.120 --> 00:18:55.320 +and opening all these tabs and after some + +00:18:58.020 --> 00:18:58.200 +time there are lots of tabs and someone has + +00:19:00.660 --> 00:19:01.160 +to close them. So there's the C programmers, + +00:19:03.160 --> 00:19:03.340 +they do all the closing themselves and + +00:19:03.960 --> 00:19:04.460 +they're really meticulous, + +00:19:06.060 --> 00:19:06.560 +but it takes some time. + +00:19:08.520 --> 00:19:09.020 +And there's like my style, + +00:19:12.880 --> 00:19:13.100 +I just let it collect stuff and after some + +00:19:16.220 --> 00:19:16.720 +time I close the browser and start a new 1. + +00:19:19.080 --> 00:19:19.280 +And now there's the garbage collect that + +00:19:20.800 --> 00:19:21.180 +says, let it collect the browser, + +00:19:22.640 --> 00:19:23.000 +let the browser collect and then garbage + +00:19:25.520 --> 00:19:25.960 +collect. Let's say every morning the browser + +00:19:28.140 --> 00:19:28.480 +closes, Emacs closes all the browser tabs, + +00:19:30.520 --> 00:19:30.860 +but it keeps the information And it keeps + +00:19:32.840 --> 00:19:33.340 +text. Maybe you said like a tag yesterday + +00:19:36.340 --> 00:19:36.840 +like reading. I want to read this. + +00:19:39.720 --> 00:19:39.960 +And next time and then after that it's in the + +00:19:42.720 --> 00:19:43.140 +reading list. So garbage collector + +00:19:45.020 --> 00:19:45.520 +compaction. However you want to know this. + +00:19:50.740 --> 00:19:51.240 +1 thing I thought of while doing this is + +00:19:57.380 --> 00:19:57.620 +also, oh my time's up, + +00:19:59.120 --> 00:19:59.620 +so we're almost at Q&A. + +00:20:04.120 --> 00:20:04.620 +1 last thing, this whole project or program + +00:20:06.360 --> 00:20:06.660 +works via the Emacs event loop. + +00:20:08.720 --> 00:20:08.880 +So there's a server listening for the + +00:20:11.840 --> 00:20:12.340 +browser, waiting for infos from it. + +00:20:16.320 --> 00:20:16.820 +It works quite fine. I wasn't sure how much + +00:20:20.940 --> 00:20:21.440 +performance it will cost the browser, + +00:20:23.120 --> 00:20:23.440 +Emacs, but it works fine. + +00:20:26.920 --> 00:20:27.240 +But I wonder what's the limits of Emacs event + +00:20:31.880 --> 00:20:32.280 +loop. Like, can I go on forever adding server + +00:20:34.440 --> 00:20:34.940 +stuff? How big a server can Emacs get? + +00:20:43.580 --> 00:20:44.080 +I don't know. So that's some open questions + +00:20:47.120 --> 00:20:47.620 +to ponder. With that, thank you for listening + +00:20:49.860 --> 00:20:50.360 +and for your interest. + +00:20:54.380 --> 00:20:54.640 +I'd be pretty delighted to take some + +00:20:57.740 --> 00:20:57.980 +questions now. Great! Well, + +00:20:58.680 --> 00:20:59.160 +thank you so much, Michael. + +00:21:01.280 --> 00:21:01.400 +Thanks for the talk. And also thanks for + +00:21:02.960 --> 00:21:03.460 +going a little more in depth at the end. + +00:21:05.800 --> 00:21:06.040 +Is that what the extra stuff that you wanted + +00:21:08.000 --> 00:21:08.500 +to mention? Is it what you've done just now? + +00:21:11.400 --> 00:21:11.900 +Sorry, I didn't understand your last, + +00:21:14.700 --> 00:21:14.860 +your question. When we were preparing for + +00:21:15.820 --> 00:21:16.320 +your presentation with Sliv, + +00:21:18.340 --> 00:21:18.420 +you told me that you wanted to go perhaps a + +00:21:20.380 --> 00:21:20.740 +little more in-depth into the garbage + +00:21:22.500 --> 00:21:22.640 +collection. Is it what you wanted to do or do + +00:21:24.080 --> 00:21:24.580 +you still have some more to tell us about? + +00:21:27.080 --> 00:21:27.580 +I could tell more in-depth. + +00:21:29.540 --> 00:21:30.040 +Yes, garbage collection is just an idea. + +00:21:35.740 --> 00:21:36.240 +It's maybe... I don't know. + +00:21:39.140 --> 00:21:39.480 +Are there questions? There are questions, + +00:21:41.720 --> 00:21:41.880 +that's why. We have about 13 minutes to + +00:21:43.380 --> 00:21:43.880 +answer as many questions as possible. + +00:21:46.960 --> 00:21:47.120 +By the way, Sorry for the people who were + +00:21:47.560 --> 00:21:48.040 +watching the presentation. + +00:21:49.040 --> 00:21:49.540 +There's been a little bit of manipulation + +00:21:51.820 --> 00:21:52.040 +trying to get all the screens in order, + +00:21:53.860 --> 00:21:54.360 +but it's because I've got a very shitty ping + +00:21:56.360 --> 00:21:56.600 +to the streaming server that we use + +00:21:59.380 --> 00:21:59.860 +currently. So everything is like composite + +00:22:00.360 --> 00:22:00.600 +everything, But don't worry, + +00:22:02.240 --> 00:22:02.440 +Michael, everything will be very clean once + +00:22:03.160 --> 00:22:03.660 +we publish it afterwards. + +00:22:05.140 --> 00:22:05.640 +So what I'm going to do... + +00:22:09.660 --> 00:22:10.160 +Sorry, could you repeat? + +00:22:13.020 --> 00:22:13.380 +So it was not at my end because my internet + +00:22:15.560 --> 00:22:16.060 +connection is not the best 1 either. + +00:22:17.800 --> 00:22:18.080 +No, absolutely not. Oh, + +00:22:19.640 --> 00:22:19.840 +by the way, this reminds me as I am + +00:22:20.740 --> 00:22:21.180 +compositing the windows, + +00:22:23.000 --> 00:22:23.300 +you might remember in the talk by Bob earlier + +00:22:25.380 --> 00:22:25.880 +today, I said, oh, there's a phone vibrating. + +00:22:28.680 --> 00:22:28.840 +I thought it was coming from the big blue + +00:22:30.600 --> 00:22:30.760 +button, like the room in which we are right + +00:22:32.960 --> 00:22:33.080 +now. And I wasn't hallucinating just to be + +00:22:34.440 --> 00:22:34.940 +clear. It's just that 1 of the co-organizers + +00:22:37.320 --> 00:22:37.820 +behind on mumble had their phone vibrating + +00:22:38.720 --> 00:22:39.160 +and I was very confused. + +00:22:41.440 --> 00:22:41.600 +Anyway that's for the Okay, + +00:22:42.440 --> 00:22:42.600 +so everything is set up now. + +00:22:43.280 --> 00:22:43.500 +So what I'm gonna do, Michael, + +00:22:44.760 --> 00:22:45.040 +I'm gonna... If you're okay with this, + +00:22:46.560 --> 00:22:46.960 +Can I read you the question from the pad and + +00:22:48.780 --> 00:22:48.960 +can you answer them? Yes, + +00:22:50.160 --> 00:22:50.660 +of course. I would love to. + +00:22:53.740 --> 00:22:53.940 +Okay, lovely. I'm going to try my best to + +00:22:56.380 --> 00:22:56.720 +display the questions on the stream. + +00:22:58.140 --> 00:22:58.440 +Give me just a second and in the meantime + +00:22:59.440 --> 00:22:59.940 +I'll read you the first 1. + +00:23:02.180 --> 00:23:02.680 +So, have you seen the next browser? + +00:23:05.020 --> 00:23:05.240 +It is the Emacs of web browsers and would + +00:23:07.540 --> 00:23:07.940 +probably be easier to work with as it matches + +00:23:08.900 --> 00:23:09.400 +a lot closer to Emacs. + +00:23:11.400 --> 00:23:11.640 +I think you can tag your browser tabs for + +00:23:16.880 --> 00:23:17.380 +example. I saw it, I never tried it. + +00:23:20.940 --> 00:23:21.360 +I think you can do all the stuff and I think + +00:23:23.620 --> 00:23:23.940 +it's pretty good idea to use it if you want + +00:23:26.480 --> 00:23:26.980 +because have a look at this. + +00:23:30.700 --> 00:23:31.200 +This lovely thing is JavaScript and it's the + +00:23:35.080 --> 00:23:35.320 +browser side. It was quite tricky to get + +00:23:40.180 --> 00:23:40.680 +working so maybe it's easier if you use Nixt + +00:23:47.460 --> 00:23:47.660 +but I like to use Firefox and yeah there has + +00:23:49.820 --> 00:23:50.000 +to be a solution for Firefox too, + +00:23:53.040 --> 00:23:53.480 +I think. So next question, + +00:23:55.900 --> 00:23:56.320 +please. Lovely. All right, + +00:23:59.480 --> 00:23:59.980 +so nice ideas. Needs a better name though, + +00:24:00.840 --> 00:24:01.280 +to attract people to it. + +00:24:02.920 --> 00:24:03.420 +What about Browsys or Webnote? + +00:24:08.400 --> 00:24:08.900 +Browsys spelled B-R-O-W-S-Y-S or Webnote? + +00:24:12.720 --> 00:24:13.220 +Clearer this 1. Webnote and Browsys? + +00:24:17.260 --> 00:24:18.300 +With a Y, yes. So instead of an IAY. + +00:24:21.140 --> 00:24:21.420 +Ah, okay. Yes, why not? + +00:24:25.240 --> 00:24:25.520 +I take note. The name is maybe a little bit + +00:24:28.020 --> 00:24:28.460 +confusing. It's the name of a spider. + +00:24:30.860 --> 00:24:31.160 +It's like a spider that does an orb web. + +00:24:31.920 --> 00:24:32.420 +I found it via Wikipedia. + +00:24:34.360 --> 00:24:34.480 +I just wanted to have like something with the + +00:24:37.640 --> 00:24:37.840 +web because it's weaving something and + +00:24:38.680 --> 00:24:39.180 +there's also the web involved. + +00:24:41.600 --> 00:24:41.980 +I'm not set on the name. + +00:24:44.640 --> 00:24:45.040 +I'm not even set on the project yet how it + +00:24:47.360 --> 00:24:47.520 +will turn out. So what you're seeing now is + +00:24:49.760 --> 00:24:49.940 +something else than what I imagined when I + +00:24:51.060 --> 00:24:51.560 +was planning this talk. + +00:24:54.880 --> 00:24:55.280 +Yeah. That's right. Keep an open mind. + +00:24:56.880 --> 00:24:57.140 +Next question. You know what I'm going to say + +00:24:58.900 --> 00:24:59.340 +about the marketing of project names? + +00:24:59.900 --> 00:25:00.400 +You know, they're not, + +00:25:01.640 --> 00:25:02.040 +they don't make sense and they're not popular + +00:25:02.880 --> 00:25:03.340 +until they actually are. + +00:25:06.040 --> 00:25:06.260 +Like what would have predestined maggots to + +00:25:07.680 --> 00:25:08.180 +work as a name? Perhaps nothing. + +00:25:10.940 --> 00:25:11.420 +I mean it felt close to magic or maggots + +00:25:12.540 --> 00:25:12.880 +depending on the people you ask. + +00:25:16.000 --> 00:25:16.160 +So you know maybe your name Pultis will be a + +00:25:18.160 --> 00:25:18.280 +household name give or take 6 months or a + +00:25:23.120 --> 00:25:23.260 +year? Yes, maybe. Because- All right, + +00:25:23.980 --> 00:25:24.340 +moving on to the next question. + +00:25:25.400 --> 00:25:25.900 +Oh, unless you wanna add something. + +00:25:28.740 --> 00:25:29.240 +To expand a little bit on this name, + +00:25:33.140 --> 00:25:33.640 +I'm not sure where it stops. + +00:25:35.460 --> 00:25:35.600 +Like, is it really, it's just about the + +00:25:37.740 --> 00:25:38.240 +browser, What I just built is something more? + +00:25:42.340 --> 00:25:42.580 +So I'm not sure if I should limit the name + +00:25:44.380 --> 00:25:44.880 +here. Okay, now let's go on. + +00:25:47.440 --> 00:25:47.700 +You know what? You know what they say about + +00:25:48.700 --> 00:25:49.180 +programming, there's only 1 fundamental + +00:25:50.720 --> 00:25:51.220 +problem, no sorry, 2 fundamental problems, + +00:25:53.400 --> 00:25:53.860 +garbage collection and naming things. + +00:25:55.200 --> 00:25:55.320 +So you're stuck in the second 1 and you + +00:25:56.200 --> 00:25:56.700 +mentioned the first 1 as well. + +00:25:59.580 --> 00:26:00.080 +Alright, moving on to the next question. + +00:26:01.860 --> 00:26:02.080 +Can you use browser extensions with this, + +00:26:03.700 --> 00:26:03.840 +for example uBlock, SponsorBlock or + +00:26:06.780 --> 00:26:07.120 +Darkreader? Yes, of course. + +00:26:09.020 --> 00:26:09.320 +I think someone was maybe a little bit + +00:26:11.140 --> 00:26:11.640 +confused that the browser is inside Emacs. + +00:26:14.540 --> 00:26:15.040 +This is something totally normal for us ex-WM + +00:26:18.040 --> 00:26:18.220 +users. It's like every program for me is + +00:26:21.040 --> 00:26:21.540 +inside Emacs. This is just a normal Firefox. + +00:26:24.320 --> 00:26:24.640 +It just doesn't have like the window + +00:26:26.580 --> 00:26:27.080 +decoration. So there's of course there's, + +00:26:31.360 --> 00:26:31.860 +no, This is the ad blocker. + +00:26:33.840 --> 00:26:34.340 +I don't know why it's not working here. + +00:26:38.560 --> 00:26:39.060 +But you can have all you have in Firefox. + +00:26:44.820 --> 00:26:44.920 +OK. OK, lovely. Are you ready to move on to + +00:26:45.920 --> 00:26:46.080 +the next question? Or do you want to add + +00:26:47.600 --> 00:26:48.100 +something else? Yes, next question please. + +00:26:51.100 --> 00:26:51.600 +All right. So are there any inherent security + +00:26:53.000 --> 00:26:53.500 +issues with this, like bidirectional + +00:26:55.640 --> 00:26:55.960 +synchronization? Sounds like a possible + +00:26:57.120 --> 00:26:57.620 +issue. How are they solved? + +00:27:00.660 --> 00:27:00.760 +Can a malicious website impact Emacs or the + +00:27:10.520 --> 00:27:11.020 +host system? No, the website has no intro. + +00:27:15.120 --> 00:27:15.620 +It can do little stuff. + +00:27:20.200 --> 00:27:20.700 +There's this, it's a web extension, + +00:27:22.880 --> 00:27:23.300 +it's a browser extension inside the browser + +00:27:24.800 --> 00:27:25.300 +and it has like a limited interface. + +00:27:27.440 --> 00:27:27.920 +It uses a web extension API, + +00:27:30.980 --> 00:27:31.480 +there's a tabs API, you can listen on tabs, + +00:27:33.820 --> 00:27:34.320 +here you can tabs, browser tabs, + +00:27:36.340 --> 00:27:36.820 +Please notify me if there's 1 created, + +00:27:37.600 --> 00:27:38.040 +updated, moved, detached, + +00:27:40.240 --> 00:27:40.520 +attached, removed. So the people I think + +00:27:44.020 --> 00:27:44.440 +working at Google Chrome put some thought + +00:27:49.540 --> 00:27:49.920 +into it and at least this part seems quite + +00:27:52.960 --> 00:27:53.300 +well designed. Okay, next question, + +00:27:56.880 --> 00:27:57.100 +please. All right. So when do you think + +00:27:57.880 --> 00:27:58.380 +you'll make a first release? + +00:28:00.220 --> 00:28:00.420 +I hate needing browser extensions and would + +00:28:01.680 --> 00:28:02.180 +love to control my tabs in Emacs. + +00:28:07.340 --> 00:28:07.540 +Yes, I don't know. I would like to do it + +00:28:09.400 --> 00:28:09.900 +soon, but I have stuff to do. + +00:28:13.260 --> 00:28:13.760 +This is not the simplest project. + +00:28:18.660 --> 00:28:19.020 +What I can tell you, I will put the code + +00:28:20.480 --> 00:28:20.980 +online in the next days, + +00:28:25.080 --> 00:28:25.360 +maybe even next week, because it's not + +00:28:27.980 --> 00:28:28.080 +pretty, but it's also not bad and there's a + +00:28:28.940 --> 00:28:29.440 +lot of stuff there already. + +00:28:32.120 --> 00:28:32.620 +And For those who don't mind looking at + +00:28:35.500 --> 00:28:36.000 +unfinished things for inspiration or maybe + +00:28:39.320 --> 00:28:39.820 +their own work, I want to put it online. + +00:28:43.620 --> 00:28:44.020 +And if it's released, I will do some bigger + +00:28:46.560 --> 00:28:46.860 +announcement. And if it's getting released, + +00:28:48.840 --> 00:28:49.040 +can you write it back in Emacs console or + +00:28:51.760 --> 00:28:51.940 +conf, of course? Well, + +00:28:53.440 --> 00:28:53.600 +no pressure. Next year you need to have it + +00:28:55.320 --> 00:28:55.580 +released and you'll need to give us a GitHub + +00:28:59.900 --> 00:29:00.060 +page. Alright, moving on to the next + +00:29:01.560 --> 00:29:01.880 +question. What happened to the Sway + +00:29:03.040 --> 00:29:03.540 +compositor you showed last year? + +00:29:06.720 --> 00:29:07.220 +Yeah, that's like, this is the perfect + +00:29:10.680 --> 00:29:11.180 +question for like after the last 1. + +00:29:12.600 --> 00:29:13.100 +It's also not finished. + +00:29:16.960 --> 00:29:17.120 +And it's also not finished Because while I + +00:29:19.160 --> 00:29:19.660 +did a tech demo like I did this time, + +00:29:20.740 --> 00:29:21.220 +I'm sorry it's not finished, + +00:29:23.480 --> 00:29:23.600 +but I don't have that big a need for it and + +00:29:25.080 --> 00:29:25.580 +it's a lot of work to get it finished. + +00:29:28.140 --> 00:29:28.640 +Because it's a similar architecture, + +00:29:31.940 --> 00:29:32.440 +like this different server clients + +00:29:35.640 --> 00:29:35.980 +architecture stuff and Emacs is still in the + +00:29:42.140 --> 00:29:42.640 +callback hell time as you call it. + +00:29:46.260 --> 00:29:46.440 +So it's not that easy to get it working and I + +00:29:49.540 --> 00:29:49.920 +don't have that much need for a valent window + +00:29:52.720 --> 00:29:52.920 +manager because the other 1 still works and + +00:29:54.520 --> 00:29:55.020 +there's more interesting stuff to do. + +00:29:58.020 --> 00:29:58.180 +But also I know it has a lot of potential if + +00:30:00.840 --> 00:30:01.000 +it works and if it is released And I know a + +00:30:02.320 --> 00:30:02.520 +lot of people are waiting for it, + +00:30:04.200 --> 00:30:04.700 +so I have it in the back of my mind. + +00:30:06.720 --> 00:30:07.220 +And if someone else feels compelled, + +00:30:10.460 --> 00:30:10.680 +please take a look at the code and do + +00:30:12.980 --> 00:30:13.340 +something. Yeah, whoever asked the question, + +00:30:14.120 --> 00:30:14.620 +this is your task now. + +00:30:17.580 --> 00:30:17.900 +All right, moving on to the last question. + +00:30:18.900 --> 00:30:19.140 +We have about 4 minutes left, + +00:30:20.160 --> 00:30:20.660 +so it looks like we are... + +00:30:22.660 --> 00:30:22.760 +By the way, Michael was worried that he + +00:30:24.200 --> 00:30:24.700 +wouldn't have many questions to answer, + +00:30:27.380 --> 00:30:27.560 +and I am very proud to say and to prove you + +00:30:29.540 --> 00:30:30.040 +wrong. All right, next question. + +00:30:31.920 --> 00:30:32.080 +Does the browser have to be Firefox for + +00:30:33.480 --> 00:30:33.980 +syncing or is there a choice there? + +00:30:39.020 --> 00:30:39.340 +I think it's not. There's a choice. + +00:30:42.180 --> 00:30:42.440 +You can use any browser who supports web + +00:30:43.940 --> 00:30:44.440 +extensions. I think it's like a standardized + +00:30:49.900 --> 00:30:50.080 +interface. You can use any browser who does + +00:30:52.440 --> 00:30:52.640 +it. Chrome does it. But they're moving to a + +00:30:55.260 --> 00:30:55.760 +new web extension API to block ad blockers. + +00:30:59.680 --> 00:31:00.040 +I don't know if that does any turmoil for my + +00:31:02.860 --> 00:31:03.360 +extension and I frankly don't care that much. + +00:31:05.680 --> 00:31:06.180 +All right, fair answer. + +00:31:09.960 --> 00:31:10.280 +I don't see anyone who's joined us on BBB, + +00:31:11.940 --> 00:31:12.080 +by the way, we're going to move on with the + +00:31:13.020 --> 00:31:13.480 +stream to the next talk. + +00:31:15.380 --> 00:31:15.660 +But if you've got any questions for Michael, + +00:31:17.320 --> 00:31:17.480 +Feel free to join on BBB and ask your + +00:31:19.280 --> 00:31:19.440 +questions. I've said before that people tend + +00:31:22.420 --> 00:31:22.860 +to be shy and only join when the stream goes + +00:31:25.900 --> 00:31:26.040 +to a next talk. But I like to remind those + +00:31:27.720 --> 00:31:27.880 +people, eventually those talks are going to + +00:31:28.280 --> 00:31:28.620 +be published. Obviously, + +00:31:30.480 --> 00:31:30.680 +we'll make sure that nothing private was + +00:31:31.720 --> 00:31:32.220 +divulged during these discussions. + +00:31:34.640 --> 00:31:34.760 +But, you know, it's, if you can muster up the + +00:31:35.580 --> 00:31:35.740 +courage to go on the scene, + +00:31:38.940 --> 00:31:39.160 +it's always nice to have people join and ask + +00:31:41.100 --> 00:31:41.400 +questions. Michael, we have about 3 minutes + +00:31:43.080 --> 00:31:43.580 +left. Do you have any last words on perhaps + +00:31:45.860 --> 00:31:46.240 +anything to add on what you've presented + +00:31:49.780 --> 00:31:50.160 +today? Yeah, I just thought about maybe I + +00:31:55.260 --> 00:31:55.760 +show something. But there's this portals. + +00:32:00.140 --> 00:32:00.380 +Another thing, if someone has some more + +00:32:02.540 --> 00:32:02.920 +names, I would be quite interested because + +00:32:03.900 --> 00:32:04.400 +naming stuff is difficult. + +00:32:11.600 --> 00:32:12.100 +And this defines the database. + +00:32:14.200 --> 00:32:14.700 +There's the database definition. + +00:32:16.440 --> 00:32:16.920 +I call the database thingy, + +00:32:19.600 --> 00:32:19.760 +it's called Sponti. So I don't know what + +00:32:20.840 --> 00:32:21.340 +you're thinking about this name. + +00:32:23.220 --> 00:32:23.720 +So I think I want to have a database, + +00:32:25.360 --> 00:32:25.860 +it's called, it's this database. + +00:32:28.360 --> 00:32:28.740 +And then I define the database and I define + +00:32:29.820 --> 00:32:30.060 +the subject predicate object. + +00:32:31.060 --> 00:32:31.560 +So I have a browser session, + +00:32:32.520 --> 00:32:33.020 +browser session has tabs, + +00:32:36.820 --> 00:32:37.320 +a tab has, it comes from another tab maybe, + +00:32:39.860 --> 00:32:40.360 +or it shows an URL. A window, + +00:32:42.180 --> 00:32:42.680 +a session can also have a window, + +00:32:44.600 --> 00:32:44.760 +a window shows tabs. And then you can + +00:32:46.120 --> 00:32:46.380 +annotate stuff. You can say, + +00:32:49.920 --> 00:32:50.100 +okay, I have a node or a URL and I can tag it + +00:32:51.600 --> 00:32:52.100 +with a title, date, tag, + +00:32:54.940 --> 00:32:55.440 +or with another node or with body text. + +00:32:58.640 --> 00:32:58.780 +And I have an environment that's like a + +00:33:01.420 --> 00:33:01.840 +machine, the PC that's running on or Emacs + +00:33:03.640 --> 00:33:03.840 +itself. And then you have stuff about the + +00:33:04.900 --> 00:33:05.280 +machine and you have a client, + +00:33:06.660 --> 00:33:07.160 +this is the process session actually. + +00:33:08.680 --> 00:33:09.180 +So maybe I should change this. + +00:33:17.680 --> 00:33:18.180 +Okay. And 1 last thing. + +00:33:20.020 --> 00:33:20.220 +I have something I wanted to show you, + +00:33:21.600 --> 00:33:22.100 +but it didn't finish in time. + +00:33:23.240 --> 00:33:23.480 +Okay, Michael, just to be clear, + +00:33:24.720 --> 00:33:25.220 +you've got only 1 minute left. + +00:33:27.880 --> 00:33:28.380 +Yes, it's not that difficult. + +00:33:30.140 --> 00:33:30.640 +I wanted to integrate highlight. + +00:33:32.300 --> 00:33:32.780 +You just go to a web page, + +00:33:35.660 --> 00:33:35.800 +highlight stuff, do a right click and then it + +00:33:39.320 --> 00:33:39.820 +says save to Emacs. And you saved it to Emacs + +00:33:42.500 --> 00:33:42.940 +and it's there inside the node. + +00:33:45.400 --> 00:33:45.900 +But no, this 1 is not finished yet. + +00:33:47.960 --> 00:33:48.240 +You could do it live but there's no time + +00:33:49.540 --> 00:33:50.040 +left. So thank you for watching. + +00:33:51.960 --> 00:33:52.180 +Yes, and thank you so much, + +00:33:54.000 --> 00:33:54.280 +Michael, for taking the time to present and + +00:33:54.960 --> 00:33:55.460 +to answer the questions. + +00:33:57.340 --> 00:33:57.540 +The stream is going to move to the next talk + +00:34:00.680 --> 00:34:01.080 +in about 45 seconds. It's a talk by Wasem + +00:34:02.680 --> 00:34:03.180 +Masa, which I'm very excited about. + +00:34:05.740 --> 00:34:06.240 +And other than that, Michael, + +00:34:08.239 --> 00:34:08.460 +I'm looking forward to seeing you again next + +00:34:10.760 --> 00:34:11.000 +year with new GitHub repositories to share + +00:34:12.500 --> 00:34:13.000 +with us. Right? No pressure. + +00:34:17.500 --> 00:34:17.900 +And on that note, I wish you a very good day + +00:34:19.400 --> 00:34:19.600 +and I'll see you next time, + +00:34:21.820 --> 00:34:22.199 +I suppose. Yes, of course. + +00:34:24.080 --> 00:34:24.580 +I would like to do it next time again. + +00:34:25.679 --> 00:34:26.179 +It's a lot of fun. All right. + +00:34:27.280 --> 00:34:27.780 +Okay. Bye-bye, Michael. + +00:34:33.580 --> 00:34:34.080 +Bye-bye and thanks. All right. + +00:34:35.540 --> 00:34:35.880 +I think, yes. Okay. We finished. + +00:34:36.460 --> 00:34:36.600 +So, thank you so much, + +00:34:38.199 --> 00:34:38.400 +Michael. I need to get ready for the next + +00:34:39.340 --> 00:34:39.840 +talk. So I'll see you later. + +00:34:40.920 --> 00:34:41.420 +I'll see you later, sorry. + +00:34:45.060 --> 00:34:45.560 +Yes, see you. Bye-bye. + +00:34:47.280 --> 00:34:47.560 +You are currently the only person in this + +00:34:47.560 --> 00:34:48.060 +conference. diff --git a/2023/talks/flat.md b/2023/talks/flat.md index c18df9ed..bf579540 100644 --- a/2023/talks/flat.md +++ b/2023/talks/flat.md @@ -9,6 +9,13 @@ # A modern Emacs look-and-feel without pain Pedro A. Aranda (he) +[[!template id="help" +summary="main talk does not have captions" +tags="help_with_main_captions" +message="""This talk does not have captions yet. +Would you like to help [caption this talk](/captioning)? +You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt)."""]] + [[!inline pages="internal(2023/info/flat-before)" raw="yes"]] In my talk I will show how to enrich themes without having to write them diff --git a/2023/talks/koutline.md b/2023/talks/koutline.md index 3312e195..dcc51538 100644 --- a/2023/talks/koutline.md +++ b/2023/talks/koutline.md @@ -9,6 +9,13 @@ # Using Koutline for stream of thought journaling Matthew Jorgensen (PlasmaStrike) - +[[!template id="help" +summary="main talk does not have captions" +tags="help_with_main_captions" +message="""This talk does not have captions yet. +Would you like to help [caption this talk](/captioning)? +You may be able to start with these [autogenerated captions](/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt)."""]] + [[!inline pages="internal(2023/info/koutline-before)" raw="yes"]] I will talk about a nice journaling workflow I have developed using the diff --git a/2023/talks/poltys.md b/2023/talks/poltys.md index 3a35aa04..4cd13b92 100644 --- a/2023/talks/poltys.md +++ b/2023/talks/poltys.md @@ -9,6 +9,13 @@ # The browser in a buffer Michael Bauer (he/him) - Pronunciation: [ˈmɪçaːʔeːl] [ˈbaʊ̯ɐ], IRC: permcu, , +[[!template id="help" +summary="main talk does not have captions" +tags="help_with_main_captions" +message="""This talk does not have captions yet. +Would you like to help [caption this talk](/captioning)? +You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--original.vtt)."""]] + [[!inline pages="internal(2023/info/poltys-before)" raw="yes"]] In this talk I am going to show a thing I made to integrate my second -- cgit v1.2.3