diff options
Diffstat (limited to '2023')
17 files changed, 11121 insertions, 4792 deletions
diff --git a/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt b/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt index 7902ac79..2d7cd23d 100644 --- a/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt +++ b/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt @@ -1,4664 +1,4664 @@ WEBVTT -00:00:03.480 --> 00:00:03.840 +00:00:02.540 --> 00:00:03.840 All right. Hi again, everyone. -00:00:04.640 --> 00:00:04.839 +00:00:03.840 --> 00:00:04.839 It's been a while. Well, -00:00:06.480 --> 00:00:06.980 +00:00:04.839 --> 00:00:06.980 actually, it's been like 2 minutes tops. -00:00:08.599 --> 00:00:09.099 +00:00:07.819 --> 00:00:09.099 We were just with John Wheatley, -00:00:10.519 --> 00:00:11.019 +00:00:09.099 --> 00:00:11.019 and now we are with Stefan Krangas. -00:00:15.400 --> 00:00:15.900 +00:00:11.120 --> 00:00:15.900 Hi. Hi. So as we said before, -00:00:20.440 --> 00:00:20.600 +00:00:16.160 --> 00:00:20.600 Stefan is co-maintainer now of Is it the -00:00:22.540 --> 00:00:22.920 +00:00:20.600 --> 00:00:22.920 entire Emacs project? How do you describe -00:00:25.760 --> 00:00:26.260 +00:00:22.920 --> 00:00:26.260 this? Yeah, co-maintainer of GNU Emacs. -00:00:29.020 --> 00:00:29.380 +00:00:27.439 --> 00:00:29.380 Right, perfect. So you know what? -00:00:31.260 --> 00:00:31.760 +00:00:29.380 --> 00:00:31.760 Because I'm sure everyone is dying to hear -00:00:33.740 --> 00:00:33.840 +00:00:32.420 --> 00:00:33.840 everything you've got to say in your -00:00:35.540 --> 00:00:36.040 +00:00:33.840 --> 00:00:36.040 presentation I'm just going to shut up now -00:00:37.360 --> 00:00:37.640 +00:00:36.040 --> 00:00:37.640 and leave the floor to you. -00:00:38.940 --> 00:00:39.440 +00:00:37.640 --> 00:00:39.440 Do you need to share your screen or anything? -00:00:44.900 --> 00:00:45.239 +00:00:40.080 --> 00:00:45.239 No. Okay great well I'll just cut my webcam -00:00:46.879 --> 00:00:47.059 +00:00:45.239 --> 00:00:47.059 off I'll still be in the background so do not -00:00:48.720 --> 00:00:48.940 +00:00:47.059 --> 00:00:48.940 hesitate if you've got any problem I'm still -00:00:52.239 --> 00:00:52.560 +00:00:48.940 --> 00:00:52.560 around And I'll see you just beacon whenever -00:00:53.760 --> 00:00:53.940 +00:00:52.560 --> 00:00:53.940 you're done. And I'll show up with the -00:00:55.840 --> 00:00:56.120 +00:00:53.940 --> 00:00:56.120 questions. All right? Thank you, -00:00:58.260 --> 00:00:58.739 +00:00:56.120 --> 00:00:58.739 Leo. And thank you, everyone, -00:01:01.879 --> 00:01:02.379 +00:00:58.739 --> 00:01:02.379 for being here. I'm Stefan Kangas. -00:01:06.160 --> 00:01:06.660 +00:01:02.739 --> 00:01:06.660 So as Leo explained, I am recently appointed -00:01:09.160 --> 00:01:09.660 +00:01:06.680 --> 00:01:09.660 as a co-maintainer of GNU Emacs, -00:01:12.900 --> 00:01:13.400 +00:01:10.960 --> 00:01:13.400 which a role that I'm fulfilling currently -00:01:16.960 --> 00:01:17.460 +00:01:13.780 --> 00:01:17.460 with Eli Sretsky, who's been co-maintainer -00:01:23.140 --> 00:01:23.320 +00:01:18.840 --> 00:01:23.320 for quite some time. So I got the question to -00:01:26.400 --> 00:01:26.780 +00:01:23.320 --> 00:01:26.780 be a co-maintainer from Richard in August -00:01:28.780 --> 00:01:29.280 +00:01:26.780 --> 00:01:29.280 this year. And of course, -00:01:30.960 --> 00:01:31.460 +00:01:29.600 --> 00:01:31.460 when you get a question like that, -00:01:33.520 --> 00:01:34.020 +00:01:31.840 --> 00:01:34.020 I couldn't not say yes. -00:01:38.940 --> 00:01:39.440 +00:01:34.360 --> 00:01:39.440 So here we are. I can't tell you how excited -00:01:44.680 --> 00:01:45.060 +00:01:39.920 --> 00:01:45.060 I am to have this opportunity to address the -00:01:46.880 --> 00:01:47.380 +00:01:45.060 --> 00:01:47.380 community in this way. -00:01:49.300 --> 00:01:49.800 +00:01:47.640 --> 00:01:49.800 I'm really humbled, of course, -00:01:54.840 --> 00:01:55.040 +00:01:50.380 --> 00:01:55.040 to be part of it, and to be able to serve the -00:01:58.580 --> 00:01:59.080 +00:01:55.040 --> 00:01:59.080 community in this capacity. -00:02:03.820 --> 00:02:04.080 +00:02:00.080 --> 00:02:04.080 I've used Emacs, I think many of you might -00:02:06.600 --> 00:02:06.820 +00:02:04.080 --> 00:02:06.820 also have used Emacs for quite some time, -00:02:10.600 --> 00:02:11.100 +00:02:06.820 --> 00:02:11.100 but I'm going on 2 decades as an Emacs user. -00:02:14.020 --> 00:02:14.280 +00:02:11.120 --> 00:02:14.280 My involvement in Emacs Lisp development is, -00:02:15.660 --> 00:02:16.160 +00:02:14.280 --> 00:02:16.160 I mean, almost as long, -00:02:19.180 --> 00:02:19.680 +00:02:16.660 --> 00:02:19.680 but my core development goes back only 4, -00:02:26.200 --> 00:02:26.700 +00:02:19.960 --> 00:02:26.700 5 years. I have to also thank the EmacsConf -00:02:28.340 --> 00:02:28.840 +00:02:27.180 --> 00:02:28.840 organizers who are doing, -00:02:31.840 --> 00:02:31.960 +00:02:29.100 --> 00:02:31.960 I think, a tremendous job and have done a -00:02:34.540 --> 00:02:34.820 +00:02:31.960 --> 00:02:34.820 tremendous job over the years in really -00:02:37.300 --> 00:02:37.800 +00:02:34.820 --> 00:02:37.800 building and strengthening what I think is -00:02:41.960 --> 00:02:42.180 +00:02:38.300 --> 00:02:42.180 this fantastic community of users and -00:02:45.620 --> 00:02:46.120 +00:02:42.180 --> 00:02:46.120 developers and people interested in Emacs. -00:02:49.620 --> 00:02:50.100 +00:02:46.620 --> 00:02:50.100 I actually had the chance to meet up with Eli -00:02:53.200 --> 00:02:53.700 +00:02:50.100 --> 00:02:53.700 Sretzky, as well as another Emacs hacker, -00:02:56.580 --> 00:02:57.080 +00:02:53.960 --> 00:02:57.080 Andrea Corallo, when I was at the GNU -00:02:59.960 --> 00:03:00.460 +00:02:57.980 --> 00:03:00.460 project's 40 years celebration, -00:03:03.840 --> 00:03:04.340 +00:03:00.800 --> 00:03:04.340 40 years since the GNU project was announced. -00:03:08.040 --> 00:03:08.540 +00:03:05.280 --> 00:03:08.540 And it was very inspiring in general to meet -00:03:12.280 --> 00:03:12.780 +00:03:09.660 --> 00:03:12.780 people. And I think EmacsConf should also, -00:03:17.860 --> 00:03:18.360 +00:03:12.980 --> 00:03:18.360 I think, serve to inspire and sort of help -00:03:21.880 --> 00:03:22.120 +00:03:19.020 --> 00:03:22.120 bring something to the type of work that many -00:03:23.860 --> 00:03:24.340 +00:03:22.120 --> 00:03:24.340 of us are doing to improve Emacs, -00:03:26.040 --> 00:03:26.200 +00:03:24.340 --> 00:03:26.200 whether it's in package development or in -00:03:29.180 --> 00:03:29.680 +00:03:26.200 --> 00:03:29.680 core, to bring out the new and exciting ideas -00:03:33.540 --> 00:03:34.040 +00:03:29.800 --> 00:03:34.040 and get people enthusiastic about Emacs, -00:03:37.080 --> 00:03:37.580 +00:03:34.080 --> 00:03:37.580 about hacking on Emacs. -00:03:44.900 --> 00:03:45.400 +00:03:38.560 --> 00:03:45.400 This is my little attempt to contribute with -00:03:48.940 --> 00:03:49.440 +00:03:45.600 --> 00:03:49.440 let's say 2 things. I will first try to -00:03:54.180 --> 00:03:54.400 +00:03:49.600 --> 00:03:54.400 present how we do Emacs core development and -00:03:58.080 --> 00:03:58.360 +00:03:54.400 --> 00:03:58.360 why we've done some of the choices that we -00:04:01.560 --> 00:04:02.060 +00:03:58.360 --> 00:04:02.060 have, because We have seen at times that -00:04:06.300 --> 00:04:06.500 +00:04:02.280 --> 00:04:06.500 perhaps people aren't always clear on this or -00:04:08.160 --> 00:04:08.660 +00:04:06.500 --> 00:04:08.660 that aspect. So maybe this will be -00:04:12.040 --> 00:04:12.260 +00:04:08.960 --> 00:04:12.260 enlightening. I will also try to present some -00:04:17.360 --> 00:04:17.860 +00:04:12.260 --> 00:04:17.860 kind of vision for what Emacs could be with -00:04:21.180 --> 00:04:21.680 +00:04:18.060 --> 00:04:21.680 your help. Emacs is already very good, -00:04:26.380 --> 00:04:26.880 +00:04:21.820 --> 00:04:26.880 as we all know, but we could be even better. -00:04:29.440 --> 00:04:29.940 +00:04:27.040 --> 00:04:29.940 That's the reality of any type of software -00:04:34.600 --> 00:04:35.100 +00:04:30.060 --> 00:04:35.100 development. So the overall idea of this talk -00:04:38.080 --> 00:04:38.380 +00:04:35.220 --> 00:04:38.380 is to tell you, if you're an Emacs list -00:04:39.960 --> 00:04:40.460 +00:04:38.380 --> 00:04:40.460 package developer today, -00:04:43.700 --> 00:04:44.200 +00:04:40.760 --> 00:04:44.200 why you should become an Emacs core -00:04:47.140 --> 00:04:47.300 +00:04:44.440 --> 00:04:47.300 developer, and the sort of steps that you -00:04:48.920 --> 00:04:49.340 +00:04:47.300 --> 00:04:49.340 might want to take to do that, -00:04:51.600 --> 00:04:52.100 +00:04:49.340 --> 00:04:52.100 or how you can help Emacs core development. -00:04:54.160 --> 00:04:54.320 +00:04:52.120 --> 00:04:54.320 Even if you're just a user and you found a -00:04:57.040 --> 00:04:57.340 +00:04:54.320 --> 00:04:57.340 bug, report it. Perhaps you have a feature -00:04:58.380 --> 00:04:58.820 +00:04:57.340 --> 00:04:58.820 request that you'd like to discuss. -00:05:02.180 --> 00:05:02.680 +00:04:58.820 --> 00:05:02.680 I think we need more interaction in general -00:05:04.400 --> 00:05:04.900 +00:05:02.900 --> 00:05:04.900 between Emacs core developers, -00:05:05.940 --> 00:05:06.440 +00:05:05.080 --> 00:05:06.440 typically on emacsdevil.gnu.org, -00:05:11.920 --> 00:05:12.420 +00:05:08.440 --> 00:05:12.420 the mailing list that we use to coordinate -00:05:14.380 --> 00:05:14.880 +00:05:12.840 --> 00:05:14.880 our development efforts, -00:05:19.020 --> 00:05:19.520 +00:05:15.860 --> 00:05:19.520 between Emacs devil package developers and -00:05:21.960 --> 00:05:22.460 +00:05:19.520 --> 00:05:22.460 users, Because there is so much great stuff -00:05:24.240 --> 00:05:24.740 +00:05:22.500 --> 00:05:24.740 really going on in the community. -00:05:28.120 --> 00:05:28.620 +00:05:25.520 --> 00:05:28.620 But I think sometimes the step to core -00:05:32.360 --> 00:05:32.500 +00:05:28.740 --> 00:05:32.500 development seems big and perhaps even a -00:05:35.280 --> 00:05:35.440 +00:05:32.500 --> 00:05:35.440 little bit scary. So I'm hoping to be able to -00:05:38.440 --> 00:05:38.720 +00:05:35.440 --> 00:05:38.720 help bridge that gap, even if just a little -00:05:42.740 --> 00:05:43.000 +00:05:38.720 --> 00:05:43.000 bit. We need more people contributing to -00:05:46.240 --> 00:05:46.740 +00:05:43.000 --> 00:05:46.740 Emacs itself. And also a small disclaimer -00:05:49.740 --> 00:05:49.920 +00:05:46.840 --> 00:05:49.920 here, in this talk I will only be able to -00:05:53.200 --> 00:05:53.700 +00:05:49.920 --> 00:05:53.700 speak for myself, not for GNU or the Emacs -00:05:55.600 --> 00:05:56.100 +00:05:53.760 --> 00:05:56.100 project, even if it's like a little bit more -00:05:58.660 --> 00:05:58.780 +00:05:56.500 --> 00:05:58.780 official, but I will also try to give the -00:06:01.500 --> 00:06:01.720 +00:05:58.780 --> 00:06:01.720 view of the project where it makes sense to -00:06:04.020 --> 00:06:04.200 +00:06:01.720 --> 00:06:04.200 do so. Keep in mind, I'm only 1 of the -00:06:06.320 --> 00:06:06.820 +00:06:04.200 --> 00:06:06.820 maintainers, the co-maintainer together with -00:06:09.320 --> 00:06:09.820 +00:06:06.820 --> 00:06:09.820 Eli, and I can't just make decisions -00:06:10.900 --> 00:06:11.400 +00:06:09.880 --> 00:06:11.400 arbitrarily. In a sense, -00:06:14.020 --> 00:06:14.180 +00:06:11.680 --> 00:06:14.180 I'm as a co-maintainer and trusted as a -00:06:15.200 --> 00:06:15.420 +00:06:14.180 --> 00:06:15.420 steward and trusted by, -00:06:16.180 --> 00:06:16.680 +00:06:15.420 --> 00:06:16.680 of course, the GNU project, -00:06:21.500 --> 00:06:22.000 +00:06:16.680 --> 00:06:22.000 but also by the community That we really -00:06:23.680 --> 00:06:24.180 +00:06:22.580 --> 00:06:24.180 can't just take decisions, -00:06:26.880 --> 00:06:27.380 +00:06:24.440 --> 00:06:27.380 I think, arbitrarily. Even if it sometimes -00:06:30.060 --> 00:06:30.560 +00:06:27.380 --> 00:06:30.560 perhaps may seem so, or it may feel that way, -00:06:34.840 --> 00:06:35.080 +00:06:31.100 --> 00:06:35.080 we really have to realize that we can't just -00:06:39.020 --> 00:06:39.200 +00:06:35.080 --> 00:06:39.200 push too much of just a personal agenda to -00:06:41.280 --> 00:06:41.520 +00:06:39.200 --> 00:06:41.520 the extent that it doesn't line up with what -00:06:44.760 --> 00:06:45.260 +00:06:41.520 --> 00:06:45.260 is best for eMacs going forward, -00:06:50.020 --> 00:06:50.320 +00:06:47.500 --> 00:06:50.320 and the more overall picture of that. -00:06:52.480 --> 00:06:52.640 +00:06:50.320 --> 00:06:52.640 So there are limitations that come with the -00:06:59.440 --> 00:06:59.940 +00:06:52.640 --> 00:06:59.940 job, if you like. So 1 question I often, -00:07:02.120 --> 00:07:02.280 +00:07:00.040 --> 00:07:02.280 I actually got this week when I started a new -00:07:04.000 --> 00:07:04.500 +00:07:02.280 --> 00:07:04.500 assignment at work, and I got the question -00:07:08.240 --> 00:07:08.720 +00:07:06.280 --> 00:07:08.720 when I said I'm involved in Emacs -00:07:10.080 --> 00:07:10.400 +00:07:08.720 --> 00:07:10.400 development. And then someone asked, -00:07:11.980 --> 00:07:12.480 +00:07:10.400 --> 00:07:12.480 oh, is Emacs still developed? -00:07:16.220 --> 00:07:16.400 +00:07:12.720 --> 00:07:16.400 Isn't it done almost? And I answered to that, -00:07:17.520 --> 00:07:17.880 +00:07:16.400 --> 00:07:17.880 yes, we are still around. -00:07:21.500 --> 00:07:21.940 +00:07:17.880 --> 00:07:21.940 We're going on 40 years now as a software -00:07:25.440 --> 00:07:25.940 +00:07:21.940 --> 00:07:25.940 project. Not many projects actually can claim -00:07:28.520 --> 00:07:29.020 +00:07:26.120 --> 00:07:29.020 that type of longevity. -00:07:33.540 --> 00:07:33.900 +00:07:29.540 --> 00:07:33.900 But Emacs is among those few that can. -00:07:35.860 --> 00:07:36.340 +00:07:33.900 --> 00:07:36.340 And of course, we have had some very exciting -00:07:37.540 --> 00:07:38.000 +00:07:36.340 --> 00:07:38.000 developments in recent versions. -00:07:41.100 --> 00:07:41.600 +00:07:38.000 --> 00:07:41.600 I think John just gave you an update on that. -00:07:45.860 --> 00:07:46.160 +00:07:41.980 --> 00:07:46.160 But we had just some highlights out of many -00:07:47.440 --> 00:07:47.940 +00:07:46.160 --> 00:07:47.940 highlights that you could give, -00:07:50.780 --> 00:07:50.920 +00:07:48.580 --> 00:07:50.920 really, we got the TreeSetter support in -00:07:53.900 --> 00:07:54.320 +00:07:50.920 --> 00:07:54.320 Emacs 29 that we now need to sort of extend -00:07:55.840 --> 00:07:56.340 +00:07:54.320 --> 00:07:56.340 and develop. We have merged EGLOT, -00:07:59.120 --> 00:07:59.440 +00:07:56.380 --> 00:07:59.440 so we have LSP support out of the box, -00:08:00.480 --> 00:08:00.980 +00:07:59.440 --> 00:08:00.980 I think is a huge improvement. -00:08:02.560 --> 00:08:02.960 +00:08:01.400 --> 00:08:02.960 Native compilation, of course, -00:08:06.020 --> 00:08:06.520 +00:08:02.960 --> 00:08:06.520 a big feature. I mean, -00:08:08.520 --> 00:08:08.900 +00:08:06.580 --> 00:08:08.900 that was Andrea's job, -00:08:10.760 --> 00:08:11.260 +00:08:08.900 --> 00:08:11.260 really, for performance. -00:08:13.900 --> 00:08:14.020 +00:08:11.460 --> 00:08:14.020 And it turns out that in many types of -00:08:15.440 --> 00:08:15.720 +00:08:14.020 --> 00:08:15.720 workloads and the types of stuff that people -00:08:17.080 --> 00:08:17.580 +00:08:15.720 --> 00:08:17.580 are doing, it often matters. -00:08:20.680 --> 00:08:21.180 +00:08:18.080 --> 00:08:21.180 And we're hoping to make that the default, -00:08:24.620 --> 00:08:24.960 +00:08:21.480 --> 00:08:24.960 perhaps already in Emacs 30. -00:08:26.720 --> 00:08:26.840 +00:08:24.960 --> 00:08:26.840 So there are things that are happening that -00:08:31.180 --> 00:08:31.680 +00:08:26.840 --> 00:08:31.680 fundamentally make Emacs better at a very -00:08:37.020 --> 00:08:37.360 +00:08:32.200 --> 00:08:37.360 core level. So, of course, -00:08:41.400 --> 00:08:41.679 +00:08:37.360 --> 00:08:41.679 why wouldn't you want to be involved in such -00:08:43.140 --> 00:08:43.440 +00:08:41.679 --> 00:08:43.440 an exciting and, I think, -00:08:50.740 --> 00:08:51.240 +00:08:43.440 --> 00:08:51.240 dynamic project? How is Emacs developed? -00:08:52.600 --> 00:08:53.000 +00:08:51.660 --> 00:08:53.000 Well, this is, I think, -00:08:53.680 --> 00:08:54.180 +00:08:53.000 --> 00:08:54.180 perhaps to some people, -00:08:55.800 --> 00:08:56.300 +00:08:54.200 --> 00:08:56.300 a little bit more of a threshold, -00:08:58.820 --> 00:08:59.100 +00:08:56.520 --> 00:08:59.100 if you like, because I think all of us know -00:09:02.140 --> 00:09:02.640 +00:08:59.100 --> 00:09:02.640 really that there is exciting and cool stuff -00:09:06.300 --> 00:09:06.560 +00:09:02.980 --> 00:09:06.560 that is going on in Emacs and has been going -00:09:08.000 --> 00:09:08.260 +00:09:06.560 --> 00:09:08.260 on over the last couple of years and we'll -00:09:09.720 --> 00:09:10.040 +00:09:08.260 --> 00:09:10.040 see even more of that, -00:09:10.680 --> 00:09:11.180 +00:09:10.040 --> 00:09:11.180 I think, going forward. -00:09:16.360 --> 00:09:16.580 +00:09:12.600 --> 00:09:16.580 1 thing is that communication still takes -00:09:19.840 --> 00:09:20.340 +00:09:16.580 --> 00:09:20.340 place over a mailing list in 2023. -00:09:23.300 --> 00:09:23.800 +00:09:21.240 --> 00:09:23.800 So we have emacsdevil at gnu.org, -00:09:25.640 --> 00:09:26.140 +00:09:24.440 --> 00:09:26.140 and that's where we develop Emacs. -00:09:29.700 --> 00:09:30.140 +00:09:26.680 --> 00:09:30.140 We use, we send patches back and forth, -00:09:30.860 --> 00:09:31.360 +00:09:30.140 --> 00:09:31.360 we comment on patches. -00:09:35.920 --> 00:09:36.420 +00:09:32.700 --> 00:09:36.420 And actually this workflow is very good, -00:09:39.240 --> 00:09:39.580 +00:09:36.700 --> 00:09:39.580 if you're used to it. Because guess what? -00:09:42.040 --> 00:09:42.200 +00:09:39.580 --> 00:09:42.200 As Emacs users, we like doing everything we -00:09:45.060 --> 00:09:45.220 +00:09:42.200 --> 00:09:45.220 can in Emacs, especially the core tasks that -00:09:49.480 --> 00:09:49.980 +00:09:45.220 --> 00:09:49.980 we're doing, such as developing Emacs itself. -00:09:52.360 --> 00:09:52.860 +00:09:50.140 --> 00:09:52.860 Of course, you want to do that fully within -00:09:55.080 --> 00:09:55.440 +00:09:52.960 --> 00:09:55.440 Emacs. So we hack Emacs Lisp in Emacs, -00:09:58.340 --> 00:09:58.840 +00:09:55.440 --> 00:09:58.840 we hack C in Emacs, we respond to emails also -00:10:02.220 --> 00:10:02.700 +00:10:00.240 --> 00:10:02.700 from Emacs, respond to bug reports, -00:10:04.540 --> 00:10:05.040 +00:10:02.700 --> 00:10:05.040 manage bug reports. We do all that stuff -00:10:07.580 --> 00:10:07.840 +00:10:05.460 --> 00:10:07.840 very, very smoothly. And it doesn't really -00:10:10.040 --> 00:10:10.540 +00:10:07.840 --> 00:10:10.540 matter in a sense, what is the medium? -00:10:11.580 --> 00:10:12.080 +00:10:10.560 --> 00:10:12.080 It happens to be email. -00:10:13.660 --> 00:10:14.160 +00:10:12.180 --> 00:10:14.160 Technically it could be anything, -00:10:16.320 --> 00:10:16.720 +00:10:14.440 --> 00:10:16.720 but email really has that type of staying -00:10:19.540 --> 00:10:19.640 +00:10:16.720 --> 00:10:19.640 power where we've been able to use it for a -00:10:20.760 --> 00:10:21.260 +00:10:19.640 --> 00:10:21.260 long time. And this is how, -00:10:23.860 --> 00:10:24.000 +00:10:22.360 --> 00:10:24.000 and we're still able to use it. -00:10:25.520 --> 00:10:25.800 +00:10:24.000 --> 00:10:25.800 And this is how free software was always -00:10:26.380 --> 00:10:26.640 +00:10:25.800 --> 00:10:26.640 developed in the past. -00:10:28.020 --> 00:10:28.380 +00:10:26.640 --> 00:10:28.380 Only in the last, let's say 10, -00:10:32.160 --> 00:10:32.440 +00:10:28.380 --> 00:10:32.440 15 years, We've had more development taking -00:10:35.060 --> 00:10:35.560 +00:10:32.440 --> 00:10:35.560 place perhaps on forges like GitHub, -00:10:39.060 --> 00:10:39.160 +00:10:35.580 --> 00:10:39.160 GitLab, whatever. But we are 1 of the -00:10:40.320 --> 00:10:40.680 +00:10:39.160 --> 00:10:40.680 holdouts. I mean, there are others, -00:10:42.340 --> 00:10:42.560 +00:10:40.680 --> 00:10:42.560 of course, like the Linux kernel has mailing -00:10:44.060 --> 00:10:44.340 +00:10:42.560 --> 00:10:44.340 lists. They're not trying to do that scale -00:10:47.080 --> 00:10:47.580 +00:10:44.340 --> 00:10:47.580 development on GitHub. -00:10:50.860 --> 00:10:51.360 +00:10:49.280 --> 00:10:51.360 And this is not just because we're Luddites -00:10:53.320 --> 00:10:53.560 +00:10:51.760 --> 00:10:53.560 that refuse to change. -00:10:55.080 --> 00:10:55.380 +00:10:53.560 --> 00:10:55.380 We just have to do it in the old way, -00:10:56.820 --> 00:10:57.120 +00:10:55.380 --> 00:10:57.120 because it is the old way, -00:10:58.180 --> 00:10:58.680 +00:10:57.120 --> 00:10:58.680 and that's the way it should be. -00:10:59.920 --> 00:11:00.420 +00:10:58.780 --> 00:11:00.420 No, it's actually because we, -00:11:03.120 --> 00:11:03.460 +00:11:01.220 --> 00:11:03.460 as core developers, the core development team -00:11:05.020 --> 00:11:05.460 +00:11:03.460 --> 00:11:05.460 and the people already involved and doing -00:11:08.320 --> 00:11:08.560 +00:11:05.460 --> 00:11:08.560 tremendous, I mean large amounts of work in -00:11:11.980 --> 00:11:12.480 +00:11:08.560 --> 00:11:12.480 Emacs has very efficient workflows built up -00:11:15.240 --> 00:11:15.620 +00:11:12.720 --> 00:11:15.620 based on this. So of course, -00:11:17.280 --> 00:11:17.780 +00:11:15.620 --> 00:11:17.780 I mean moving to something else is something -00:11:19.680 --> 00:11:20.180 +00:11:18.320 --> 00:11:20.180 that we might like to do, -00:11:24.240 --> 00:11:24.400 +00:11:20.580 --> 00:11:24.400 but we're not yet clear on how to do it -00:11:25.600 --> 00:11:26.100 +00:11:24.400 --> 00:11:26.100 exactly and what to move to. -00:11:27.980 --> 00:11:28.380 +00:11:26.320 --> 00:11:28.380 So these are the types of discussions that -00:11:30.140 --> 00:11:30.280 +00:11:28.380 --> 00:11:30.280 we're looking at. Can we still support a -00:11:33.660 --> 00:11:34.040 +00:11:30.280 --> 00:11:34.040 mailing, an email type workflow while moving -00:11:35.980 --> 00:11:36.100 +00:11:34.040 --> 00:11:36.100 to something else? That would be 1 of the big -00:11:38.160 --> 00:11:38.400 +00:11:36.100 --> 00:11:38.400 ones. I think another thing that trips people -00:11:40.520 --> 00:11:40.840 +00:11:38.400 --> 00:11:40.840 up is that we used a bug tracker that, -00:11:42.380 --> 00:11:42.620 +00:11:40.840 --> 00:11:42.620 I mean, maybe some people, -00:11:45.060 --> 00:11:45.560 +00:11:42.620 --> 00:11:45.560 I've heard people say it's archaic. -00:11:49.700 --> 00:11:49.900 +00:11:47.020 --> 00:11:49.900 It's called Debugs. I think maybe Debugs gets -00:11:51.860 --> 00:11:52.000 +00:11:49.900 --> 00:11:52.000 a bit of a bad rap. I think that bugs is a -00:11:52.600 --> 00:11:53.100 +00:11:52.000 --> 00:11:53.100 good piece of software. -00:11:54.660 --> 00:11:55.160 +00:11:53.520 --> 00:11:55.160 It wasn't developed in 2023. -00:11:57.040 --> 00:11:57.540 +00:11:55.580 --> 00:11:57.540 I mean, that's much as clear. -00:11:58.380 --> 00:11:58.880 +00:11:57.660 --> 00:11:58.880 It's a little bit older, -00:12:00.920 --> 00:12:01.320 +00:11:59.060 --> 00:12:01.320 but it really is a workhorse of the Debian -00:12:03.320 --> 00:12:03.820 +00:12:01.320 --> 00:12:03.820 project, which is obviously a project that's -00:12:08.940 --> 00:12:09.400 +00:12:03.960 --> 00:12:09.400 developed in a very different way than Emacs -00:12:11.480 --> 00:12:11.880 +00:12:09.400 --> 00:12:11.880 is. It's on a completely different scale, -00:12:12.540 --> 00:12:12.840 +00:12:11.880 --> 00:12:12.840 of course, much bigger, -00:12:14.480 --> 00:12:14.980 +00:12:12.840 --> 00:12:14.980 many more developers, and so on. -00:12:17.600 --> 00:12:17.800 +00:12:15.040 --> 00:12:17.800 But I think the developers did a good job for -00:12:19.740 --> 00:12:20.240 +00:12:17.800 --> 00:12:20.240 the time. But it might be showing its age, -00:12:22.660 --> 00:12:23.160 +00:12:20.920 --> 00:12:23.160 perhaps, in places. Perhaps, -00:12:24.620 --> 00:12:25.120 +00:12:23.440 --> 00:12:25.120 again, it's the email workflow. -00:12:27.440 --> 00:12:27.720 +00:12:25.260 --> 00:12:27.720 And people see that as a little bit of a -00:12:29.840 --> 00:12:30.180 +00:12:27.720 --> 00:12:30.180 threshold. It seems alien. -00:12:30.800 --> 00:12:31.300 +00:12:30.180 --> 00:12:31.300 It's a little bit strange, -00:12:34.480 --> 00:12:34.980 +00:12:32.220 --> 00:12:34.980 the types of workflows that you have there. -00:12:38.720 --> 00:12:38.860 +00:12:35.220 --> 00:12:38.860 So we are seeing some limitations with that -00:12:40.440 --> 00:12:40.940 +00:12:38.860 --> 00:12:40.940 box. And again, how do you report bugs? -00:12:42.160 --> 00:12:42.600 +00:12:41.020 --> 00:12:42.600 Well, in a sense, it's easy. -00:12:46.160 --> 00:12:46.660 +00:12:42.600 --> 00:12:46.660 You send an email to bug-gnu-emacs at gnu.org -00:12:51.140 --> 00:12:51.340 +00:12:47.620 --> 00:12:51.340 and you copy in whatever you get from, -00:12:53.140 --> 00:12:53.300 +00:12:51.340 --> 00:12:53.300 you know, report the EMAX bug or if you have, -00:12:54.620 --> 00:12:55.120 +00:12:53.300 --> 00:12:55.120 you know, send mail set up locally, -00:12:58.340 --> 00:12:58.700 +00:12:55.580 --> 00:12:58.700 just hit control C, control C and it's sent -00:13:01.220 --> 00:13:01.720 +00:12:58.700 --> 00:13:01.720 to the bug tracker and that's fine. -00:13:08.260 --> 00:13:08.680 +00:13:03.840 --> 00:13:08.680 But also I have to mention that there is this -00:13:10.120 --> 00:13:10.600 +00:13:08.680 --> 00:13:10.600 very good package on GNU Elpas. -00:13:13.260 --> 00:13:13.540 +00:13:10.600 --> 00:13:13.540 If you're ever trying to read the Emacs bug -00:13:16.060 --> 00:13:16.500 +00:13:13.540 --> 00:13:16.500 tracker or following along in Emacs -00:13:18.840 --> 00:13:19.000 +00:13:16.500 --> 00:13:19.000 development, I really recommend install the -00:13:20.800 --> 00:13:21.300 +00:13:19.000 --> 00:13:21.300 package devbugs from GNU Elpa. -00:13:23.720 --> 00:13:24.140 +00:13:22.120 --> 00:13:24.140 It's so good. And again, -00:13:26.400 --> 00:13:26.580 +00:13:24.140 --> 00:13:26.580 it's built on GNU, it's all integrated in -00:13:29.540 --> 00:13:30.040 +00:13:26.580 --> 00:13:30.040 Emacs, it's so much better than using the web -00:13:32.960 --> 00:13:33.220 +00:13:30.660 --> 00:13:33.220 and so on. And if you really want to get into -00:13:37.540 --> 00:13:38.040 +00:13:33.220 --> 00:13:38.040 it, you can download the bug tracker archives -00:13:39.000 --> 00:13:39.500 +00:13:38.140 --> 00:13:39.500 and the mailing list archives, -00:13:40.800 --> 00:13:41.260 +00:13:39.720 --> 00:13:41.260 and you can put them locally, -00:13:41.880 --> 00:13:42.380 +00:13:41.260 --> 00:13:42.380 you can have them searchable, -00:13:44.280 --> 00:13:44.440 +00:13:42.740 --> 00:13:44.440 and you can have whatever experience you -00:13:46.840 --> 00:13:47.340 +00:13:44.440 --> 00:13:47.340 like. So, I mean, it's really a flexible -00:13:50.740 --> 00:13:51.240 +00:13:48.240 --> 00:13:51.240 workflow, but it's a bit strange, -00:13:52.120 --> 00:13:52.620 +00:13:51.260 --> 00:13:52.620 perhaps, to some people. -00:13:57.920 --> 00:13:58.120 +00:13:53.460 --> 00:13:58.120 So we also think supporting only this -00:13:59.640 --> 00:14:00.140 +00:13:58.120 --> 00:14:00.140 workflow might be a little bit too limiting. -00:14:03.700 --> 00:14:04.200 +00:14:00.660 --> 00:14:04.200 So we do want to move over to something like -00:14:06.360 --> 00:14:06.760 +00:14:04.440 --> 00:14:06.760 GitLab, perhaps Sourcehat or something -00:14:09.960 --> 00:14:10.460 +00:14:06.760 --> 00:14:10.460 similar. We've had a couple of discussions -00:14:13.500 --> 00:14:14.000 +00:14:10.760 --> 00:14:14.000 about that over the last couple of years. -00:14:15.480 --> 00:14:15.820 +00:14:14.480 --> 00:14:15.820 I think even before that, -00:14:18.580 --> 00:14:18.940 +00:14:15.820 --> 00:14:18.940 but that's how far back I've been involved, -00:14:21.300 --> 00:14:21.800 +00:14:18.940 --> 00:14:21.800 and definitely it's come up occasionally. -00:14:27.400 --> 00:14:27.900 +00:14:23.100 --> 00:14:27.900 I think we are less far away than perhaps -00:14:30.060 --> 00:14:30.560 +00:14:27.940 --> 00:14:30.560 ever is how I would express that, -00:14:36.180 --> 00:14:36.680 +00:14:30.720 --> 00:14:36.680 and in the sense that the remaining blockers -00:14:38.360 --> 00:14:38.640 +00:14:36.960 --> 00:14:38.640 for just making the shift, -00:14:39.960 --> 00:14:40.200 +00:14:38.640 --> 00:14:40.200 let's say, are I think, -00:14:41.960 --> 00:14:42.120 +00:14:40.200 --> 00:14:42.120 I mean, first of all, we're talking about -00:14:43.620 --> 00:14:44.020 +00:14:42.120 --> 00:14:44.020 limitations, perhaps in the software, -00:14:46.160 --> 00:14:46.420 +00:14:44.020 --> 00:14:46.420 they're well defined, and they're not as -00:14:48.840 --> 00:14:49.060 +00:14:46.420 --> 00:14:49.060 amountable. I don't think they have to be in -00:14:50.660 --> 00:14:50.840 +00:14:49.060 --> 00:14:50.840 any case. We should be able to make some -00:14:54.160 --> 00:14:54.660 +00:14:50.840 --> 00:14:54.660 progress. The main thing that we're lacking -00:14:57.980 --> 00:14:58.480 +00:14:54.720 --> 00:14:58.480 now is not more discussion or more people -00:15:02.800 --> 00:15:03.120 +00:15:00.800 --> 00:15:03.120 prodding us to just please switch over. -00:15:04.080 --> 00:15:04.580 +00:15:03.120 --> 00:15:04.580 No, we're looking for volunteers. -00:15:07.880 --> 00:15:08.380 +00:15:05.980 --> 00:15:08.380 If you think that you, -00:15:10.760 --> 00:15:10.960 +00:15:08.400 --> 00:15:10.960 you know, have what it takes to sort of come -00:15:13.860 --> 00:15:14.060 +00:15:10.960 --> 00:15:14.060 in and help us do something like that and -00:15:14.860 --> 00:15:15.040 +00:15:14.060 --> 00:15:15.040 work together with us, -00:15:16.600 --> 00:15:16.840 +00:15:15.040 --> 00:15:16.840 you know, to see what can be done, -00:15:19.960 --> 00:15:20.200 +00:15:16.840 --> 00:15:20.200 perhaps some, a few things would need to be -00:15:22.840 --> 00:15:23.220 +00:15:20.200 --> 00:15:23.220 changed in GitLab. I don't think anything -00:15:25.940 --> 00:15:26.120 +00:15:23.220 --> 00:15:26.120 huge, but maybe there are some patches to be -00:15:27.380 --> 00:15:27.880 +00:15:26.120 --> 00:15:27.880 written and sent upstream, -00:15:30.200 --> 00:15:30.280 +00:15:27.980 --> 00:15:30.280 or maybe we need to do some local hacks or -00:15:32.900 --> 00:15:33.140 +00:15:30.280 --> 00:15:33.140 whatever. If you wanna do that, -00:15:34.360 --> 00:15:34.860 +00:15:33.140 --> 00:15:34.860 please contact us, emacsdevil. -00:15:38.480 --> 00:15:38.940 +00:15:35.460 --> 00:15:38.940 We'll be very happy to talk to you. -00:15:39.960 --> 00:15:40.460 +00:15:38.940 --> 00:15:40.460 And then we can start making progress. -00:15:42.340 --> 00:15:42.740 +00:15:40.520 --> 00:15:42.740 So I'm really hoping that that sound like -00:15:46.120 --> 00:15:46.620 +00:15:42.740 --> 00:15:46.620 will come into place. But we need to, -00:15:52.160 --> 00:15:52.340 +00:15:46.780 --> 00:15:52.340 if we do switch over, we need to preserve the -00:15:54.400 --> 00:15:54.820 +00:15:52.340 --> 00:15:54.820 good parts of our email-based workflows. -00:15:56.980 --> 00:15:57.140 +00:15:54.820 --> 00:15:57.140 So there are requirements there so that we -00:15:59.680 --> 00:16:00.180 +00:15:57.140 --> 00:16:00.180 can continue to do our job as maintainers, -00:16:04.440 --> 00:16:04.900 +00:16:01.720 --> 00:16:04.900 if you like. Another thing is that we've -00:16:08.140 --> 00:16:08.340 +00:16:04.900 --> 00:16:08.340 sometimes seen that there's a bit of a -00:16:11.040 --> 00:16:11.380 +00:16:08.340 --> 00:16:11.380 different culture perhaps on mailing lists -00:16:14.860 --> 00:16:15.060 +00:16:11.380 --> 00:16:15.060 and on Emacs devil than what many people are -00:16:17.080 --> 00:16:17.580 +00:16:15.060 --> 00:16:17.580 used to, especially like you've used perhaps, -00:16:20.380 --> 00:16:20.540 +00:16:17.800 --> 00:16:20.540 many people might be in university and -00:16:23.000 --> 00:16:23.500 +00:16:20.540 --> 00:16:23.500 they've started using Emacs, -00:16:25.320 --> 00:16:25.820 +00:16:23.720 --> 00:16:25.820 maybe got into a little bit of package -00:16:28.860 --> 00:16:29.060 +00:16:25.840 --> 00:16:29.060 development and starting to get the ropes of -00:16:32.040 --> 00:16:32.540 +00:16:29.060 --> 00:16:32.540 that and are very used to working on places -00:16:34.980 --> 00:16:35.460 +00:16:32.560 --> 00:16:35.460 like GitLab or something like that, -00:16:37.860 --> 00:16:38.000 +00:16:35.460 --> 00:16:38.000 then the type of culture and way of -00:16:41.920 --> 00:16:42.040 +00:16:38.000 --> 00:16:42.040 communicating that we use in Emacs might be a -00:16:43.940 --> 00:16:44.440 +00:16:42.040 --> 00:16:44.440 little bit different. And of course, -00:16:46.860 --> 00:16:47.360 +00:16:44.540 --> 00:16:47.360 it's different in the sense that mailing -00:16:49.700 --> 00:16:49.900 +00:16:47.380 --> 00:16:49.900 lists have always, I mean, -00:16:50.740 --> 00:16:51.060 +00:16:49.900 --> 00:16:51.060 let's say hacker culture, -00:16:51.940 --> 00:16:52.120 +00:16:51.060 --> 00:16:52.120 whatever you want to call it, -00:16:53.900 --> 00:16:54.400 +00:16:52.120 --> 00:16:54.400 have always communicated in a particular way -00:16:58.180 --> 00:16:58.340 +00:16:54.720 --> 00:16:58.340 using mailing lists. So it's like succinct to -00:16:59.860 --> 00:17:00.320 +00:16:58.340 --> 00:17:00.320 the point, perhaps I'm skipping a few -00:17:03.080 --> 00:17:03.340 +00:17:00.320 --> 00:17:03.340 pleasantries. And the idea is that you should -00:17:07.500 --> 00:17:08.000 +00:17:03.340 --> 00:17:08.000 just use it in as effective way as possible, -00:17:10.599 --> 00:17:11.099 +00:17:08.359 --> 00:17:11.099 so that also the archives are usable. -00:17:13.280 --> 00:17:13.660 +00:17:11.319 --> 00:17:13.660 And the other thing is that generally people -00:17:16.319 --> 00:17:16.500 +00:17:13.660 --> 00:17:16.500 involved in developing free software has to -00:17:19.160 --> 00:17:19.660 +00:17:16.500 --> 00:17:19.660 deal with a lot of incoming traffic, -00:17:25.680 --> 00:17:25.900 +00:17:19.780 --> 00:17:25.900 emails. They don't have the bandwidth if it's -00:17:27.760 --> 00:17:28.220 +00:17:25.900 --> 00:17:28.220 too much noise. You really need to be strict -00:17:31.360 --> 00:17:31.840 +00:17:28.220 --> 00:17:31.840 to keep the signal to noise ratio high. -00:17:34.780 --> 00:17:35.280 +00:17:31.840 --> 00:17:35.280 We have some weird terminology on the Emacs -00:17:37.540 --> 00:17:38.040 +00:17:35.280 --> 00:17:38.040 devil. People tell us, -00:17:40.260 --> 00:17:40.680 +00:17:38.200 --> 00:17:40.680 we say sometimes install patches which -00:17:43.900 --> 00:17:44.180 +00:17:40.680 --> 00:17:44.180 basically means push to master or merge pull -00:17:46.520 --> 00:17:46.720 +00:17:44.180 --> 00:17:46.720 requests because we've used other version -00:17:48.340 --> 00:17:48.600 +00:17:46.720 --> 00:17:48.600 control systems in the past where it might -00:17:50.200 --> 00:17:50.700 +00:17:48.600 --> 00:17:50.700 have made more sense to say install patches. -00:17:52.200 --> 00:17:52.540 +00:17:51.000 --> 00:17:52.540 And then you sort of, I don't know, -00:17:54.140 --> 00:17:54.380 +00:17:52.540 --> 00:17:54.380 I say it. Don't ask me why. -00:17:55.840 --> 00:17:56.040 +00:17:54.380 --> 00:17:56.040 But it feels natural after a while. -00:17:57.540 --> 00:17:57.720 +00:17:56.040 --> 00:17:57.720 You install a patch. It's clear what you -00:18:02.040 --> 00:18:02.280 +00:17:57.720 --> 00:18:02.280 mean. You don't have to worry about which -00:18:05.440 --> 00:18:05.940 +00:18:02.280 --> 00:18:05.940 branch it's on. So it's a little bit -00:18:09.880 --> 00:18:10.120 +00:18:06.600 --> 00:18:10.120 historical there. So there is some of that -00:18:11.680 --> 00:18:11.960 +00:18:10.120 --> 00:18:11.960 culture going on. It might be different. -00:18:13.700 --> 00:18:14.200 +00:18:11.960 --> 00:18:14.200 We don't use emojis that much. -00:18:16.180 --> 00:18:16.680 +00:18:14.220 --> 00:18:16.680 That's another thing. There is no like, -00:18:20.740 --> 00:18:20.900 +00:18:16.840 --> 00:18:20.900 you can click the little like button at the -00:18:24.660 --> 00:18:25.080 +00:18:20.900 --> 00:18:25.080 bottom of a comment or an email as you could -00:18:27.560 --> 00:18:27.740 +00:18:25.080 --> 00:18:27.740 on GitHub. But there are exceptions and it's -00:18:29.240 --> 00:18:29.600 +00:18:27.740 --> 00:18:29.600 not like someone will send you angry emails -00:18:31.240 --> 00:18:31.480 +00:18:29.600 --> 00:18:31.480 if you use an emoji or something like that. -00:18:33.960 --> 00:18:34.200 +00:18:31.480 --> 00:18:34.200 But it can come off as perhaps Because people -00:18:36.680 --> 00:18:37.180 +00:18:34.200 --> 00:18:37.180 are pressed for time also when replying to -00:18:39.320 --> 00:18:39.400 +00:18:37.260 --> 00:18:39.400 all these emails. So it might come off as a -00:18:42.380 --> 00:18:42.880 +00:18:39.400 --> 00:18:42.880 little bit short, but that's just how it is. -00:18:46.400 --> 00:18:46.880 +00:18:43.440 --> 00:18:46.880 And I think We have heard this comment before -00:18:50.180 --> 00:18:50.680 +00:18:46.880 --> 00:18:50.680 that mailing lists are scary or Emacs devil -00:18:53.880 --> 00:18:54.380 +00:18:50.720 --> 00:18:54.380 is scary or core development is scary. -00:18:58.040 --> 00:18:58.180 +00:18:54.780 --> 00:18:58.180 And I've touched a few of these points a -00:18:59.240 --> 00:18:59.620 +00:18:58.180 --> 00:18:59.620 little bit already. I think, -00:19:01.000 --> 00:19:01.500 +00:18:59.620 --> 00:19:01.500 yeah, maybe a little bit. -00:19:05.240 --> 00:19:05.740 +00:19:02.320 --> 00:19:05.740 For example, we don't use emojis very short -00:19:10.460 --> 00:19:10.940 +00:19:06.820 --> 00:19:10.940 in the communication. And we always use -00:19:12.740 --> 00:19:13.240 +00:19:10.940 --> 00:19:13.240 correct grammar and spelling. -00:19:15.440 --> 00:19:15.920 +00:19:13.380 --> 00:19:15.920 We take that seriously because it's important -00:19:18.560 --> 00:19:19.060 +00:19:15.920 --> 00:19:19.060 for being clear in your written communication -00:19:21.040 --> 00:19:21.540 +00:19:19.200 --> 00:19:21.540 when all you have is written communication. -00:19:23.240 --> 00:19:23.740 +00:19:22.680 --> 00:19:23.740 It's really important. -00:19:31.260 --> 00:19:31.400 +00:19:26.760 --> 00:19:31.400 But it's not like If you come in there and -00:19:33.420 --> 00:19:33.580 +00:19:31.400 --> 00:19:33.580 you don't know all these cultural rules and -00:19:36.020 --> 00:19:36.380 +00:19:33.580 --> 00:19:36.380 all these patterns, then you know you will We -00:19:37.540 --> 00:19:37.900 +00:19:36.380 --> 00:19:37.900 won't talk to you No Actually, -00:19:40.920 --> 00:19:41.100 +00:19:37.900 --> 00:19:41.100 we try to be as welcoming as we can and and -00:19:44.180 --> 00:19:44.600 +00:19:41.100 --> 00:19:44.600 be mindful and you know people not Everyone -00:19:46.200 --> 00:19:46.700 +00:19:44.600 --> 00:19:46.700 has English as their native language, -00:19:48.940 --> 00:19:49.200 +00:19:47.080 --> 00:19:49.200 for example. So perhaps someone says -00:19:50.980 --> 00:19:51.360 +00:19:49.200 --> 00:19:51.360 something, and it might come off as rude, -00:19:52.760 --> 00:19:53.200 +00:19:51.360 --> 00:19:53.200 but maybe it's just a direct translation. -00:19:56.040 --> 00:19:56.520 +00:19:53.200 --> 00:19:56.520 So we're trying to give a lot of whatever the -00:19:59.480 --> 00:19:59.760 +00:19:56.520 --> 00:19:59.760 native language is. So we try to give a lot -00:20:01.460 --> 00:20:01.780 +00:19:59.760 --> 00:20:01.780 of leeway and just be a little bit, -00:20:03.420 --> 00:20:03.580 +00:20:01.780 --> 00:20:03.580 you know, flexible and focus on, -00:20:04.540 --> 00:20:04.920 +00:20:03.580 --> 00:20:04.920 you know, the key, key points, -00:20:06.260 --> 00:20:06.580 +00:20:04.920 --> 00:20:06.580 which are the technical things, -00:20:07.260 --> 00:20:07.760 +00:20:06.580 --> 00:20:07.760 the technical decisions, -00:20:09.080 --> 00:20:09.280 +00:20:07.840 --> 00:20:09.280 technical arguments, rather than, -00:20:11.760 --> 00:20:11.920 +00:20:09.280 --> 00:20:11.920 you know, getting bogged down in a lot of, -00:20:15.160 --> 00:20:15.360 +00:20:11.920 --> 00:20:15.360 you know, personal, you know, -00:20:18.720 --> 00:20:19.220 +00:20:15.360 --> 00:20:19.220 discussions and flame wars. -00:20:21.140 --> 00:20:21.260 +00:20:19.300 --> 00:20:21.260 So, I mean, there are these things to be -00:20:22.960 --> 00:20:23.160 +00:20:21.260 --> 00:20:23.160 aware of, you know, it's just a little bit -00:20:24.480 --> 00:20:24.980 +00:20:23.160 --> 00:20:24.980 different. I don't think it's anything huge. -00:20:26.120 --> 00:20:26.620 +00:20:25.080 --> 00:20:26.620 And I wouldn't be, you know, -00:20:30.200 --> 00:20:30.480 +00:20:28.440 --> 00:20:30.480 I think it would be sad if people felt too -00:20:32.200 --> 00:20:32.320 +00:20:30.480 --> 00:20:32.320 intimidated by that. It just is what it is. -00:20:33.400 --> 00:20:33.540 +00:20:32.320 --> 00:20:33.540 And if you spend some time there, -00:20:35.460 --> 00:20:35.960 +00:20:33.540 --> 00:20:35.960 you'll see how people generally communicate. -00:20:41.120 --> 00:20:41.260 +00:20:38.400 --> 00:20:41.260 Sometimes, there are a lot of people on -00:20:43.100 --> 00:20:43.600 +00:20:41.260 --> 00:20:43.600 EmacsDevil. It's a public mailing list. -00:20:45.840 --> 00:20:46.240 +00:20:43.660 --> 00:20:46.240 A lot of people just sign up to follow Emacs -00:20:48.360 --> 00:20:48.860 +00:20:46.240 --> 00:20:48.860 development. Sometimes they chime in. -00:20:50.640 --> 00:20:50.820 +00:20:48.940 --> 00:20:50.820 And I think this is in general a good thing. -00:20:52.800 --> 00:20:53.300 +00:20:50.820 --> 00:20:53.300 I think it should be a public mailing list. -00:20:59.720 --> 00:21:00.220 +00:20:53.680 --> 00:21:00.220 Sometimes this leads to weird situations from -00:21:02.900 --> 00:21:03.400 +00:21:00.480 --> 00:21:03.400 just a point of view as an Emacs maintainer, -00:21:06.900 --> 00:21:07.080 +00:21:03.480 --> 00:21:07.080 right? I mean, I try to say something and it -00:21:07.960 --> 00:21:08.240 +00:21:07.080 --> 00:21:08.240 doesn't always say, oh, -00:21:09.520 --> 00:21:10.020 +00:21:08.240 --> 00:21:10.020 he's the maintainer or whatever. -00:21:10.760 --> 00:21:11.200 +00:21:10.080 --> 00:21:11.200 So when I say something, -00:21:13.180 --> 00:21:13.380 +00:21:11.200 --> 00:21:13.380 it should carry a little bit more weight than -00:21:15.920 --> 00:21:16.160 +00:21:13.380 --> 00:21:16.160 some unknown person from the internet who has -00:21:17.800 --> 00:21:18.300 +00:21:16.160 --> 00:21:18.300 an opinion and decided to send it to -00:21:20.860 --> 00:21:21.020 +00:21:18.740 --> 00:21:21.020 EmacsDevil. So it's good to be a little bit -00:21:22.760 --> 00:21:23.160 +00:21:21.020 --> 00:21:23.160 aware of who is a little bit more involved -00:21:25.120 --> 00:21:25.280 +00:21:23.160 --> 00:21:25.280 with the project. I would check out the -00:21:26.600 --> 00:21:27.100 +00:21:25.280 --> 00:21:27.100 maintainers file. I would check, -00:21:30.600 --> 00:21:31.000 +00:21:27.380 --> 00:21:31.000 see in the Git log, do these people actually -00:21:32.800 --> 00:21:33.300 +00:21:31.000 --> 00:21:33.300 have any anything in core? -00:21:34.760 --> 00:21:35.260 +00:21:33.580 --> 00:21:35.260 And if not, maybe, you know, -00:21:38.160 --> 00:21:38.660 +00:21:35.860 --> 00:21:38.660 there, we won't really, -00:21:40.680 --> 00:21:41.000 +00:21:39.100 --> 00:21:41.000 even if they express an opinion very -00:21:42.400 --> 00:21:42.720 +00:21:41.000 --> 00:21:42.720 strongly, even if they're a little bit rude, -00:21:44.200 --> 00:21:44.700 +00:21:42.720 --> 00:21:44.700 maybe they're not even involved in Emacs -00:21:45.840 --> 00:21:46.340 +00:21:44.760 --> 00:21:46.340 development. I mean, often, -00:21:48.040 --> 00:21:48.460 +00:21:46.680 --> 00:21:48.460 that's the case we have some people, -00:21:49.400 --> 00:21:49.900 +00:21:48.460 --> 00:21:49.900 unfortunately, at times, -00:21:52.540 --> 00:21:52.720 +00:21:50.340 --> 00:21:52.720 we have random people from the internet come -00:21:54.620 --> 00:21:54.720 +00:21:52.720 --> 00:21:54.720 in on the mailing list and they're just a -00:21:56.280 --> 00:21:56.780 +00:21:54.720 --> 00:21:56.780 little bit rude, or they say an opinion -00:21:59.120 --> 00:21:59.620 +00:21:57.740 --> 00:21:59.620 that's not exactly helpful. -00:22:02.080 --> 00:22:02.320 +00:22:00.060 --> 00:22:02.320 And I think you need to be aware. -00:22:03.960 --> 00:22:04.340 +00:22:02.320 --> 00:22:04.340 I mean, these things happen in any forum, -00:22:07.240 --> 00:22:07.740 +00:22:04.340 --> 00:22:07.740 but it happens on EmacsDevO as well. -00:22:10.440 --> 00:22:10.680 +00:22:07.800 --> 00:22:10.680 So just be a little bit aware of who you're -00:22:13.040 --> 00:22:13.540 +00:22:10.680 --> 00:22:13.540 talking to, what people are doing. -00:22:15.380 --> 00:22:15.880 +00:22:13.700 --> 00:22:15.880 It can help to Check the archives, -00:22:17.960 --> 00:22:18.460 +00:22:16.240 --> 00:22:18.460 see who writes what, and so on. -00:22:22.720 --> 00:22:23.080 +00:22:20.320 --> 00:22:23.080 But it's not something that I think is a huge -00:22:23.940 --> 00:22:24.220 +00:22:23.080 --> 00:22:24.220 problem. It is just, again, -00:22:25.280 --> 00:22:25.780 +00:22:24.220 --> 00:22:25.780 something to be aware of. -00:22:27.540 --> 00:22:28.040 +00:22:25.900 --> 00:22:28.040 We have the new kind of communication -00:22:30.480 --> 00:22:30.820 +00:22:28.180 --> 00:22:30.820 guidelines in place, which basically says -00:22:33.480 --> 00:22:33.740 +00:22:30.820 --> 00:22:33.740 that you should be nice to people and stay -00:22:35.660 --> 00:22:36.060 +00:22:33.740 --> 00:22:36.060 focused on the technical problem, -00:22:38.120 --> 00:22:38.300 +00:22:36.060 --> 00:22:38.300 try to see things from another person's point -00:22:39.060 --> 00:22:39.360 +00:22:38.300 --> 00:22:39.360 of view, this kind of stuff. -00:22:41.940 --> 00:22:42.140 +00:22:39.360 --> 00:22:42.140 So we're really trying to be as inclusive as -00:22:46.320 --> 00:22:46.820 +00:22:42.140 --> 00:22:46.820 possible and just stay correct in general. -00:22:48.100 --> 00:22:48.380 +00:22:46.820 --> 00:22:48.380 And sometimes, I mean, -00:22:49.700 --> 00:22:50.060 +00:22:48.380 --> 00:22:50.060 not everyone, it's a public list. -00:22:52.080 --> 00:22:52.440 +00:22:50.060 --> 00:22:52.440 We moderate it, but not to a huge extent, -00:22:57.720 --> 00:22:57.840 +00:22:52.440 --> 00:22:57.840 right? So sometimes people get away with a -00:23:02.140 --> 00:23:02.260 +00:22:57.840 --> 00:23:02.260 little bit of perhaps stretching the -00:23:04.440 --> 00:23:04.700 +00:23:02.260 --> 00:23:04.700 boundaries of what might be included in the -00:23:06.000 --> 00:23:06.500 +00:23:04.700 --> 00:23:06.500 kind communication guidelines, -00:23:10.440 --> 00:23:10.940 +00:23:08.040 --> 00:23:10.940 sort of the fences and limitations of that. -00:23:13.440 --> 00:23:13.940 +00:23:11.460 --> 00:23:13.940 But I would just ignore that. -00:23:15.200 --> 00:23:15.700 +00:23:13.940 --> 00:23:15.700 Sometimes it happens that we, -00:23:16.800 --> 00:23:17.160 +00:23:15.860 --> 00:23:17.160 as happens in any forum, -00:23:19.200 --> 00:23:19.440 +00:23:17.160 --> 00:23:19.440 by the way, you just, we have these very big -00:23:21.560 --> 00:23:21.760 +00:23:19.440 --> 00:23:21.760 threads. We start discussing something else. -00:23:23.800 --> 00:23:24.300 +00:23:21.760 --> 00:23:24.300 Perhaps you send us a patch and it just -00:23:25.960 --> 00:23:26.360 +00:23:24.320 --> 00:23:26.360 devolves into us discussing something -00:23:28.260 --> 00:23:28.680 +00:23:26.360 --> 00:23:28.680 completely different. And of course I partake -00:23:30.220 --> 00:23:30.440 +00:23:28.680 --> 00:23:30.440 in that, not better than anyone else, -00:23:32.440 --> 00:23:32.940 +00:23:30.440 --> 00:23:32.940 but it just happens. I mean, -00:23:34.440 --> 00:23:34.800 +00:23:32.960 --> 00:23:34.800 it's not your fault. It's just what happens -00:23:37.000 --> 00:23:37.200 +00:23:34.800 --> 00:23:37.200 sometimes in forums, and don't mind that. -00:23:38.940 --> 00:23:39.120 +00:23:37.200 --> 00:23:39.120 And it's a little bit easier to do that in -00:23:41.200 --> 00:23:41.680 +00:23:39.120 --> 00:23:41.680 emails, because you just change the subject, -00:23:43.320 --> 00:23:43.580 +00:23:41.680 --> 00:23:43.580 and now it's supposed to be a different -00:23:45.600 --> 00:23:45.780 +00:23:43.580 --> 00:23:45.780 thread, but it comes as replies usually to -00:23:48.340 --> 00:23:48.480 +00:23:45.780 --> 00:23:48.480 you, which wouldn't happen perhaps in a -00:23:49.840 --> 00:23:49.960 +00:23:48.480 --> 00:23:49.960 different workflow. So it's something to be -00:23:53.140 --> 00:23:53.300 +00:23:49.960 --> 00:23:53.300 aware of as well. Another thing is that, -00:23:54.180 --> 00:23:54.680 +00:23:53.300 --> 00:23:54.680 of course, in written communication, -00:23:56.120 --> 00:23:56.620 +00:23:55.080 --> 00:23:56.620 tone doesn't always come across. -00:23:58.840 --> 00:23:59.240 +00:23:57.980 --> 00:23:59.240 If someone sounds negative, -00:24:00.780 --> 00:24:01.280 +00:23:59.240 --> 00:24:01.280 sometimes it's just them being neutral. -00:24:04.900 --> 00:24:05.400 +00:24:01.460 --> 00:24:05.400 Sometimes you get no replies. -00:24:06.720 --> 00:24:07.120 +00:24:05.500 --> 00:24:07.120 You send something, you get no replies. -00:24:08.720 --> 00:24:09.220 +00:24:07.120 --> 00:24:09.220 And this could mean, actually it could mean, -00:24:11.000 --> 00:24:11.500 +00:24:09.880 --> 00:24:11.500 yeah, what you said was uncontroversial. -00:24:12.480 --> 00:24:12.980 +00:24:11.720 --> 00:24:12.980 We think it was a good idea. -00:24:16.100 --> 00:24:16.360 +00:24:13.660 --> 00:24:16.360 No 1 replied to it because either someone -00:24:18.840 --> 00:24:18.960 +00:24:16.360 --> 00:24:18.960 else would reply or just there was no need to -00:24:20.140 --> 00:24:20.640 +00:24:18.960 --> 00:24:20.640 reply because, yeah, why not? -00:24:23.800 --> 00:24:24.060 +00:24:21.580 --> 00:24:24.060 So but if you do send a patch and you don't -00:24:26.040 --> 00:24:26.280 +00:24:24.060 --> 00:24:26.280 get an answer, wait. I mean, -00:24:29.080 --> 00:24:29.380 +00:24:26.280 --> 00:24:29.380 don't wait 1, 2 days. Maybe we're busy or -00:24:30.020 --> 00:24:30.520 +00:24:29.380 --> 00:24:30.520 we're sick or whatever. -00:24:32.680 --> 00:24:32.800 +00:24:30.840 --> 00:24:32.800 Wait 2 weeks. It's fine to just send it -00:24:34.440 --> 00:24:34.940 +00:24:32.800 --> 00:24:34.940 again. If you send the patch to EmacsDevil, -00:24:36.820 --> 00:24:37.040 +00:24:35.660 --> 00:24:37.040 send it to the bug mailing list, -00:24:38.760 --> 00:24:39.260 +00:24:37.040 --> 00:24:39.260 because we lose track of stuff on EmacsDevil. -00:24:41.060 --> 00:24:41.560 +00:24:39.800 --> 00:24:41.560 That's just the reality of it. -00:24:45.900 --> 00:24:46.080 +00:24:43.440 --> 00:24:46.080 So if you propose making a change and no 1 -00:24:48.220 --> 00:24:48.340 +00:24:46.080 --> 00:24:48.340 commented, feel free to ask us again if a -00:24:50.580 --> 00:24:51.080 +00:24:48.340 --> 00:24:51.080 patch would be welcome and we will clarify. -00:24:54.220 --> 00:24:54.720 +00:24:53.480 --> 00:24:54.720 Bug reports, unfortunately, -00:24:55.940 --> 00:24:56.280 +00:24:54.780 --> 00:24:56.280 if you get no answer, I mean, -00:24:59.240 --> 00:24:59.740 +00:24:56.280 --> 00:24:59.740 we do have a limited amount of time to work -00:25:02.220 --> 00:25:02.360 +00:24:59.860 --> 00:25:02.360 on bugs. If you're looking to get started in -00:25:05.020 --> 00:25:05.520 +00:25:02.360 --> 00:25:05.520 Emacs development, this is an excellent way -00:25:06.820 --> 00:25:07.320 +00:25:05.740 --> 00:25:07.320 to start getting involved. -00:25:09.720 --> 00:25:09.960 +00:25:07.480 --> 00:25:09.960 What I'd recommend is start looking into -00:25:11.180 --> 00:25:11.420 +00:25:09.960 --> 00:25:11.420 bugs. I'd install that bug, -00:25:13.660 --> 00:25:13.860 +00:25:11.420 --> 00:25:13.860 I'd see about the mailing workflow and set -00:25:15.300 --> 00:25:15.800 +00:25:13.860 --> 00:25:15.800 that up a little bit, or not. -00:25:17.640 --> 00:25:17.960 +00:25:16.160 --> 00:25:17.960 It's up to you. You can reply to an email -00:25:19.660 --> 00:25:20.160 +00:25:17.960 --> 00:25:20.160 without setting any of that stuff up. -00:25:21.980 --> 00:25:22.480 +00:25:20.600 --> 00:25:22.480 But just help us try out your bugs, -00:25:24.520 --> 00:25:24.720 +00:25:22.540 --> 00:25:24.720 send patches, do that type of stuff. -00:25:26.040 --> 00:25:26.280 +00:25:24.720 --> 00:25:26.280 I mean, that's an excellent way, -00:25:27.360 --> 00:25:27.740 +00:25:26.280 --> 00:25:27.740 and extremely welcome. -00:25:30.220 --> 00:25:30.360 +00:25:27.740 --> 00:25:30.360 We're so happy to see when people pick up bug -00:25:32.000 --> 00:25:32.500 +00:25:30.360 --> 00:25:32.500 reports that have been left by the wayside -00:25:34.080 --> 00:25:34.580 +00:25:32.640 --> 00:25:34.580 and just fix them, send us a patch, -00:25:37.020 --> 00:25:37.520 +00:25:36.040 --> 00:25:37.520 and we can just apply it. -00:25:40.180 --> 00:25:40.360 +00:25:37.920 --> 00:25:40.360 So that's really your starting point if you -00:25:43.100 --> 00:25:43.600 +00:25:40.360 --> 00:25:43.600 want to get involved in Emacs core -00:25:50.260 --> 00:25:50.580 +00:25:44.440 --> 00:25:50.580 development. I also want to say that be aware -00:25:53.520 --> 00:25:54.020 +00:25:50.580 --> 00:25:54.020 that you know Emacs is the editor of the GNU -00:25:56.360 --> 00:25:56.820 +00:25:54.280 --> 00:25:56.820 operating system and this makes the project -00:25:58.520 --> 00:25:58.700 +00:25:56.820 --> 00:25:58.700 political a little bit whether you like it or -00:26:00.880 --> 00:26:01.380 +00:25:58.700 --> 00:26:01.380 not. Luckily the you know the politics are -00:26:03.160 --> 00:26:03.400 +00:26:01.560 --> 00:26:03.400 limited enough that we can find broad -00:26:05.020 --> 00:26:05.520 +00:26:03.400 --> 00:26:05.520 agreement on it. So we want to promote, -00:26:07.920 --> 00:26:08.420 +00:26:05.780 --> 00:26:08.420 we want to create free software. -00:26:10.460 --> 00:26:10.960 +00:26:08.860 --> 00:26:10.960 That's sort of it. That's it. -00:26:13.540 --> 00:26:13.740 +00:26:11.400 --> 00:26:13.740 And there shouldn't be too much more to it, -00:26:15.440 --> 00:26:15.600 +00:26:13.740 --> 00:26:15.600 right? We want to rid the world of -00:26:19.300 --> 00:26:19.700 +00:26:15.600 --> 00:26:19.700 proprietary software as an evil thing. -00:26:21.420 --> 00:26:21.920 +00:26:19.700 --> 00:26:21.920 Ideally, all software should be free. -00:26:24.860 --> 00:26:25.160 +00:26:23.000 --> 00:26:25.160 But these are just the goals of the free -00:26:27.280 --> 00:26:27.440 +00:26:25.160 --> 00:26:27.440 software movement. So we're very strict with -00:26:29.160 --> 00:26:29.660 +00:26:27.440 --> 00:26:29.660 some things. We don't recommend non-free -00:26:31.080 --> 00:26:31.320 +00:26:30.060 --> 00:26:31.320 proprietary software. Of course, -00:26:32.680 --> 00:26:33.180 +00:26:31.320 --> 00:26:33.180 we have no problem mentioning Microsoft -00:26:34.780 --> 00:26:35.140 +00:26:33.260 --> 00:26:35.140 Windows because everyone knows that there's -00:26:39.060 --> 00:26:39.280 +00:26:35.140 --> 00:26:39.280 this obscure operating system developed in -00:26:41.260 --> 00:26:41.760 +00:26:39.280 --> 00:26:41.760 California that some people insist on using. -00:26:44.500 --> 00:26:45.000 +00:26:42.040 --> 00:26:45.000 We use, many of us use GNU plus Linux. -00:26:46.880 --> 00:26:47.380 +00:26:45.060 --> 00:26:47.380 Actually, some core developers happen to use -00:26:50.380 --> 00:26:50.820 +00:26:47.440 --> 00:26:50.820 exactly, you know, not GNU plus Linux, -00:26:52.360 --> 00:26:52.600 +00:26:50.820 --> 00:26:52.600 but that's fine as well, -00:26:54.320 --> 00:26:54.820 +00:26:52.600 --> 00:26:54.820 right? We take a little bit of a pragmatic -00:26:56.380 --> 00:26:56.840 +00:26:54.860 --> 00:26:56.840 view, but we don't wanna do, -00:26:58.580 --> 00:26:59.020 +00:26:56.840 --> 00:26:59.020 what we don't wanna do is promote like this -00:27:04.600 --> 00:27:04.780 +00:26:59.020 --> 00:27:04.780 small, unknown piece of non-free software and -00:27:08.200 --> 00:27:08.400 +00:27:04.780 --> 00:27:08.400 sort of help the non-free software in that -00:27:11.120 --> 00:27:11.620 +00:27:08.400 --> 00:27:11.620 way. That's where we try to draw the line, -00:27:15.520 --> 00:27:15.760 +00:27:12.440 --> 00:27:15.760 you know, in just expressing just a few -00:27:17.560 --> 00:27:18.060 +00:27:15.760 --> 00:27:18.060 words. So that's 1 thing. -00:27:21.300 --> 00:27:21.620 +00:27:18.200 --> 00:27:21.620 We're, I think, very pragmatic on this point, -00:27:24.400 --> 00:27:24.900 +00:27:21.620 --> 00:27:24.900 but we do try to follow the principle. -00:27:26.680 --> 00:27:27.180 +00:27:25.240 --> 00:27:27.180 We also require copyright assignment. -00:27:29.540 --> 00:27:30.040 +00:27:27.700 --> 00:27:30.040 And I think in general, -00:27:34.240 --> 00:27:34.740 +00:27:30.620 --> 00:27:34.740 the argument is that we require a copyright -00:27:38.440 --> 00:27:38.940 +00:27:34.780 --> 00:27:38.940 assignment, because that makes it easier to -00:27:42.940 --> 00:27:43.440 +00:27:39.280 --> 00:27:43.440 defend the legal status of the GNU Emacs -00:27:45.520 --> 00:27:45.920 +00:27:43.640 --> 00:27:45.920 source code. So if there's ever a legal -00:27:47.980 --> 00:27:48.280 +00:27:45.920 --> 00:27:48.280 battle, the idea is that if it's only 1 -00:27:49.760 --> 00:27:50.260 +00:27:48.280 --> 00:27:50.260 copyright holder and you have a GPL -00:27:53.720 --> 00:27:54.140 +00:27:50.320 --> 00:27:54.140 violation, i.e. Someone might change Emacs -00:27:55.320 --> 00:27:55.820 +00:27:54.140 --> 00:27:55.820 and then distribute it as proprietary -00:27:57.660 --> 00:27:58.040 +00:27:56.100 --> 00:27:58.040 software or something nasty like that, -00:28:00.420 --> 00:28:00.620 +00:27:58.040 --> 00:28:00.620 then we have an easier way of defending it in -00:28:02.280 --> 00:28:02.780 +00:28:00.620 --> 00:28:02.780 court if there is only 1 copyright holder. -00:28:04.380 --> 00:28:04.840 +00:28:02.780 --> 00:28:04.840 So we assigned copyright to the Free Software -00:28:08.960 --> 00:28:09.460 +00:28:04.840 --> 00:28:09.460 Foundation. And I think there, -00:28:12.380 --> 00:28:12.600 +00:28:09.720 --> 00:28:12.600 I mean, sometimes people oppose this for -00:28:13.380 --> 00:28:13.660 +00:28:12.600 --> 00:28:13.660 various reasons, you know, -00:28:15.220 --> 00:28:15.720 +00:28:13.660 --> 00:28:15.720 people see it as, you know, -00:28:16.720 --> 00:28:16.880 +00:28:15.720 --> 00:28:16.880 maybe some people might say, -00:28:17.360 --> 00:28:17.860 +00:28:16.880 --> 00:28:17.860 you know, it's ideological, -00:28:19.080 --> 00:28:19.340 +00:28:18.040 --> 00:28:19.340 you know, who goes, you know, -00:28:20.860 --> 00:28:21.360 +00:28:19.340 --> 00:28:21.360 the FSF goes too far with this. -00:28:23.620 --> 00:28:23.860 +00:28:21.700 --> 00:28:23.860 And, and, I mean, that's fine. -00:28:25.080 --> 00:28:25.580 +00:28:23.860 --> 00:28:25.580 You that's, that's an opinion. -00:28:28.080 --> 00:28:28.320 +00:28:25.640 --> 00:28:28.320 And the there, then other people are more -00:28:29.720 --> 00:28:30.040 +00:28:28.320 --> 00:28:30.040 practical, you know, it's just, -00:28:30.880 --> 00:28:31.360 +00:28:30.040 --> 00:28:31.360 It's a hassle, basically, -00:28:32.720 --> 00:28:33.220 +00:28:31.360 --> 00:28:33.220 we don't want to sign these papers. -00:28:35.440 --> 00:28:35.580 +00:28:33.640 --> 00:28:35.580 And I'm not really here to tell anyone that -00:28:37.000 --> 00:28:37.160 +00:28:35.580 --> 00:28:37.160 they're wrong. I've expressed my views on -00:28:40.280 --> 00:28:40.780 +00:28:37.160 --> 00:28:40.780 this in the past. But just for now, -00:28:43.500 --> 00:28:43.660 +00:28:40.960 --> 00:28:43.660 I'm just very practical for the purposes of -00:28:46.000 --> 00:28:46.500 +00:28:43.660 --> 00:28:46.500 this talk. So I signed the papers. -00:28:48.840 --> 00:28:49.280 +00:28:46.580 --> 00:28:49.280 It's Maybe it didn't take me many minutes. -00:28:51.400 --> 00:28:51.900 +00:28:49.280 --> 00:28:51.900 And in most cases, it shouldn't really. -00:28:54.720 --> 00:28:55.000 +00:28:52.580 --> 00:28:55.000 And it's something that I found worth doing, -00:28:58.100 --> 00:28:58.580 +00:28:55.000 --> 00:28:58.580 because that way I could focus on continuing -00:29:01.200 --> 00:29:01.360 +00:28:58.580 --> 00:29:01.360 to improve Emacs instead of discussing the -00:29:02.720 --> 00:29:03.220 +00:29:01.360 --> 00:29:03.220 finer points of copyright law. -00:29:04.960 --> 00:29:05.280 +00:29:03.480 --> 00:29:05.280 You could write patches and stuff, -00:29:06.340 --> 00:29:06.680 +00:29:05.280 --> 00:29:06.680 that kind of thing. So, -00:29:08.160 --> 00:29:08.480 +00:29:06.680 --> 00:29:08.480 I mean, this is something that trips people -00:29:10.600 --> 00:29:11.100 +00:29:08.480 --> 00:29:11.100 up and, you know, it's fine that people have -00:29:13.940 --> 00:29:14.200 +00:29:11.320 --> 00:29:14.200 different opinions on it and so on, -00:29:19.120 --> 00:29:19.280 +00:29:14.200 --> 00:29:19.280 but I think for now that's just something to -00:29:22.540 --> 00:29:23.000 +00:29:19.280 --> 00:29:23.000 be aware of. So that's, -00:29:25.920 --> 00:29:26.120 +00:29:23.000 --> 00:29:26.120 I think, I mean, there's much more that could -00:29:27.740 --> 00:29:27.880 +00:29:26.120 --> 00:29:27.880 be said. Ideally, I would like to have a -00:29:30.560 --> 00:29:31.060 +00:29:27.880 --> 00:29:31.060 practical part to this talk as well. -00:29:34.200 --> 00:29:34.440 +00:29:32.020 --> 00:29:34.440 But I wanted to say something about the -00:29:36.960 --> 00:29:37.159 +00:29:34.440 --> 00:29:37.159 packages in Emacs. Because as we know, -00:29:40.260 --> 00:29:40.440 +00:29:37.159 --> 00:29:40.440 I mean, Emacs is the, I can't remember what -00:29:41.240 --> 00:29:41.740 +00:29:40.440 --> 00:29:41.740 it says, it's like a visual, -00:29:43.520 --> 00:29:43.780 +00:29:42.260 --> 00:29:43.780 there's in the manual it says, -00:29:45.400 --> 00:29:45.900 +00:29:43.780 --> 00:29:45.900 oh, Emacs is an advanced text editor. -00:29:47.780 --> 00:29:47.980 +00:29:46.180 --> 00:29:47.980 It's visual, which, I mean, -00:29:49.960 --> 00:29:50.280 +00:29:47.980 --> 00:29:50.280 it's not ed, the whole Unix ed, -00:29:52.200 --> 00:29:52.700 +00:29:50.280 --> 00:29:52.700 so that's cool. It's also customizable, -00:29:55.680 --> 00:29:56.180 +00:29:53.300 --> 00:29:56.180 right? So that's always been a thing. -00:29:59.480 --> 00:29:59.980 +00:29:57.800 --> 00:29:59.980 And what makes Emacs so amazing. -00:30:01.320 --> 00:30:01.820 +00:30:00.040 --> 00:30:01.820 And some people described it as, -00:30:03.720 --> 00:30:03.880 +00:30:01.920 --> 00:30:03.880 I can't remember who said that there has been -00:30:09.140 --> 00:30:09.440 +00:30:03.880 --> 00:30:09.440 a Cambrian explosion of packages in Emacs. -00:30:10.180 --> 00:30:10.440 +00:30:09.440 --> 00:30:10.440 And I think that's true. -00:30:12.080 --> 00:30:12.400 +00:30:10.440 --> 00:30:12.400 I mean, if you look at something like Melpa, -00:30:13.260 --> 00:30:13.760 +00:30:12.400 --> 00:30:13.760 I think they have over 5,000 -00:30:15.720 --> 00:30:16.220 +00:30:13.940 --> 00:30:16.220 packages now. It's like truly impressive, -00:30:18.280 --> 00:30:18.760 +00:30:16.460 --> 00:30:18.760 just an immense amount of work and immense -00:30:21.820 --> 00:30:22.320 +00:30:18.760 --> 00:30:22.320 amount of packages. And really, -00:30:23.940 --> 00:30:24.340 +00:30:22.860 --> 00:30:24.340 this shows the strength, -00:30:26.100 --> 00:30:26.600 +00:30:24.340 --> 00:30:26.600 I think, of the Emacs community, -00:30:28.280 --> 00:30:28.780 +00:30:26.680 --> 00:30:28.780 of Emacs itself as an idea. -00:30:30.960 --> 00:30:31.240 +00:30:29.060 --> 00:30:31.240 And I think it's also just tremendous work -00:30:33.080 --> 00:30:33.580 +00:30:31.240 --> 00:30:33.580 that's been done by the maintainers. -00:30:35.820 --> 00:30:36.040 +00:30:33.960 --> 00:30:36.040 And they do get a lot of recognition for -00:30:38.400 --> 00:30:38.900 +00:30:36.040 --> 00:30:38.900 that. And rightly so, in my opinion. -00:30:41.660 --> 00:30:41.920 +00:30:39.620 --> 00:30:41.920 It's done so much, I think, -00:30:43.860 --> 00:30:44.260 +00:30:41.920 --> 00:30:44.260 for our community. The other package archive -00:30:45.840 --> 00:30:46.340 +00:30:44.260 --> 00:30:46.340 that we have is GNU-ELPA. -00:30:49.180 --> 00:30:49.640 +00:30:46.620 --> 00:30:49.640 And that's been enabled since when packages -00:30:50.860 --> 00:30:51.000 +00:30:49.640 --> 00:30:51.000 first got introduced back in, -00:30:52.660 --> 00:30:53.160 +00:30:51.000 --> 00:30:53.160 I think, Emacs, was it 23? -00:30:59.020 --> 00:30:59.200 +00:30:55.520 --> 00:30:59.200 And probably, I mean, the main thing why a -00:31:01.620 --> 00:31:01.860 +00:30:59.200 --> 00:31:01.860 package goes onto GNU Elpa is, -00:31:03.900 --> 00:31:04.040 +00:31:01.860 --> 00:31:04.040 you know, it should be installable out of the -00:31:07.500 --> 00:31:07.580 +00:31:04.040 --> 00:31:07.580 box. So, I mean, that's a big benefit in a -00:31:10.680 --> 00:31:10.960 +00:31:07.580 --> 00:31:10.960 sense. It's also a requirement for GNU Alpa -00:31:11.820 --> 00:31:12.240 +00:31:10.960 --> 00:31:12.240 that the copyright, again, -00:31:14.040 --> 00:31:14.540 +00:31:12.240 --> 00:31:14.540 just as GNU Emacs, the copyright is assigned -00:31:16.520 --> 00:31:17.020 +00:31:15.480 --> 00:31:17.020 to the Free Software Foundation. -00:31:19.440 --> 00:31:19.940 +00:31:17.080 --> 00:31:19.940 And some very hugely popular packages, -00:31:20.980 --> 00:31:21.420 +00:31:20.020 --> 00:31:21.420 like YaSnippet, for example, -00:31:24.560 --> 00:31:25.060 +00:31:21.420 --> 00:31:25.060 is on GNU Alpa. And we were discussing this -00:31:29.540 --> 00:31:30.040 +00:31:25.160 --> 00:31:30.040 just 2 months back. And Joe Tavora, -00:31:31.280 --> 00:31:31.780 +00:31:30.060 --> 00:31:31.780 I can't say his name, G-O-A-O, -00:31:35.600 --> 00:31:36.100 +00:31:33.280 --> 00:31:36.100 Tavora. He made the point that he's never -00:31:40.000 --> 00:31:40.280 +00:31:36.140 --> 00:31:40.280 seen a problem in any of his packages with -00:31:41.660 --> 00:31:42.100 +00:31:40.280 --> 00:31:42.100 copyright assignment in particular. -00:31:44.380 --> 00:31:44.540 +00:31:42.100 --> 00:31:44.540 It's never been a problem to get people to be -00:31:46.060 --> 00:31:46.560 +00:31:44.540 --> 00:31:46.560 involved in the development of those packages -00:31:47.720 --> 00:31:48.220 +00:31:46.560 --> 00:31:48.220 just because of the copyright assignment -00:31:50.140 --> 00:31:50.640 +00:31:49.160 --> 00:31:50.640 requirements. So I mean, -00:31:53.340 --> 00:31:53.840 +00:31:51.180 --> 00:31:53.840 that's his perspective on that. -00:32:00.180 --> 00:32:00.480 +00:31:54.320 --> 00:32:00.480 And I think it was worth relating his -00:32:06.220 --> 00:32:06.500 +00:32:00.480 --> 00:32:06.500 experience here. So we also have this new -00:32:08.000 --> 00:32:08.500 +00:32:06.500 --> 00:32:08.500 package archive called non-GNU-alpha, -00:32:12.380 --> 00:32:12.880 +00:32:08.920 --> 00:32:12.880 which is now enabled by default as well. -00:32:13.940 --> 00:32:14.440 +00:32:12.920 --> 00:32:14.440 I think for practical purposes, -00:32:16.380 --> 00:32:16.880 +00:32:14.540 --> 00:32:16.880 you could get into it a little bit more, -00:32:18.340 --> 00:32:18.840 +00:32:16.960 --> 00:32:18.840 you know, why we created non-NUELPA, -00:32:21.820 --> 00:32:22.320 +00:32:19.940 --> 00:32:22.320 and perhaps that's something we can discuss -00:32:25.740 --> 00:32:26.240 +00:32:23.360 --> 00:32:26.240 in the Q&A section. For practical purposes, -00:32:27.980 --> 00:32:28.280 +00:32:26.380 --> 00:32:28.280 the main thing to be aware of is, -00:32:30.740 --> 00:32:30.980 +00:32:28.280 --> 00:32:30.980 yes, we don't promote non-free software on -00:32:36.280 --> 00:32:36.780 +00:32:30.980 --> 00:32:36.780 there, And we also don't have the copyright -00:32:38.560 --> 00:32:39.060 +00:32:36.780 --> 00:32:39.060 assignment requirement. -00:32:43.320 --> 00:32:43.820 +00:32:41.400 --> 00:32:43.820 I think this is probably for new packages. -00:32:47.760 --> 00:32:48.180 +00:32:43.940 --> 00:32:48.180 It's generally better if they go to GNU Elpa, -00:32:50.720 --> 00:32:51.220 +00:32:48.180 --> 00:32:51.220 if there is any type of idea or ambition -00:32:53.300 --> 00:32:53.460 +00:32:51.280 --> 00:32:53.460 that, you know, at some point it would be -00:32:56.420 --> 00:32:56.740 +00:32:53.460 --> 00:32:56.740 good or it might be good to eventually have -00:32:58.480 --> 00:32:58.900 +00:32:56.740 --> 00:32:58.900 some type of functionality like this shipped -00:33:01.060 --> 00:33:01.200 +00:32:58.900 --> 00:33:01.200 with Emacs itself. So I think this is -00:33:03.800 --> 00:33:04.020 +00:33:01.200 --> 00:33:04.020 something that perhaps package authors could -00:33:07.020 --> 00:33:07.340 +00:33:04.020 --> 00:33:07.340 also be aware of, that occasionally we do -00:33:09.520 --> 00:33:09.780 +00:33:07.340 --> 00:33:09.780 bring in functionality from GNU Elpa into -00:33:11.680 --> 00:33:12.180 +00:33:09.780 --> 00:33:12.180 core Emacs because we feel that it should be -00:33:15.060 --> 00:33:15.560 +00:33:12.440 --> 00:33:15.560 better integrated with Emacs itself. -00:33:18.340 --> 00:33:18.480 +00:33:16.420 --> 00:33:18.480 So if I could give any type of -00:33:19.200 --> 00:33:19.400 +00:33:18.480 --> 00:33:19.400 recommendation, of course, -00:33:21.660 --> 00:33:22.120 +00:33:19.400 --> 00:33:22.120 you do. These are your packages, -00:33:25.240 --> 00:33:25.520 +00:33:22.120 --> 00:33:25.520 right? In an ideal world, -00:33:28.220 --> 00:33:28.680 +00:33:25.520 --> 00:33:28.680 we would only use this for legacy packages -00:33:30.060 --> 00:33:30.240 +00:33:28.680 --> 00:33:30.240 where people contributed in the past, -00:33:31.640 --> 00:33:32.120 +00:33:30.240 --> 00:33:32.120 but you didn't worry about the copyright -00:33:33.820 --> 00:33:34.200 +00:33:32.120 --> 00:33:34.200 assignment. But where possible, -00:33:36.980 --> 00:33:37.480 +00:33:34.200 --> 00:33:37.480 I think there is benefit in putting it on GNU -00:33:42.740 --> 00:33:42.900 +00:33:37.540 --> 00:33:42.900 Elpa. And I wanted to end a little bit on a -00:33:44.640 --> 00:33:45.140 +00:33:42.900 --> 00:33:45.140 more, you know, the more opinionated perhaps -00:33:47.040 --> 00:33:47.260 +00:33:45.380 --> 00:33:47.260 part of my talk and not just talk about -00:33:49.040 --> 00:33:49.160 +00:33:47.260 --> 00:33:49.160 processes. I see that I'm running out of -00:33:51.200 --> 00:33:51.700 +00:33:49.160 --> 00:33:51.700 time. So I will say Emacs is hackable. -00:33:54.020 --> 00:33:54.520 +00:33:51.760 --> 00:33:54.520 And I think that's a blessing and a curse. -00:33:55.840 --> 00:33:56.340 +00:33:54.520 --> 00:33:56.340 And if you think about something like, -00:34:00.800 --> 00:34:01.100 +00:33:59.060 --> 00:34:01.100 the types of choices that you can make, -00:34:02.540 --> 00:34:03.040 +00:34:01.100 --> 00:34:03.040 perhaps when you implement something, -00:34:06.360 --> 00:34:06.680 +00:34:03.160 --> 00:34:06.680 There are choices, different choices between -00:34:07.440 --> 00:34:07.740 +00:34:06.680 --> 00:34:07.740 something like common list, -00:34:08.940 --> 00:34:09.440 +00:34:07.740 --> 00:34:09.440 which is like bigger, more batteries -00:34:10.860 --> 00:34:11.320 +00:34:09.440 --> 00:34:11.320 included, and something like scheme, -00:34:11.880 --> 00:34:12.239 +00:34:11.320 --> 00:34:12.239 which is more minimal. -00:34:13.500 --> 00:34:13.679 +00:34:12.239 --> 00:34:13.679 And I think we have some of those, -00:34:16.159 --> 00:34:16.280 +00:34:13.679 --> 00:34:16.280 you know, this kind of tension also in the -00:34:17.880 --> 00:34:18.159 +00:34:16.280 --> 00:34:18.159 Emacs itself. What should be in Emacs core? -00:34:19.440 --> 00:34:19.699 +00:34:18.159 --> 00:34:19.699 Should we have a lean Emacs core? -00:34:21.300 --> 00:34:21.800 +00:34:19.699 --> 00:34:21.800 Should we have more stuff in Emacs core? -00:34:26.040 --> 00:34:26.320 +00:34:22.360 --> 00:34:26.320 And I think these are good discussions to -00:34:29.120 --> 00:34:29.380 +00:34:26.320 --> 00:34:29.380 have. And there are various challenges that -00:34:31.440 --> 00:34:31.940 +00:34:29.380 --> 00:34:31.940 are associated with each of those choices. -00:34:34.840 --> 00:34:35.320 +00:34:32.540 --> 00:34:35.320 I think what will never change is that Emacs -00:34:36.780 --> 00:34:37.280 +00:34:35.320 --> 00:34:37.280 is hackable. Emacs is customizable. -00:34:38.300 --> 00:34:38.800 +00:34:37.500 --> 00:34:38.800 This is the key strength. -00:34:40.520 --> 00:34:40.960 +00:34:38.860 --> 00:34:40.960 This is why we love and use Emacs. -00:34:41.320 --> 00:34:41.820 +00:34:40.960 --> 00:34:41.820 I think fundamentally, -00:34:43.780 --> 00:34:44.280 +00:34:42.380 --> 00:34:44.280 whether you do it a lot or not, -00:34:46.760 --> 00:34:47.260 +00:34:44.380 --> 00:34:47.260 this is what at core is bringing you that -00:34:48.679 --> 00:34:49.179 +00:34:47.320 --> 00:34:49.179 amazing user experience. -00:34:53.040 --> 00:34:53.199 +00:34:50.739 --> 00:34:53.199 However, the flip side of that sometimes is -00:34:56.080 --> 00:34:56.280 +00:34:53.199 --> 00:34:56.280 that it's so easy to hack Emacs so that we -00:34:58.120 --> 00:34:58.520 +00:34:56.280 --> 00:34:58.520 hack around bugs instead of fixing them. -00:35:00.280 --> 00:35:00.540 +00:34:58.520 --> 00:35:00.540 We do some tweak and our customers say, -00:35:01.420 --> 00:35:01.720 +00:35:00.540 --> 00:35:01.720 okay, this is a little bit broken, -00:35:03.400 --> 00:35:03.560 +00:35:01.720 --> 00:35:03.560 Let me just fix it. I'll put an advice on -00:35:05.200 --> 00:35:05.700 +00:35:03.560 --> 00:35:05.700 this function. I'll do this customization. -00:35:08.540 --> 00:35:09.040 +00:35:06.500 --> 00:35:09.040 Or we accept limitations in Emacs core. -00:35:11.600 --> 00:35:12.100 +00:35:09.340 --> 00:35:12.100 And I think it's fine. -00:35:13.380 --> 00:35:13.760 +00:35:12.380 --> 00:35:13.760 I mean, this will never change. -00:35:16.160 --> 00:35:16.560 +00:35:13.760 --> 00:35:16.560 That will always be core to what Emacs is, -00:35:20.020 --> 00:35:20.140 +00:35:16.560 --> 00:35:20.140 right? However, I think that the flip side of -00:35:22.300 --> 00:35:22.500 +00:35:20.140 --> 00:35:22.500 that is that I think sometimes we could be -00:35:26.260 --> 00:35:26.760 +00:35:22.500 --> 00:35:26.760 better at just taking those few extra steps -00:35:29.060 --> 00:35:29.260 +00:35:26.820 --> 00:35:29.260 to also make Emacs better itself and solve -00:35:31.480 --> 00:35:31.680 +00:35:29.260 --> 00:35:31.680 this for all users. And I think if we can -00:35:33.480 --> 00:35:33.680 +00:35:31.680 --> 00:35:33.680 build a little bit more of a culture like -00:35:35.320 --> 00:35:35.460 +00:35:33.680 --> 00:35:35.460 that, I mean, we already have that culture to -00:35:36.820 --> 00:35:37.200 +00:35:35.460 --> 00:35:37.200 a large extent, don't get me wrong, -00:35:39.440 --> 00:35:39.620 +00:35:37.200 --> 00:35:39.620 we do, but if we can get a little bit more of -00:35:41.120 --> 00:35:41.320 +00:35:39.620 --> 00:35:41.320 that culture, let's get that into core, -00:35:43.260 --> 00:35:43.760 +00:35:41.320 --> 00:35:43.760 let's get that problem fixed, -00:35:45.640 --> 00:35:46.140 +00:35:43.980 --> 00:35:46.140 that frustration. I can tell you that, -00:35:48.640 --> 00:35:48.940 +00:35:47.040 --> 00:35:48.940 I just started a new assignment at work, -00:35:51.360 --> 00:35:51.420 +00:35:48.940 --> 00:35:51.420 I already told you, so I'm going to write a -00:35:53.860 --> 00:35:54.140 +00:35:51.420 --> 00:35:54.140 lot of Python, okay? So I need to keep track -00:35:55.240 --> 00:35:55.740 +00:35:54.140 --> 00:35:55.740 of something called virtual environments, -00:35:57.760 --> 00:35:58.260 +00:35:56.040 --> 00:35:58.260 and that's just a way to install these -00:36:01.440 --> 00:36:01.640 +00:35:58.440 --> 00:36:01.640 dependencies just locally per directory or -00:36:02.920 --> 00:36:03.420 +00:36:01.640 --> 00:36:03.420 per repository kind of thing. -00:36:05.520 --> 00:36:05.740 +00:36:03.900 --> 00:36:05.740 And I've used various packages for that. -00:36:07.360 --> 00:36:07.860 +00:36:05.740 --> 00:36:07.860 There are like 4 packages, -00:36:10.120 --> 00:36:10.560 +00:36:07.940 --> 00:36:10.560 5 packages, maybe. And 1 is called VM, -00:36:11.240 --> 00:36:11.740 +00:36:10.560 --> 00:36:11.740 and 1 is called VirtualM, -00:36:13.140 --> 00:36:13.640 +00:36:11.820 --> 00:36:13.640 and 1 is called Python-VM. -00:36:16.620 --> 00:36:16.980 +00:36:15.420 --> 00:36:16.980 And now I'm using, you know, -00:36:17.780 --> 00:36:18.100 +00:36:16.980 --> 00:36:18.100 I'm using a different 1. -00:36:19.120 --> 00:36:19.620 +00:36:18.100 --> 00:36:19.620 And it's just a little bit, -00:36:22.000 --> 00:36:22.160 +00:36:20.080 --> 00:36:22.160 why doesn't this work out of the box in -00:36:25.580 --> 00:36:25.680 +00:36:22.160 --> 00:36:25.680 Emacs? Why? I don't think there's a really -00:36:28.220 --> 00:36:28.640 +00:36:25.680 --> 00:36:28.640 good fundamental good reason why something -00:36:29.960 --> 00:36:30.460 +00:36:28.640 --> 00:36:30.460 like that doesn't work in Emacs. -00:36:31.480 --> 00:36:31.980 +00:36:30.480 --> 00:36:31.980 So I think that's really, -00:36:34.920 --> 00:36:35.220 +00:36:32.220 --> 00:36:35.220 I mean, I'm sure there are other things like -00:36:36.780 --> 00:36:37.280 +00:36:35.220 --> 00:36:37.280 that, other fundamental features. -00:36:39.480 --> 00:36:39.920 +00:36:37.740 --> 00:36:39.920 Why is it that for the last 20 years, -00:36:43.540 --> 00:36:43.740 +00:36:39.920 --> 00:36:43.740 we've shipped Emacs with no PHP support out -00:36:47.180 --> 00:36:47.660 +00:36:43.740 --> 00:36:47.660 of the box? I mean, I'm not a PHP programmer. -00:36:50.540 --> 00:36:51.020 +00:36:47.660 --> 00:36:51.020 I don't really have a lot of love for PHP, -00:36:55.520 --> 00:36:56.020 +00:36:51.020 --> 00:36:56.020 let's say. To me, it's a very funny-looking -00:36:59.800 --> 00:37:00.060 +00:36:57.180 --> 00:37:00.060 language, but okay, still it's been very -00:37:01.560 --> 00:37:02.060 +00:37:00.060 --> 00:37:02.060 popular. Why haven't we supported it? -00:37:02.900 --> 00:37:03.280 +00:37:02.120 --> 00:37:03.280 I mean, it's just strange. -00:37:04.540 --> 00:37:05.040 +00:37:03.280 --> 00:37:05.040 You install Emacs on some machine, -00:37:06.760 --> 00:37:07.260 +00:37:05.220 --> 00:37:07.260 you open a PHP file, you get fundamental -00:37:08.680 --> 00:37:09.160 +00:37:07.280 --> 00:37:09.160 mode. It's not the best user experience, -00:37:12.400 --> 00:37:12.600 +00:37:09.160 --> 00:37:12.600 in my opinion. So I think there are some -00:37:15.300 --> 00:37:15.480 +00:37:12.600 --> 00:37:15.480 things where we really could do a little bit -00:37:19.700 --> 00:37:20.200 +00:37:15.480 --> 00:37:20.200 better. And I'm seeing this all the time. -00:37:22.280 --> 00:37:22.500 +00:37:20.200 --> 00:37:22.500 Just this week, this new assignment was -00:37:24.140 --> 00:37:24.640 +00:37:22.500 --> 00:37:24.640 interesting. There was this Emacs user. -00:37:26.720 --> 00:37:26.980 +00:37:24.720 --> 00:37:26.980 Turns out we have the exact same hack in both -00:37:29.640 --> 00:37:29.860 +00:37:26.980 --> 00:37:29.860 of our init files. So we had created the -00:37:31.700 --> 00:37:32.140 +00:37:29.860 --> 00:37:32.140 exact same mode for DIRED, -00:37:33.600 --> 00:37:33.920 +00:37:32.140 --> 00:37:33.920 actually, to hide dot files. -00:37:36.560 --> 00:37:36.720 +00:37:33.920 --> 00:37:36.720 You know, dot something is supposed to be -00:37:38.940 --> 00:37:39.440 +00:37:36.720 --> 00:37:39.440 hidden on a Unix system. -00:37:43.700 --> 00:37:43.940 +00:37:40.240 --> 00:37:43.940 So we had DERED hide dot files mode to just -00:37:46.800 --> 00:37:47.100 +00:37:43.940 --> 00:37:47.100 hide them. And why isn't that in DERED? -00:37:47.920 --> 00:37:48.420 +00:37:47.100 --> 00:37:48.420 Or should it be in DERED? -00:37:50.360 --> 00:37:50.860 +00:37:48.480 --> 00:37:50.860 Should it be a package on the new Elpa? -00:37:52.680 --> 00:37:53.000 +00:37:51.000 --> 00:37:53.000 Where should it be? Why is it just local -00:37:54.280 --> 00:37:54.680 +00:37:53.000 --> 00:37:54.680 hack? Should it be on a wiki somewhere? -00:37:56.240 --> 00:37:56.740 +00:37:54.680 --> 00:37:56.740 I mean, sometimes that's the correct answer. -00:37:58.640 --> 00:37:59.060 +00:37:56.980 --> 00:37:59.060 Sometimes the correct answer is, -00:37:59.920 --> 00:38:00.420 +00:37:59.060 --> 00:38:00.420 yes, it should be a package. -00:38:02.040 --> 00:38:02.360 +00:38:00.780 --> 00:38:02.360 Sometimes the correct answer is, -00:38:03.640 --> 00:38:04.140 +00:38:02.360 --> 00:38:04.140 yes, it should really be in core. -00:38:05.920 --> 00:38:06.420 +00:38:04.280 --> 00:38:06.420 So what I want to promote is more like, -00:38:08.600 --> 00:38:08.900 +00:38:06.480 --> 00:38:08.900 let's just take a step back and just ask -00:38:11.000 --> 00:38:11.180 +00:38:08.900 --> 00:38:11.180 yourself, what's the best solution if we look -00:38:11.880 --> 00:38:12.240 +00:38:11.180 --> 00:38:12.240 at the overall picture? -00:38:13.420 --> 00:38:13.920 +00:38:12.240 --> 00:38:13.920 Should I hack this into my configuration? -00:38:16.720 --> 00:38:16.840 +00:38:14.600 --> 00:38:16.840 In many cases, yes, that's the right thing to -00:38:19.040 --> 00:38:19.540 +00:38:16.840 --> 00:38:19.540 do. We don't want to proliferate just random -00:38:21.660 --> 00:38:22.160 +00:38:19.840 --> 00:38:22.160 solutions all over Emacs for no reason. -00:38:24.600 --> 00:38:24.760 +00:38:22.540 --> 00:38:24.760 But sometimes we want to fix it once and for -00:38:27.200 --> 00:38:27.700 +00:38:24.760 --> 00:38:27.700 all. We want to do that in core. -00:38:30.040 --> 00:38:30.200 +00:38:27.880 --> 00:38:30.200 So you could send stuff like that to us as -00:38:30.980 --> 00:38:31.480 +00:38:30.200 --> 00:38:31.480 patches or as packages. -00:38:34.060 --> 00:38:34.340 +00:38:31.560 --> 00:38:34.340 And we can discuss a little bit about where -00:38:35.920 --> 00:38:36.420 +00:38:34.340 --> 00:38:36.420 should we solve this? What's the right level -00:38:40.760 --> 00:38:41.100 +00:38:37.280 --> 00:38:41.100 of abstraction? I'm seeing that I'm running -00:38:43.340 --> 00:38:43.620 +00:38:41.100 --> 00:38:43.620 out of time. I had an Emacs wish list. -00:38:46.380 --> 00:38:46.880 +00:38:43.620 --> 00:38:46.880 Maybe we can take more of that in the Q&A. -00:38:49.107 --> 00:38:49.226 +00:38:47.170 --> 00:38:49.226 But I want to say, like, -00:38:50.220 --> 00:38:50.460 +00:38:49.226 --> 00:38:50.460 in VS Code, you just start VS Code. -00:38:51.420 --> 00:38:51.660 +00:38:50.460 --> 00:38:51.660 You open a Python file, -00:38:52.660 --> 00:38:53.040 +00:38:51.660 --> 00:38:53.040 and you get, like, hey, -00:38:54.060 --> 00:38:54.560 +00:38:53.040 --> 00:38:54.560 are you trying to use Python? -00:38:55.900 --> 00:38:56.280 +00:38:54.840 --> 00:38:56.280 Click here, install Python. -00:38:58.200 --> 00:38:58.700 +00:38:56.280 --> 00:38:58.700 You get all the nice things out of the box. -00:39:01.400 --> 00:39:01.560 +00:38:59.180 --> 00:39:01.560 And my argument is, why can't we have more of -00:39:03.380 --> 00:39:03.880 +00:39:01.560 --> 00:39:03.880 that in Emacs? I don't think it's necessarily -00:39:05.860 --> 00:39:06.360 +00:39:04.000 --> 00:39:06.360 hard, but it does take a little bit of work. -00:39:08.560 --> 00:39:09.060 +00:39:06.960 --> 00:39:09.060 The challenges here are more social, -00:39:10.380 --> 00:39:10.880 +00:39:09.060 --> 00:39:10.880 I think, than technical. -00:39:12.480 --> 00:39:12.780 +00:39:10.900 --> 00:39:12.780 And I think it's worth doing, -00:39:13.700 --> 00:39:14.060 +00:39:12.780 --> 00:39:14.060 because it's not just Python. -00:39:16.280 --> 00:39:16.640 +00:39:14.060 --> 00:39:16.640 It's just There are always these small things -00:39:18.640 --> 00:39:18.900 +00:39:16.640 --> 00:39:18.900 where it just really should work, -00:39:20.500 --> 00:39:20.900 +00:39:18.900 --> 00:39:20.900 and that would be a much better experience. -00:39:23.000 --> 00:39:23.360 +00:39:20.900 --> 00:39:23.360 And then you could customize not that thing -00:39:24.100 --> 00:39:24.600 +00:39:23.360 --> 00:39:24.600 that should just work, -00:39:26.980 --> 00:39:27.140 +00:39:24.640 --> 00:39:27.140 but you could customize more fun and -00:39:29.320 --> 00:39:29.620 +00:39:27.140 --> 00:39:29.620 exploratory things instead of people -00:39:31.260 --> 00:39:31.720 +00:39:29.620 --> 00:39:31.720 reinventing the wheel over and over again. -00:39:33.340 --> 00:39:33.420 +00:39:31.720 --> 00:39:33.420 So I'm very excited about what's happening in -00:39:35.040 --> 00:39:35.280 +00:39:33.420 --> 00:39:35.280 Emacs. I think we should be proud of what -00:39:37.200 --> 00:39:37.360 +00:39:35.280 --> 00:39:37.360 we've accomplished. It's so many things to -00:39:37.960 --> 00:39:38.360 +00:39:37.360 --> 00:39:38.360 many different people, -00:39:39.160 --> 00:39:39.660 +00:39:38.360 --> 00:39:39.660 an environment for hacking, -00:39:41.120 --> 00:39:41.620 +00:39:40.040 --> 00:39:41.620 just a productivity system. -00:39:43.680 --> 00:39:44.020 +00:39:41.880 --> 00:39:44.020 Other sees us as a different way of looking -00:39:45.160 --> 00:39:45.360 +00:39:44.020 --> 00:39:45.360 at computing, you know, -00:39:47.160 --> 00:39:47.440 +00:39:45.360 --> 00:39:47.440 the embodiment of the ideal of the Lisp -00:39:49.120 --> 00:39:49.280 +00:39:47.440 --> 00:39:49.280 machine if you want to talk big words and -00:39:50.380 --> 00:39:50.660 +00:39:49.280 --> 00:39:50.660 stuff like that. And of course, -00:39:52.900 --> 00:39:53.320 +00:39:50.660 --> 00:39:53.320 Emacs are all those things and so many more. -00:39:54.940 --> 00:39:55.440 +00:39:53.320 --> 00:39:55.440 And that's what makes Emacs so amazing. -00:40:00.580 --> 00:40:00.780 +00:39:56.280 --> 00:40:00.780 And in some sense, we should be care that -00:40:02.720 --> 00:40:03.040 +00:40:00.780 --> 00:40:03.040 people are satisfied with using lesser text -00:40:05.220 --> 00:40:05.600 +00:40:03.040 --> 00:40:05.600 editors. How could they be happy running -00:40:07.180 --> 00:40:07.440 +00:40:05.600 --> 00:40:07.440 that? I mean, I'm sure it's fine, -00:40:09.360 --> 00:40:09.800 +00:40:07.440 --> 00:40:09.800 but it sure as hell isn't Emacs. -00:40:12.100 --> 00:40:12.340 +00:40:09.800 --> 00:40:12.340 So don't we owe it to the world and to them -00:40:13.940 --> 00:40:14.440 +00:40:12.340 --> 00:40:14.440 and to ourselves to make a great Emacs. -00:40:15.880 --> 00:40:16.120 +00:40:14.760 --> 00:40:16.120 That will be my ending words. -00:40:17.520 --> 00:40:18.020 +00:40:16.120 --> 00:40:18.020 And I hope to see you all in the Q&A. -00:40:22.360 --> 00:40:22.560 +00:40:18.120 --> 00:40:22.560 Thank you all. And thank you so much, -00:40:23.860 --> 00:40:24.360 +00:40:22.560 --> 00:40:24.360 Stefan. That was a wonderful presentation. -00:40:26.780 --> 00:40:27.280 +00:40:24.800 --> 00:40:27.280 And I just want to give you the opportunity. -00:40:29.440 --> 00:40:29.940 +00:40:27.340 --> 00:40:29.940 You said that you perhaps had, -00:40:31.260 --> 00:40:31.400 +00:40:30.480 --> 00:40:31.400 Not the practical stuff, -00:40:33.120 --> 00:40:33.280 +00:40:31.400 --> 00:40:33.280 but you wanted to do a demo or something like -00:40:34.280 --> 00:40:34.780 +00:40:33.280 --> 00:40:34.780 this? What did you mention exactly? -00:40:37.960 --> 00:40:38.460 +00:40:36.180 --> 00:40:38.460 Yeah, we didn't have time really. -00:40:41.600 --> 00:40:42.040 +00:40:38.740 --> 00:40:42.040 Yes, I'm not sure. I didn't prepare anything -00:40:43.080 --> 00:40:43.580 +00:40:42.040 --> 00:40:43.580 so that we can do it live. -00:40:44.540 --> 00:40:44.800 +00:40:43.620 --> 00:40:44.800 But maybe for next time, -00:40:48.120 --> 00:40:48.620 +00:40:44.800 --> 00:40:48.620 I will do a demo. Don't hold me to it. -00:40:50.800 --> 00:40:51.100 +00:40:49.920 --> 00:40:51.100 Or someone else could. -00:40:52.040 --> 00:40:52.540 +00:40:51.100 --> 00:40:52.540 That would be really amazing. -00:40:53.860 --> 00:40:54.020 +00:40:53.260 --> 00:40:54.020 Right. Well, thank you, -00:40:56.640 --> 00:40:56.820 +00:40:54.020 --> 00:40:56.820 Stéphane. You've been already into so much -00:41:00.060 --> 00:41:00.560 +00:40:56.820 --> 00:41:00.560 detail of so many... So much of the intricacy -00:41:04.600 --> 00:41:05.100 +00:41:01.780 --> 00:41:05.100 of the maintenance. And as someone who's been -00:41:07.480 --> 00:41:07.980 +00:41:05.460 --> 00:41:07.980 95% of the time developing for Melpa, -00:41:10.920 --> 00:41:11.040 +00:41:08.260 --> 00:41:11.040 I feel like this talk was very geared to a -00:41:13.520 --> 00:41:13.980 +00:41:11.040 --> 00:41:13.980 lot of us who tend to experiment in this -00:41:15.920 --> 00:41:16.400 +00:41:13.980 --> 00:41:16.400 Cambrian stage of Emacs evolution, -00:41:19.120 --> 00:41:19.620 +00:41:16.400 --> 00:41:19.620 where we get to deploy a lot of creativity -00:41:23.760 --> 00:41:24.020 +00:41:20.600 --> 00:41:24.020 whilst also feeling pretty agile in a way we -00:41:25.080 --> 00:41:25.580 +00:41:24.020 --> 00:41:25.580 come up with solutions to problems. -00:41:28.820 --> 00:41:29.240 +00:41:25.640 --> 00:41:29.240 But you've won me over with your discussion -00:41:31.100 --> 00:41:31.360 +00:41:29.240 --> 00:41:31.360 about potentially moving some of this stuff -00:41:32.720 --> 00:41:33.220 +00:41:31.360 --> 00:41:33.220 to core. And I think this particularly -00:41:35.940 --> 00:41:36.140 +00:41:33.280 --> 00:41:36.140 resonated at the end with this tension that -00:41:38.160 --> 00:41:38.660 +00:41:36.140 --> 00:41:38.660 you feel about problems that you encounter. -00:41:40.280 --> 00:41:40.760 +00:41:39.160 --> 00:41:40.760 Do you fix them in Melpa? -00:41:41.600 --> 00:41:42.040 +00:41:40.760 --> 00:41:42.040 Do you fix them in core? -00:41:43.680 --> 00:41:43.780 +00:41:42.040 --> 00:41:43.780 Is it not something that is supposed to be an -00:41:46.340 --> 00:41:46.560 +00:41:43.780 --> 00:41:46.560 option? I love this tension and it's -00:41:47.900 --> 00:41:48.040 +00:41:46.560 --> 00:41:48.040 something that we've been exploring for the -00:41:49.300 --> 00:41:49.780 +00:41:48.040 --> 00:41:49.780 last 3 edition of Emacs Cons. -00:41:51.980 --> 00:41:52.480 +00:41:49.780 --> 00:41:52.480 It's really what is to be the interaction -00:41:55.160 --> 00:41:55.660 +00:41:52.600 --> 00:41:55.660 between this pool of very clever developers -00:41:57.960 --> 00:41:58.100 +00:41:55.680 --> 00:41:58.100 who are on Melpa but who are perhaps a little -00:42:00.380 --> 00:42:00.880 +00:41:58.100 --> 00:42:00.880 bit afraid of joining Core and the wonderful -00:42:02.360 --> 00:42:02.860 +00:42:00.920 --> 00:42:02.860 job that you do that, yes, -00:42:05.140 --> 00:42:05.640 +00:42:02.980 --> 00:42:05.640 seems archaic from the outside, -00:42:07.700 --> 00:42:07.840 +00:42:05.860 --> 00:42:07.840 but as you've been at length today in your -00:42:09.280 --> 00:42:09.480 +00:42:07.840 --> 00:42:09.480 presentation, is actually just a better way -00:42:11.680 --> 00:42:11.780 +00:42:09.480 --> 00:42:11.780 to work, a very pragmatic way to get a lot of -00:42:13.180 --> 00:42:13.320 +00:42:11.780 --> 00:42:13.320 work done. So, thank you so much for your -00:42:15.020 --> 00:42:15.240 +00:42:13.320 --> 00:42:15.240 presentation. Thank you, -00:42:20.320 --> 00:42:20.740 +00:42:15.240 --> 00:42:20.740 Leo. So, we have about 12 minutes now to go -00:42:22.500 --> 00:42:22.950 +00:42:20.740 --> 00:42:22.950 through as many questions as possible. -00:42:25.600 --> 00:42:26.000 +00:42:22.950 --> 00:42:26.000 You have obviously had a lot of questions -00:42:26.680 --> 00:42:27.180 +00:42:26.000 --> 00:42:27.180 throughout your presentation. -00:42:28.660 --> 00:42:28.940 +00:42:27.660 --> 00:42:28.940 Do you have access to the pad, -00:42:30.240 --> 00:42:30.400 +00:42:28.940 --> 00:42:30.400 or do you want me to share the question and -00:42:32.340 --> 00:42:32.660 +00:42:30.400 --> 00:42:32.660 feed them to you? Yes, -00:42:34.020 --> 00:42:34.200 +00:42:32.660 --> 00:42:34.200 could you start with sharing them? -00:42:35.500 --> 00:42:36.000 +00:42:34.200 --> 00:42:36.000 I'll see if I can get it on my screen. -00:42:39.140 --> 00:42:39.640 +00:42:36.280 --> 00:42:39.640 Sure, I'll do that. Please let me know if my -00:42:42.620 --> 00:42:42.980 +00:42:39.720 --> 00:42:42.980 microphone is clipping because my OBS setup -00:42:44.060 --> 00:42:44.440 +00:42:42.980 --> 00:42:44.440 sometimes is a little bit janky. -00:42:45.720 --> 00:42:46.080 +00:42:44.440 --> 00:42:46.080 But I'm going to try to read the questions -00:42:47.280 --> 00:42:47.780 +00:42:46.080 --> 00:42:47.780 for now. It's tipping, -00:42:51.660 --> 00:42:51.980 +00:42:48.080 --> 00:42:51.980 I can hear you okay. Okay, -00:42:53.940 --> 00:42:54.400 +00:42:51.980 --> 00:42:54.400 so bear with the clicking, -00:42:56.080 --> 00:42:56.480 +00:42:54.400 --> 00:42:56.480 we'll switch as soon as possible to Stefan -00:42:57.800 --> 00:42:58.080 +00:42:56.480 --> 00:42:58.080 reading the question, but I'll read the first -00:43:02.320 --> 00:43:02.820 +00:42:58.080 --> 00:43:02.820 1. Can you tell us some about your, -00:43:03.880 --> 00:43:04.340 +00:43:02.860 --> 00:43:04.340 can you tell us some more I assume, -00:43:05.720 --> 00:43:06.160 +00:43:04.340 --> 00:43:06.160 about your background with Emacs development -00:43:07.000 --> 00:43:07.500 +00:43:06.160 --> 00:43:07.500 and programming in general, -00:43:08.720 --> 00:43:09.220 +00:43:07.580 --> 00:43:09.220 your professional work possibly? -00:43:15.060 --> 00:43:15.440 +00:43:11.400 --> 00:43:15.440 Yeah, sure. Okay, I studied computer science -00:43:19.760 --> 00:43:19.960 +00:43:15.440 --> 00:43:19.960 at university. I started programming on a -00:43:23.800 --> 00:43:23.960 +00:43:19.960 --> 00:43:23.960 Commodore 64. I started with BASIC and then I -00:43:26.380 --> 00:43:26.880 +00:43:23.960 --> 00:43:26.880 did a couple of versions of BASIC as a kid. -00:43:31.340 --> 00:43:31.540 +00:43:27.380 --> 00:43:31.540 But then really things took off when I -00:43:33.740 --> 00:43:34.240 +00:43:31.540 --> 00:43:34.240 started using GNU Linux. -00:43:35.320 --> 00:43:35.580 +00:43:34.300 --> 00:43:35.580 I can't remember which year, -00:43:36.940 --> 00:43:37.440 +00:43:35.580 --> 00:43:37.440 maybe it was early 2000, -00:43:39.240 --> 00:43:39.740 +00:43:38.480 --> 00:43:39.740 something like that, late. -00:43:41.580 --> 00:43:42.080 +00:43:39.840 --> 00:43:42.080 No, it must've been before that actually, -00:43:43.620 --> 00:43:44.120 +00:43:42.380 --> 00:43:44.120 because I remember I was 14. -00:43:45.520 --> 00:43:46.020 +00:43:44.340 --> 00:43:46.020 Yeah, okay, so let's say 1999, -00:43:48.220 --> 00:43:48.720 +00:43:46.500 --> 00:43:48.720 1998, somewhere there around. -00:43:49.740 --> 00:43:50.200 +00:43:48.840 --> 00:43:50.200 Then I started with Perl, -00:43:52.120 --> 00:43:52.620 +00:43:50.200 --> 00:43:52.620 and I did Perl for a good long while. -00:43:54.960 --> 00:43:55.460 +00:43:52.700 --> 00:43:55.460 I learned C++, I learned C, -00:43:56.640 --> 00:43:56.960 +00:43:55.680 --> 00:43:56.960 I did all kinds of stuff, -00:43:58.140 --> 00:43:58.640 +00:43:56.960 --> 00:43:58.640 and then I went to university, -00:44:01.220 --> 00:44:01.700 +00:43:59.440 --> 00:44:01.700 computer science, and I've been working, -00:44:03.480 --> 00:44:03.980 +00:44:01.700 --> 00:44:03.980 you know, in various roles. -00:44:05.800 --> 00:44:06.300 +00:44:04.160 --> 00:44:06.300 Right now, I'm coding Python. -00:44:09.140 --> 00:44:09.640 +00:44:06.980 --> 00:44:09.640 Up until last Friday, I was writing firmware -00:44:11.819 --> 00:44:12.319 +00:44:09.940 --> 00:44:12.319 in C for a small microcontroller, -00:44:15.200 --> 00:44:15.600 +00:44:12.440 --> 00:44:15.600 which is pretty different than writing -00:44:16.560 --> 00:44:17.060 +00:44:15.600 --> 00:44:17.060 Python, that's for sure. -00:44:19.280 --> 00:44:19.600 +00:44:17.220 --> 00:44:19.600 So yeah, so that's a little bit about me. -00:44:21.360 --> 00:44:21.860 +00:44:19.600 --> 00:44:21.860 I got interested in free software, -00:44:24.280 --> 00:44:24.720 +00:44:22.300 --> 00:44:24.720 you know, also at a very young age. -00:44:26.140 --> 00:44:26.320 +00:44:24.720 --> 00:44:26.320 So, I mean, I've been following these, -00:44:28.940 --> 00:44:29.120 +00:44:26.320 --> 00:44:29.120 you know, ideological discussions and -00:44:31.160 --> 00:44:31.560 +00:44:29.120 --> 00:44:31.560 debates, read all this stuff by Richard -00:44:33.620 --> 00:44:33.940 +00:44:31.560 --> 00:44:33.940 Stallman and so on and so forth. -00:44:37.500 --> 00:44:37.760 +00:44:33.940 --> 00:44:37.760 But yeah, that's it. Great, -00:44:40.680 --> 00:44:41.120 +00:44:37.760 --> 00:44:41.120 thank you. I'll move on to the next question. -00:44:42.640 --> 00:44:42.980 +00:44:41.120 --> 00:44:42.980 You'll have to listen to me because if I -00:44:44.680 --> 00:44:45.020 +00:44:42.980 --> 00:44:45.020 start sharing my screen again, -00:44:45.820 --> 00:44:46.320 +00:44:45.020 --> 00:44:46.320 we're going to get some clicks. -00:44:50.380 --> 00:44:50.680 +00:44:48.140 --> 00:44:50.680 So the question. Do you think that 1 day -00:44:53.914 --> 00:44:53.930 +00:44:50.680 --> 00:44:53.930 there will be a native I'll start again, -00:44:54.065 --> 00:44:54.079 +00:44:53.930 --> 00:44:54.079 sorry. Do you think that 1 day there will be -00:44:54.140 --> 00:44:54.440 +00:44:54.079 --> 00:44:54.440 a native... I'll start again, -00:44:56.380 --> 00:44:56.480 +00:44:54.440 --> 00:44:56.480 sorry. Do you think that 1 day there will be -00:44:58.840 --> 00:44:59.020 +00:44:56.480 --> 00:44:59.020 a native graphical web browser in Emacs or is -00:45:00.340 --> 00:45:00.540 +00:44:59.020 --> 00:45:00.540 it kind of against its philosophy and -00:45:03.320 --> 00:45:03.820 +00:45:00.540 --> 00:45:03.820 architecture? So will we stick just with EWW -00:45:06.300 --> 00:45:06.800 +00:45:04.200 --> 00:45:06.800 and EAF or similar workaround tricks? -00:45:10.840 --> 00:45:11.200 +00:45:08.640 --> 00:45:11.200 So if, I don't know if people have seen, -00:45:12.240 --> 00:45:12.740 +00:45:11.200 --> 00:45:12.740 there is a talk by, I think, -00:45:14.820 --> 00:45:15.080 +00:45:13.440 --> 00:45:15.080 Perry Metzger, is that the name? -00:45:16.300 --> 00:45:16.800 +00:45:15.080 --> 00:45:16.800 Sorry if I got the name wrong. -00:45:17.860 --> 00:45:18.360 +00:45:17.080 --> 00:45:18.360 Perry Metzger, I think. -00:45:20.660 --> 00:45:20.800 +00:45:18.720 --> 00:45:20.800 It's like, he marks a text editor for the -00:45:22.360 --> 00:45:22.640 +00:45:20.800 --> 00:45:22.640 next 40 years. He makes an excellent point -00:45:24.440 --> 00:45:24.720 +00:45:22.640 --> 00:45:24.720 there that 1 of the things that we need to do -00:45:27.720 --> 00:45:27.840 +00:45:24.720 --> 00:45:27.840 is really get a proper HTML rendering in -00:45:29.900 --> 00:45:30.260 +00:45:27.840 --> 00:45:30.260 Emacs. It's like a dream at this point. -00:45:32.000 --> 00:45:32.200 +00:45:30.260 --> 00:45:32.200 No 1 is actively working on something like -00:45:33.960 --> 00:45:34.240 +00:45:32.200 --> 00:45:34.240 that. I think that, you know, -00:45:35.980 --> 00:45:36.380 +00:45:34.240 --> 00:45:36.380 there, first of all, you'd need to rewrite -00:45:39.020 --> 00:45:39.520 +00:45:36.380 --> 00:45:39.520 the display engine. So that's a big job. -00:45:40.920 --> 00:45:41.140 +00:45:39.920 --> 00:45:41.140 It is. I'm not saying, -00:45:42.040 --> 00:45:42.540 +00:45:41.140 --> 00:45:42.540 you know, it can't be done, -00:45:44.160 --> 00:45:44.660 +00:45:43.040 --> 00:45:44.660 but you need to start there. -00:45:47.300 --> 00:45:47.560 +00:45:44.660 --> 00:45:47.560 Right? Second of all, you need to think -00:45:50.080 --> 00:45:50.460 +00:45:47.560 --> 00:45:50.460 about, you know, with all the Emacs Lisp code -00:45:51.820 --> 00:45:52.090 +00:45:50.460 --> 00:45:52.090 out there, is really assuming, -00:45:54.760 --> 00:45:54.960 +00:45:52.090 --> 00:45:54.960 you know, 1 paradigm, which is that you have -00:45:57.640 --> 00:45:57.720 +00:45:54.960 --> 00:45:57.720 a square, and basically you have columns and -00:45:59.480 --> 00:45:59.760 +00:45:57.720 --> 00:45:59.760 you have rows, and everything is in there, -00:46:01.860 --> 00:46:02.360 +00:45:59.760 --> 00:46:02.360 even images, is basically in a column, -00:46:04.240 --> 00:46:04.740 +00:46:02.540 --> 00:46:04.740 you know, in a column on a row somewhere. -00:46:07.120 --> 00:46:07.360 +00:46:05.380 --> 00:46:07.360 Whereas, you know, when you just start doing -00:46:09.280 --> 00:46:09.780 +00:46:07.360 --> 00:46:09.780 the more web stuff and web rendering, -00:46:11.520 --> 00:46:12.020 +00:46:10.120 --> 00:46:12.020 you already have like a seaplane. -00:46:14.340 --> 00:46:14.500 +00:46:12.040 --> 00:46:14.500 You have different types of geometries that -00:46:16.720 --> 00:46:16.880 +00:46:14.500 --> 00:46:16.880 are possible. And what does it mean to go to -00:46:19.200 --> 00:46:19.370 +00:46:16.880 --> 00:46:19.370 the logical next line in that kind of sense? -00:46:21.100 --> 00:46:21.420 +00:46:19.370 --> 00:46:21.420 I mean these types of things I'm not saying -00:46:23.260 --> 00:46:23.440 +00:46:21.420 --> 00:46:23.440 it can't be done. I'm saying there are there -00:46:27.260 --> 00:46:27.440 +00:46:23.440 --> 00:46:27.440 are definitely some challenges there It would -00:46:30.020 --> 00:46:30.280 +00:46:27.440 --> 00:46:30.280 be amazing I mean, but we need someone with -00:46:32.520 --> 00:46:33.020 +00:46:30.280 --> 00:46:33.020 you know, the inclination and talent I think -00:46:37.280 --> 00:46:37.680 +00:46:33.320 --> 00:46:37.680 to work on that's a job posting if I've ever -00:46:40.080 --> 00:46:40.200 +00:46:37.680 --> 00:46:40.200 had 1. So good luck to whoever's willing to -00:46:41.600 --> 00:46:42.100 +00:46:40.200 --> 00:46:42.100 apply for this 1. I think it's a tough 1. -00:46:45.940 --> 00:46:46.440 +00:46:43.180 --> 00:46:46.440 It is, yes. Go on. Okay, -00:46:47.860 --> 00:46:48.040 +00:46:46.560 --> 00:46:48.040 do you happen to have the questions in front -00:46:50.160 --> 00:46:50.320 +00:46:48.040 --> 00:46:50.320 of you? Can I just read them to you so that -00:46:52.160 --> 00:46:52.660 +00:46:50.320 --> 00:46:52.660 you can also have a feedback in front of you? -00:46:56.180 --> 00:46:56.680 +00:46:54.780 --> 00:46:56.680 Yes, I have the pad here. -00:46:58.580 --> 00:46:58.860 +00:46:57.260 --> 00:46:58.860 Okay, cool. So I'll read the next question -00:47:00.060 --> 00:47:00.260 +00:46:58.860 --> 00:47:00.260 and this way I don't have to worry too much -00:47:02.160 --> 00:47:02.320 +00:47:00.260 --> 00:47:02.320 about me butchering every word in the -00:47:04.340 --> 00:47:04.540 +00:47:02.320 --> 00:47:04.540 sentence. So, Emacs development and -00:47:06.300 --> 00:47:06.460 +00:47:04.540 --> 00:47:06.460 communication still is very much focused on -00:47:08.300 --> 00:47:08.640 +00:47:06.460 --> 00:47:08.640 email mailing lists. I like this, -00:47:10.120 --> 00:47:10.380 +00:47:08.640 --> 00:47:10.380 but what do you think about introducing other -00:47:11.820 --> 00:47:12.320 +00:47:10.380 --> 00:47:12.320 channels for talking to users, -00:47:14.980 --> 00:47:15.140 +00:47:12.440 --> 00:47:15.140 like the Emacs project community could set up -00:47:16.880 --> 00:47:17.120 +00:47:15.140 --> 00:47:17.120 a master on instance of its own, -00:47:19.780 --> 00:47:20.280 +00:47:17.120 --> 00:47:20.280 for instance? I think from the point of view -00:47:21.500 --> 00:47:21.760 +00:47:20.280 --> 00:47:21.760 of the Emacs core team, -00:47:23.680 --> 00:47:23.860 +00:47:21.760 --> 00:47:23.860 we don't really have a lot of resources or -00:47:25.760 --> 00:47:25.960 +00:47:23.860 --> 00:47:25.960 people inclined to be working on stuff like -00:47:27.700 --> 00:47:27.880 +00:47:25.960 --> 00:47:27.880 that. But I mean, there is so much going on. -00:47:28.860 --> 00:47:29.360 +00:47:27.880 --> 00:47:29.360 Emacs is a very, you know, -00:47:32.080 --> 00:47:32.580 +00:47:30.420 --> 00:47:32.580 It's a big community, frankly, -00:47:34.000 --> 00:47:34.500 +00:47:32.580 --> 00:47:34.500 right? So people working on emacs.com, -00:47:36.900 --> 00:47:37.400 +00:47:34.760 --> 00:47:37.400 there are people in the IRC channel, -00:47:38.700 --> 00:47:39.200 +00:47:37.500 --> 00:47:39.200 the emacs IRC channel, -00:47:40.320 --> 00:47:40.820 +00:47:39.400 --> 00:47:40.820 there's the emacs subreddit. -00:47:42.780 --> 00:47:43.280 +00:47:40.960 --> 00:47:43.280 And I mean, people are doing an incredible -00:47:45.280 --> 00:47:45.480 +00:47:43.380 --> 00:47:45.480 job. And I think if people wanna do more -00:47:46.359 --> 00:47:46.400 +00:47:45.480 --> 00:47:46.400 stuff like that, I mean, -00:47:48.340 --> 00:47:48.840 +00:47:46.400 --> 00:47:48.840 Don't wait for Argo, just go for it. -00:47:54.000 --> 00:47:54.340 +00:47:52.000 --> 00:47:54.340 Great. Moving on to the next question. -00:47:56.400 --> 00:47:56.520 +00:47:54.340 --> 00:47:56.520 Sorry, I'm not commenting anymore because we -00:47:58.080 --> 00:47:58.180 +00:47:56.520 --> 00:47:58.180 have so many questions and I'd love for you -00:48:00.060 --> 00:48:00.260 +00:47:58.180 --> 00:48:00.260 to answer as many people as possible because -00:48:02.040 --> 00:48:02.540 +00:48:00.260 --> 00:48:02.540 we have about 6 minutes technically, -00:48:04.320 --> 00:48:04.820 +00:48:02.640 --> 00:48:04.820 but we can go perhaps a little bit over. -00:48:05.860 --> 00:48:06.220 +00:48:05.080 --> 00:48:06.220 If you have the time, Stefan, -00:48:08.180 --> 00:48:08.680 +00:48:06.220 --> 00:48:08.680 though. Yeah. Okay, great. -00:48:11.000 --> 00:48:11.140 +00:48:09.340 --> 00:48:11.140 What are some features or packages you'd like -00:48:12.040 --> 00:48:12.540 +00:48:11.140 --> 00:48:12.540 to see developed by the community? -00:48:15.060 --> 00:48:15.560 +00:48:12.560 --> 00:48:15.560 We've already talked about the native HTTP -00:48:17.120 --> 00:48:17.620 +00:48:15.920 --> 00:48:17.620 display, but do you have any others? -00:48:21.580 --> 00:48:22.080 +00:48:19.540 --> 00:48:22.080 So, I mean, developed by the community, -00:48:23.040 --> 00:48:23.240 +00:48:22.360 --> 00:48:23.240 it depends what you mean. -00:48:27.280 --> 00:48:27.720 +00:48:23.240 --> 00:48:27.720 So do you mean sending stuff that people -00:48:29.220 --> 00:48:29.720 +00:48:27.720 --> 00:48:29.720 could be working on in general? -00:48:32.820 --> 00:48:33.320 +00:48:30.480 --> 00:48:33.320 I think for now, like let's say the roadmap, -00:48:34.960 --> 00:48:35.140 +00:48:33.420 --> 00:48:35.140 I'll just give some of the things that I -00:48:36.820 --> 00:48:36.940 +00:48:35.140 --> 00:48:36.940 think should happen right now and that I -00:48:38.720 --> 00:48:39.060 +00:48:36.940 --> 00:48:39.060 would love for people to send patches for. -00:48:40.920 --> 00:48:41.120 +00:48:39.060 --> 00:48:41.120 That's what I'm gonna be answering because -00:48:42.360 --> 00:48:42.860 +00:48:41.120 --> 00:48:42.860 that's what I think I can answer. -00:48:44.720 --> 00:48:45.220 +00:48:43.280 --> 00:48:45.220 Tree-sitter is a new thing, -00:48:48.120 --> 00:48:48.620 +00:48:45.280 --> 00:48:48.620 right? Improving and working on new modes -00:48:49.540 --> 00:48:50.040 +00:48:48.860 --> 00:48:50.040 for, you know, TreeSitter, -00:48:52.360 --> 00:48:52.860 +00:48:50.200 --> 00:48:52.860 it's not very hard. I think many people get -00:48:55.400 --> 00:48:55.560 +00:48:52.900 --> 00:48:55.560 into it and make sure to integrate them in -00:48:57.040 --> 00:48:57.540 +00:48:55.560 --> 00:48:57.540 Emacs core. I think that would be, -00:48:59.700 --> 00:49:00.140 +00:48:58.140 --> 00:49:00.140 I mean, on my wishlist. -00:49:01.820 --> 00:49:01.960 +00:49:00.140 --> 00:49:01.960 The other thing that is that we've asked for -00:49:03.260 --> 00:49:03.740 +00:49:01.960 --> 00:49:03.740 someone perhaps with a little bit more -00:49:05.800 --> 00:49:05.940 +00:49:03.740 --> 00:49:05.940 experience, I think, but working on -00:49:08.880 --> 00:49:09.080 +00:49:05.940 --> 00:49:09.080 refactoring capabilities in Emacs and a more -00:49:11.100 --> 00:49:11.320 +00:49:09.080 --> 00:49:11.320 general framework, I think, -00:49:13.180 --> 00:49:13.680 +00:49:11.320 --> 00:49:13.680 for that. There are probably many more ideas -00:49:14.900 --> 00:49:15.300 +00:49:13.780 --> 00:49:15.300 that I could give people, -00:49:17.420 --> 00:49:17.720 +00:49:15.300 --> 00:49:17.720 but those would be the 2 big ones, -00:49:19.640 --> 00:49:20.140 +00:49:17.720 --> 00:49:20.140 I think, that are also very uncontroversial. -00:49:23.460 --> 00:49:23.960 +00:49:22.360 --> 00:49:23.960 It's funny because for me, -00:49:26.580 --> 00:49:26.760 +00:49:24.400 --> 00:49:26.760 I don't think refactoring would count as a -00:49:29.260 --> 00:49:29.760 +00:49:26.760 --> 00:49:29.760 feature, but it's so vital to allowing -00:49:31.280 --> 00:49:31.780 +00:49:30.360 --> 00:49:31.780 further features to be developed. -00:49:33.940 --> 00:49:34.160 +00:49:31.780 --> 00:49:34.160 Otherwise, I remember the way Org Mode used -00:49:36.020 --> 00:49:36.300 +00:49:34.160 --> 00:49:36.300 to be before we had Org Element and stuff -00:49:38.680 --> 00:49:38.940 +00:49:36.300 --> 00:49:38.940 like this. It was really complicated to write -00:49:40.920 --> 00:49:41.200 +00:49:38.940 --> 00:49:41.200 any kind of parsing stuff for it. -00:49:42.100 --> 00:49:42.340 +00:49:41.200 --> 00:49:42.340 And now that we've got it, -00:49:43.580 --> 00:49:44.080 +00:49:42.340 --> 00:49:44.080 it just opened up a world of possibility -00:49:45.920 --> 00:49:46.160 +00:49:44.180 --> 00:49:46.160 where parsing an Org Mode file is just made -00:49:47.920 --> 00:49:48.280 +00:49:46.160 --> 00:49:48.280 so much easier. So I think that's a wonderful -00:49:49.120 --> 00:49:49.620 +00:49:48.280 --> 00:49:49.620 answer because it goes, -00:49:51.780 --> 00:49:52.080 +00:49:49.760 --> 00:49:52.080 it's multi-layered as you would expect from -00:49:53.420 --> 00:49:53.920 +00:49:52.080 --> 00:49:53.920 something that concerns the whole of Emacs. -00:49:56.660 --> 00:49:57.160 +00:49:55.800 --> 00:49:57.160 Moving on to the next question. -00:49:59.600 --> 00:49:59.960 +00:49:57.440 --> 00:49:59.960 What is the hardest decision being made -00:50:02.240 --> 00:50:02.480 +00:49:59.960 --> 00:50:02.480 within Emacs dev for the last 3 years. -00:50:04.760 --> 00:50:04.960 +00:50:02.480 --> 00:50:04.960 I'm not sure, is it the decision in the last -00:50:07.340 --> 00:50:07.480 +00:50:04.960 --> 00:50:07.480 3 years or I'll let you interpret the -00:50:08.260 --> 00:50:08.760 +00:50:07.480 --> 00:50:08.760 question however you want. -00:50:10.460 --> 00:50:10.960 +00:50:09.280 --> 00:50:10.960 Okay, well, I'll say this. -00:50:13.940 --> 00:50:14.220 +00:50:11.640 --> 00:50:14.220 I started in August and I haven't had any -00:50:16.480 --> 00:50:16.920 +00:50:14.220 --> 00:50:16.920 really hard decisions so far. -00:50:20.360 --> 00:50:20.540 +00:50:16.920 --> 00:50:20.540 So good news. Maybe Eli will have more for -00:50:22.320 --> 00:50:22.820 +00:50:20.540 --> 00:50:22.820 the last 3 years. Keep it simple. -00:50:28.160 --> 00:50:28.660 +00:50:25.240 --> 00:50:28.660 Thanks. Cool. Next question. -00:50:31.420 --> 00:50:31.920 +00:50:28.860 --> 00:50:31.920 Any plans to integrate XWM into core? -00:50:33.900 --> 00:50:34.400 +00:50:31.940 --> 00:50:34.400 Emacs is a really good Winters manager. -00:50:37.580 --> 00:50:38.080 +00:50:34.780 --> 00:50:38.080 That's super cool. I think EXWM is cool. -00:50:39.640 --> 00:50:40.140 +00:50:38.100 --> 00:50:40.140 I think they need to upgrade to Wayland -00:50:41.580 --> 00:50:41.880 +00:50:40.260 --> 00:50:41.880 somehow and that's not clear yet, -00:50:44.600 --> 00:50:44.880 +00:50:41.880 --> 00:50:44.880 but you know, we don't have any current plans -00:50:48.400 --> 00:50:48.900 +00:50:44.880 --> 00:50:48.900 to integrate it, no. Right, -00:50:51.180 --> 00:50:51.600 +00:50:49.020 --> 00:50:51.600 Next question. Do you think it is a good idea -00:50:53.040 --> 00:50:53.540 +00:50:51.600 --> 00:50:53.540 to choose Org Mode for writing documentation -00:50:57.260 --> 00:50:57.740 +00:50:53.680 --> 00:50:57.740 instead of tech info? I think that whatever -00:50:59.440 --> 00:50:59.680 +00:50:57.740 --> 00:50:59.680 we do, it should be the people that are -00:51:01.520 --> 00:51:01.760 +00:50:59.680 --> 00:51:01.760 working on the documentation that should make -00:51:03.240 --> 00:51:03.420 +00:51:01.760 --> 00:51:03.420 that choice. Currently we have, -00:51:05.740 --> 00:51:05.920 +00:51:03.420 --> 00:51:05.920 I think, Modus themes and Org Mode itself is -00:51:07.560 --> 00:51:08.060 +00:51:05.920 --> 00:51:08.060 writing their documentation in Org Mode, -00:51:10.440 --> 00:51:10.940 +00:51:08.080 --> 00:51:10.940 that's fine by me. It has some drawbacks, -00:51:12.940 --> 00:51:13.440 +00:51:10.960 --> 00:51:13.440 it has some benefits, but most documentation -00:51:14.340 --> 00:51:14.840 +00:51:13.580 --> 00:51:14.840 is still in tech info. -00:51:17.120 --> 00:51:17.360 +00:51:15.240 --> 00:51:17.360 Maybe we'd need to replace that at some -00:51:19.600 --> 00:51:19.840 +00:51:17.360 --> 00:51:19.840 point, I don't know. But for now, -00:51:21.960 --> 00:51:22.280 +00:51:19.840 --> 00:51:22.280 that's what people know and use. -00:51:24.140 --> 00:51:24.280 +00:51:22.280 --> 00:51:24.280 And if you find that as a barrier to -00:51:25.440 --> 00:51:25.600 +00:51:24.280 --> 00:51:25.600 contribute to Emacs, I mean, -00:51:26.920 --> 00:51:27.420 +00:51:25.600 --> 00:51:27.420 just really write it as plain text. -00:51:28.940 --> 00:51:29.380 +00:51:27.540 --> 00:51:29.380 We'll be happy to help you with the markup. -00:51:30.140 --> 00:51:30.280 +00:51:29.380 --> 00:51:30.280 It's a little bit, you know, -00:51:31.260 --> 00:51:31.760 +00:51:30.280 --> 00:51:31.760 finicky and stuff like that. -00:51:34.560 --> 00:51:35.060 +00:51:33.340 --> 00:51:35.060 Great. Thanks for that. -00:51:37.900 --> 00:51:38.000 +00:51:35.620 --> 00:51:38.000 Next question. What do you plan to work on in -00:51:38.860 --> 00:51:39.360 +00:51:38.000 --> 00:51:39.360 Emacs Core in the future? -00:51:42.440 --> 00:51:42.660 +00:51:40.460 --> 00:51:42.660 I'm a little bit hesitant to reply to that. -00:51:43.280 --> 00:51:43.740 +00:51:42.660 --> 00:51:43.740 Of course I have ideas. -00:51:45.360 --> 00:51:45.760 +00:51:43.740 --> 00:51:45.760 Of course there are projects that I'm working -00:51:47.360 --> 00:51:47.640 +00:51:45.760 --> 00:51:47.640 on. However, if I say it here, -00:51:48.280 --> 00:51:48.480 +00:51:47.640 --> 00:51:48.480 I feel like, you know, -00:51:50.740 --> 00:51:51.240 +00:51:48.480 --> 00:51:51.240 then you'll hold me to it later and come ask, -00:51:51.980 --> 00:51:52.480 +00:51:51.300 --> 00:51:52.480 where is that feature? -00:51:54.940 --> 00:51:55.180 +00:51:52.640 --> 00:51:55.180 So I'll just say there is plenty of stuff -00:51:57.100 --> 00:51:57.340 +00:51:55.180 --> 00:51:57.340 that I'm working on, and if you want to know -00:51:58.520 --> 00:51:58.780 +00:51:57.340 --> 00:51:58.780 some of the stuff that I have been working -00:51:59.540 --> 00:52:00.040 +00:51:58.780 --> 00:52:00.040 on, check the Git log. -00:52:02.240 --> 00:52:02.400 +00:52:00.060 --> 00:52:02.400 I think that's just really as much as I want -00:52:04.540 --> 00:52:05.040 +00:52:02.400 --> 00:52:05.040 to say about that right now. -00:52:07.180 --> 00:52:07.360 +00:52:05.660 --> 00:52:07.360 You've added folks to just look at the path -00:52:09.120 --> 00:52:09.620 +00:52:07.360 --> 00:52:09.620 with the changelog and that's all you need. -00:52:12.840 --> 00:52:13.340 +00:52:11.600 --> 00:52:13.340 All right, moving on to the next question. -00:52:15.880 --> 00:52:16.120 +00:52:14.020 --> 00:52:16.120 What do you use Emacs for in your life other -00:52:17.080 --> 00:52:17.580 +00:52:16.120 --> 00:52:17.580 than working on Emacs itself? -00:52:20.560 --> 00:52:21.060 +00:52:18.080 --> 00:52:21.060 Oh shit. So the big thing is programming, -00:52:23.520 --> 00:52:24.020 +00:52:21.140 --> 00:52:24.020 right? Now I work as a programmer. -00:52:28.780 --> 00:52:29.280 +00:52:27.040 --> 00:52:29.280 But in general, I use org mode heavily. -00:52:30.280 --> 00:52:30.780 +00:52:29.340 --> 00:52:30.780 I use it for all my writing. -00:52:32.960 --> 00:52:33.460 +00:52:30.820 --> 00:52:33.460 I use it to write, prepare this talk. -00:52:34.860 --> 00:52:35.360 +00:52:33.480 --> 00:52:35.360 I use it as a productivity system. -00:52:41.480 --> 00:52:41.980 +00:52:35.380 --> 00:52:41.980 I use it for emails. I use it as an RSS -00:52:43.980 --> 00:52:44.480 +00:52:41.980 --> 00:52:44.480 reader. I do most of my computing. -00:52:46.840 --> 00:52:47.040 +00:52:44.760 --> 00:52:47.040 I also have Firefox. So it's like Emacs and -00:52:48.320 --> 00:52:48.820 +00:52:47.040 --> 00:52:48.820 Firefox for some reason. -00:52:51.740 --> 00:52:51.900 +00:52:48.900 --> 00:52:51.900 I do read documentation in Emacs as well in -00:52:57.940 --> 00:52:58.440 +00:52:51.900 --> 00:52:58.440 you, but yeah. Great. I'm still, -00:53:00.540 --> 00:53:00.720 +00:52:59.180 --> 00:53:00.720 I do very much the same thing with you. -00:53:01.880 --> 00:53:02.040 +00:53:00.720 --> 00:53:02.040 Like You've described exactly what I do. -00:53:02.560 --> 00:53:02.960 +00:53:02.040 --> 00:53:02.960 I work as a programmer, -00:53:04.340 --> 00:53:04.640 +00:53:02.960 --> 00:53:04.640 I use Augment for a lot of stuff, -00:53:06.220 --> 00:53:06.340 +00:53:04.640 --> 00:53:06.340 and I think that describes a whole lot of -00:53:07.600 --> 00:53:08.100 +00:53:06.340 --> 00:53:08.100 people currently watching the stream. -00:53:10.180 --> 00:53:10.680 +00:53:09.380 --> 00:53:10.680 Moving on to the next question. -00:53:12.540 --> 00:53:12.740 +00:53:10.840 --> 00:53:12.740 What could we do in order to make Emacs more -00:53:13.780 --> 00:53:14.280 +00:53:12.740 --> 00:53:14.280 attractive for younger users? -00:53:17.440 --> 00:53:17.940 +00:53:14.820 --> 00:53:17.940 This is an amazing question and I feel wholly -00:53:20.220 --> 00:53:20.720 +00:53:18.480 --> 00:53:20.720 unprepared to answer this. -00:53:23.680 --> 00:53:24.180 +00:53:21.180 --> 00:53:24.180 Probably more introductory material aimed at -00:53:26.180 --> 00:53:26.580 +00:53:24.320 --> 00:53:26.580 that age group. What do you mean by younger -00:53:28.580 --> 00:53:28.740 +00:53:26.580 --> 00:53:28.740 users? You know what would be really cool if -00:53:30.240 --> 00:53:30.740 +00:53:28.740 --> 00:53:30.740 you had an Emacs for kids project? -00:53:31.560 --> 00:53:32.060 +00:53:31.020 --> 00:53:32.060 That would be amazing. -00:53:34.640 --> 00:53:34.920 +00:53:32.680 --> 00:53:34.920 I'm not sure if that's what people are -00:53:36.380 --> 00:53:36.880 +00:53:34.920 --> 00:53:36.880 thinking about, but yeah, -00:53:39.280 --> 00:53:39.780 +00:53:37.200 --> 00:53:39.780 that's about what I can say for now. -00:53:43.000 --> 00:53:43.320 +00:53:40.380 --> 00:53:43.320 Good question. It is a very good question, -00:53:45.760 --> 00:53:45.880 +00:53:43.320 --> 00:53:45.880 like it comes back always to a key topic in -00:53:47.480 --> 00:53:47.720 +00:53:45.880 --> 00:53:47.720 EmacsConf, which is, how do we get more -00:53:49.040 --> 00:53:49.360 +00:53:47.720 --> 00:53:49.360 people to join us? Because it's a wonderful -00:53:51.560 --> 00:53:51.760 +00:53:49.360 --> 00:53:51.760 community. And how do we onboard people who -00:53:53.720 --> 00:53:54.220 +00:53:51.760 --> 00:53:54.220 are not programmers or people who are younger -00:53:56.220 --> 00:53:56.720 +00:53:54.400 --> 00:53:56.720 than the average Joe coming in those -00:54:01.240 --> 00:54:01.560 +00:53:57.120 --> 00:54:01.560 meetings? There's this Excellent article by -00:54:05.460 --> 00:54:05.960 +00:54:01.560 --> 00:54:05.960 Paul Graham, I think, where he was describing -00:54:08.640 --> 00:54:09.140 +00:54:06.140 --> 00:54:09.140 how they used Emacs as the sort of customer -00:54:11.120 --> 00:54:11.520 +00:54:09.320 --> 00:54:11.520 service system. They built the customer -00:54:13.440 --> 00:54:13.940 +00:54:11.520 --> 00:54:13.940 service system for the early days of Amazon -00:54:17.080 --> 00:54:17.200 +00:54:14.700 --> 00:54:17.200 in Emacs Lisp. And then they switched and all -00:54:18.280 --> 00:54:18.680 +00:54:17.200 --> 00:54:18.680 the employees were sad. -00:54:21.480 --> 00:54:21.680 +00:54:18.680 --> 00:54:21.680 So definitely there's more stuff that could -00:54:24.660 --> 00:54:25.160 +00:54:21.680 --> 00:54:25.160 be done in Emacs and be done better in Emacs. -00:54:27.240 --> 00:54:27.440 +00:54:25.240 --> 00:54:27.440 So for sure, if people want to explore more -00:54:28.380 --> 00:54:28.880 +00:54:27.440 --> 00:54:28.880 stuff like that, that's amazing. -00:54:31.560 --> 00:54:32.040 +00:54:29.720 --> 00:54:32.040 Yeah. And for people who weren't around -00:54:33.540 --> 00:54:33.740 +00:54:32.040 --> 00:54:33.740 earlier today, we've had a presentation about -00:54:36.320 --> 00:54:36.820 +00:54:33.740 --> 00:54:36.820 how to get computer science students to use -00:54:40.900 --> 00:54:41.100 +00:54:36.860 --> 00:54:41.100 Emacs and trying to provide as much -00:54:43.200 --> 00:54:43.500 +00:54:41.100 --> 00:54:43.500 information and as much tutorial as needed -00:54:45.060 --> 00:54:45.480 +00:54:43.500 --> 00:54:45.480 for them to understand what is the philosophy -00:54:47.980 --> 00:54:48.420 +00:54:45.480 --> 00:54:48.420 behind Emacs and how it influences the way -00:54:49.300 --> 00:54:49.540 +00:54:48.420 --> 00:54:49.540 you work and so forth. -00:54:51.000 --> 00:54:51.420 +00:54:49.540 --> 00:54:51.420 So you might want to revisit this discussion. -00:54:53.100 --> 00:54:53.400 +00:54:51.420 --> 00:54:53.400 And we also have plenty of talks talking -00:54:57.540 --> 00:54:57.720 +00:54:53.400 --> 00:54:57.720 about this issue. And I can just add that I -00:55:00.220 --> 00:55:00.320 +00:54:57.720 --> 00:55:00.320 think it's very important for us as a -00:55:02.880 --> 00:55:03.120 +00:55:00.320 --> 00:55:03.120 community to just be enthusiastic to get more -00:55:04.400 --> 00:55:04.640 +00:55:03.120 --> 00:55:04.640 people involved. Because I mean, -00:55:06.260 --> 00:55:06.660 +00:55:04.640 --> 00:55:06.660 look, there's this meme where it's like, -00:55:08.300 --> 00:55:08.620 +00:55:06.660 --> 00:55:08.620 I use Arch Linux, by the way, -00:55:09.520 --> 00:55:10.020 +00:55:08.620 --> 00:55:10.020 I use Arch, by the way. -00:55:12.160 --> 00:55:12.380 +00:55:10.080 --> 00:55:12.380 And for some reason, people using Arch keep -00:55:13.580 --> 00:55:14.080 +00:55:12.380 --> 00:55:14.080 telling you that they're using Arch. -00:55:15.860 --> 00:55:16.160 +00:55:14.600 --> 00:55:16.160 That's fine. Use whatever you want. -00:55:17.760 --> 00:55:18.260 +00:55:16.160 --> 00:55:18.260 It's free software, I don't care. -00:55:21.500 --> 00:55:21.900 +00:55:20.140 --> 00:55:21.900 I think if you look at Vim users, -00:55:22.940 --> 00:55:23.440 +00:55:21.900 --> 00:55:23.440 they're very almost militant, -00:55:25.280 --> 00:55:25.780 +00:55:23.540 --> 00:55:25.780 oh, we're Vim, and Vim is the thing. -00:55:26.980 --> 00:55:27.480 +00:55:25.920 --> 00:55:27.480 And Emacs users sometimes, -00:55:29.540 --> 00:55:29.960 +00:55:27.700 --> 00:55:29.960 and it's fine. We take a bit of a more -00:55:30.860 --> 00:55:31.160 +00:55:29.960 --> 00:55:31.160 laid-back approach. We're like, -00:55:32.400 --> 00:55:32.720 +00:55:31.160 --> 00:55:32.720 yeah, I use Emacs, you use Vim, -00:55:35.080 --> 00:55:35.320 +00:55:32.720 --> 00:55:35.320 whatever. And that's fine. -00:55:36.460 --> 00:55:36.820 +00:55:35.320 --> 00:55:36.820 I mean, that's the correct approach, -00:55:38.300 --> 00:55:38.480 +00:55:36.820 --> 00:55:38.480 I think. You should respect what people want -00:55:40.520 --> 00:55:40.840 +00:55:38.480 --> 00:55:40.840 to use. I don't care that people use VS Code -00:55:42.380 --> 00:55:42.540 +00:55:40.840 --> 00:55:42.540 or whatever. I'm not going to use that -00:55:43.520 --> 00:55:43.940 +00:55:42.540 --> 00:55:43.940 because it's too limiting. -00:55:45.280 --> 00:55:45.780 +00:55:43.940 --> 00:55:45.780 It's not really a workable environment. -00:55:48.120 --> 00:55:48.620 +00:55:46.400 --> 00:55:48.620 But I think it's OK to be enthusiastic. -00:55:51.180 --> 00:55:51.360 +00:55:48.740 --> 00:55:51.360 I think it's okay to talk about that type of -00:55:53.600 --> 00:55:54.100 +00:55:51.360 --> 00:55:54.100 enthusiasm and anything that can help -00:55:56.600 --> 00:55:56.880 +00:55:54.400 --> 00:55:56.880 increase the enthusiasm around Emacs can only -00:56:00.600 --> 00:56:01.100 +00:55:56.880 --> 00:56:01.100 help the longevity of Emacs. -00:56:04.080 --> 00:56:04.280 +00:56:02.520 --> 00:56:04.280 I agree and that's also 1 of the key -00:56:04.840 --> 00:56:05.340 +00:56:04.280 --> 00:56:05.340 objectives of EmacsConf. -00:56:07.280 --> 00:56:07.660 +00:56:05.460 --> 00:56:07.660 It's about bringing a lot of amazing people -00:56:08.600 --> 00:56:09.100 +00:56:07.660 --> 00:56:09.100 to come talk, like you, -00:56:10.920 --> 00:56:11.400 +00:56:09.140 --> 00:56:11.400 about stuff that is very dear to you. -00:56:13.740 --> 00:56:14.180 +00:56:11.400 --> 00:56:14.180 And it's very tangible how much you care, -00:56:15.540 --> 00:56:15.920 +00:56:14.180 --> 00:56:15.920 all of you, about what you're presenting. -00:56:18.340 --> 00:56:18.560 +00:56:15.920 --> 00:56:18.560 And it's amazing to put all of you people on -00:56:20.640 --> 00:56:20.800 +00:56:18.560 --> 00:56:20.800 just 48 hours talking about all of this and -00:56:22.720 --> 00:56:22.920 +00:56:20.800 --> 00:56:22.920 then creating so much content for people to -00:56:24.280 --> 00:56:24.480 +00:56:22.920 --> 00:56:24.480 watch. And I think it's really helping the -00:56:27.900 --> 00:56:28.140 +00:56:24.480 --> 00:56:28.140 enthusiasm to live on and to gather a little -00:56:29.160 --> 00:56:29.660 +00:56:28.140 --> 00:56:29.660 more snow as it comes down. -00:56:31.440 --> 00:56:31.720 +00:56:29.920 --> 00:56:31.720 Yeah, I watch you Max Conf every year. -00:56:32.960 --> 00:56:33.460 +00:56:31.720 --> 00:56:33.460 I think it's a lot of fun. -00:56:37.120 --> 00:56:37.360 +00:56:34.300 --> 00:56:37.360 Thank you. I'll take the compliment for -00:56:38.120 --> 00:56:38.620 +00:56:37.360 --> 00:56:38.620 everyone else in the team. -00:56:40.960 --> 00:56:41.120 +00:56:39.620 --> 00:56:41.120 We're going to go a little bit longer with -00:56:42.720 --> 00:56:42.800 +00:56:41.120 --> 00:56:42.800 the Q&A because we still have a lot of -00:56:44.380 --> 00:56:44.480 +00:56:42.800 --> 00:56:44.480 questions and if Stéphane is still willing to -00:56:47.860 --> 00:56:48.160 +00:56:44.480 --> 00:56:48.160 answer, I'm still willing to not go too bad -00:56:49.540 --> 00:56:49.740 +00:56:48.160 --> 00:56:49.740 to hear a lot more of it. -00:56:50.140 --> 00:56:50.580 +00:56:49.740 --> 00:56:50.580 Yeah, for me it's fine. -00:56:55.580 --> 00:56:55.760 +00:56:50.580 --> 00:56:55.760 I have time. Great. So I think I've done this -00:56:56.960 --> 00:56:57.460 +00:56:55.760 --> 00:56:57.460 question. So, all right. -00:56:59.820 --> 00:57:00.060 +00:56:58.080 --> 00:57:00.060 How are we going to make sure that a cool -00:57:01.760 --> 00:57:01.960 +00:57:00.060 --> 00:57:01.960 idea is going to pass it through for the next -00:57:03.600 --> 00:57:04.100 +00:57:01.960 --> 00:57:04.100 generation, let's say 20 years later, -00:57:05.540 --> 00:57:05.860 +00:57:04.120 --> 00:57:05.860 the generation still have the good knowledge -00:57:09.600 --> 00:57:09.940 +00:57:05.860 --> 00:57:09.940 we have today. Yeah, so I mean, -00:57:12.440 --> 00:57:12.840 +00:57:09.940 --> 00:57:12.840 if you think about what does EMAX need to -00:57:14.880 --> 00:57:15.180 +00:57:12.840 --> 00:57:15.180 have staying power, so in general, -00:57:16.840 --> 00:57:17.020 +00:57:15.180 --> 00:57:17.020 they say, you know, if if when you start a -00:57:18.900 --> 00:57:19.340 +00:57:17.020 --> 00:57:19.340 company, if you have a company for 1 year, -00:57:19.900 --> 00:57:20.220 +00:57:19.340 --> 00:57:20.220 then in all likelihood, -00:57:21.560 --> 00:57:21.820 +00:57:20.220 --> 00:57:21.820 you're going to have it for 2 years because, -00:57:23.320 --> 00:57:23.680 +00:57:21.820 --> 00:57:23.680 you know, it's just so if you've had Emacs -00:57:25.760 --> 00:57:25.840 +00:57:23.680 --> 00:57:25.840 for 4 years, I'm saying that we're going to -00:57:27.520 --> 00:57:27.980 +00:57:25.840 --> 00:57:27.980 have Emacs for the next 4 years as well. -00:57:30.200 --> 00:57:30.540 +00:57:27.980 --> 00:57:30.540 Just based on that, I'm not sure the logic -00:57:31.700 --> 00:57:32.200 +00:57:30.540 --> 00:57:32.200 holds up, but you know, -00:57:33.820 --> 00:57:34.320 +00:57:32.440 --> 00:57:34.320 how does Emacs stay relevant? -00:57:35.120 --> 00:57:35.500 +00:57:34.340 --> 00:57:35.500 I think is the question. -00:57:37.900 --> 00:57:38.400 +00:57:35.500 --> 00:57:38.400 Well, I think we need to continue working on -00:57:41.540 --> 00:57:41.840 +00:57:38.520 --> 00:57:41.840 all the types of exploratory work that people -00:57:43.360 --> 00:57:43.820 +00:57:41.840 --> 00:57:43.820 are doing in the community. -00:57:45.460 --> 00:57:45.720 +00:57:43.820 --> 00:57:45.720 I think there is fundamental stuff that needs -00:57:47.440 --> 00:57:47.720 +00:57:45.720 --> 00:57:47.720 to be done. I mean, if people want to work -00:57:49.000 --> 00:57:49.400 +00:57:47.720 --> 00:57:49.400 on, you know, web rendering and Emacs, -00:57:50.060 --> 00:57:50.240 +00:57:49.400 --> 00:57:50.240 maybe that's the next, -00:57:53.000 --> 00:57:53.240 +00:57:50.240 --> 00:57:53.240 you know, revolutionary step that we need -00:57:55.020 --> 00:57:55.320 +00:57:53.240 --> 00:57:55.320 that could, you know, really showcase what -00:57:57.380 --> 00:57:57.640 +00:57:55.320 --> 00:57:57.640 Emacs, you know, as, you know, -00:58:00.140 --> 00:58:00.620 +00:57:57.640 --> 00:58:00.620 an idea, even if not Emacs as a software -00:58:01.680 --> 00:58:01.960 +00:58:00.620 --> 00:58:01.960 could be and, you know, -00:58:04.600 --> 00:58:05.000 +00:58:01.960 --> 00:58:05.000 Because there is huge potential in the idea -00:58:06.600 --> 00:58:07.100 +00:58:05.000 --> 00:58:07.100 as such. So maybe that's something. -00:58:09.340 --> 00:58:09.600 +00:58:07.960 --> 00:58:09.600 But I mean, from the point of view of core -00:58:11.380 --> 00:58:11.840 +00:58:09.600 --> 00:58:11.840 development, I think we need to just continue -00:58:14.540 --> 00:58:15.040 +00:58:11.840 --> 00:58:15.040 working on the fundamental technologies. -00:58:17.760 --> 00:58:17.980 +00:58:15.260 --> 00:58:17.980 1 thing that I would like to eventually see -00:58:19.200 --> 00:58:19.700 +00:58:17.980 --> 00:58:19.700 is a better garbage collector. -00:58:22.020 --> 00:58:22.280 +00:58:19.900 --> 00:58:22.280 We've talked about that for a long time, -00:58:24.640 --> 00:58:25.140 +00:58:22.280 --> 00:58:25.140 but I mean, we need someone to do the job -00:58:27.720 --> 00:58:27.980 +00:58:25.380 --> 00:58:27.980 really. It's not very easy. -00:58:29.280 --> 00:58:29.780 +00:58:27.980 --> 00:58:29.780 It's very hard, actually. -00:58:33.780 --> 00:58:34.000 +00:58:31.100 --> 00:58:34.000 So just continues working on stuff like that, -00:58:34.680 --> 00:58:35.180 +00:58:34.000 --> 00:58:35.180 continue with the exploration, -00:58:39.860 --> 00:58:40.260 +00:58:35.800 --> 00:58:40.260 continue using and being excited about Emacs. -00:58:42.980 --> 00:58:43.180 +00:58:40.260 --> 00:58:43.180 I think that's the best guarantee that we -00:58:45.480 --> 00:58:45.800 +00:58:43.180 --> 00:58:45.800 have. Yeah, and perhaps to echo something -00:58:46.280 --> 00:58:46.780 +00:58:45.800 --> 00:58:46.780 that you said earlier, -00:58:47.580 --> 00:58:47.960 +00:58:46.840 --> 00:58:47.960 the tools that you're using, -00:58:49.540 --> 00:58:49.920 +00:58:47.960 --> 00:58:49.920 like the emails, they've been around forever, -00:58:50.600 --> 00:58:51.100 +00:58:49.920 --> 00:58:51.100 they will be around forever. -00:58:53.320 --> 00:58:53.480 +00:58:51.500 --> 00:58:53.480 This pragmatic stance on the tools that -00:58:56.120 --> 00:58:56.240 +00:58:53.480 --> 00:58:56.240 you're using, they might look stayed from the -00:58:58.380 --> 00:58:58.880 +00:58:56.240 --> 00:58:58.880 outside, but ultimately they are what permits -00:59:01.780 --> 00:59:02.280 +00:58:59.220 --> 00:59:02.280 a sense of longevity to any kind of project -00:59:05.200 --> 00:59:05.460 +00:59:03.300 --> 00:59:05.460 you embark upon. Also, -00:59:06.760 --> 00:59:07.260 +00:59:05.460 --> 00:59:07.260 in a sense, I think that the expectations -00:59:09.140 --> 00:59:09.320 +00:59:07.740 --> 00:59:09.320 might be changing in the sense that, -00:59:12.320 --> 00:59:12.820 +00:59:09.320 --> 00:59:12.820 you know, when I started using GNU Linux, -00:59:14.580 --> 00:59:15.060 +00:59:12.980 --> 00:59:15.060 you know what the first thing I did was, -00:59:16.560 --> 00:59:16.960 +00:59:15.060 --> 00:59:16.960 because I couldn't get Xorg to run. -00:59:18.840 --> 00:59:19.040 +00:59:16.960 --> 00:59:19.040 So the first thing you had to do was you had -00:59:20.440 --> 00:59:20.820 +00:59:19.040 --> 00:59:20.820 to compile your own Linux kernel. -00:59:22.800 --> 00:59:22.960 +00:59:20.820 --> 00:59:22.960 So you sit there and make manuconfig and -00:59:24.640 --> 00:59:24.880 +00:59:22.960 --> 00:59:24.880 you'll like, try to read it and you've never -00:59:25.840 --> 00:59:26.320 +00:59:24.880 --> 00:59:26.320 done anything like this before. -00:59:27.440 --> 00:59:27.800 +00:59:26.320 --> 00:59:27.800 You know, I was just a kid. -00:59:29.340 --> 00:59:29.540 +00:59:27.800 --> 00:59:29.540 I had never been at this kind of, -00:59:31.360 --> 00:59:31.560 +00:59:29.540 --> 00:59:31.560 you know, whatever. So I had to start with -00:59:33.740 --> 00:59:34.200 +00:59:31.560 --> 00:59:34.200 that. And then you have to write the X or -00:59:35.820 --> 00:59:36.100 +00:59:34.200 --> 00:59:36.100 configuration file. And I had the patience -00:59:36.600 --> 00:59:37.100 +00:59:36.100 --> 00:59:37.100 for that. But nowadays, -00:59:38.100 --> 00:59:38.600 +00:59:37.200 --> 00:59:38.600 people have different expectations. -00:59:39.960 --> 00:59:40.460 +00:59:38.740 --> 00:59:40.460 You just install something, -00:59:42.600 --> 00:59:42.720 +00:59:40.640 --> 00:59:42.720 and it works. And we need to keep that in -00:59:45.100 --> 00:59:45.280 +00:59:42.720 --> 00:59:45.280 mind as well. So that's why I keep pushing as -00:59:48.220 --> 00:59:48.720 +00:59:45.280 --> 00:59:48.720 1 of my big things. We need to build a more -00:59:50.920 --> 00:59:51.180 +00:59:48.740 --> 00:59:51.180 cohesive experience out of the box. -00:59:52.040 --> 00:59:52.540 +00:59:51.180 --> 00:59:52.540 Of course, that can be customizable. -00:59:55.080 --> 00:59:55.240 +00:59:52.940 --> 00:59:55.240 You shouldn't shoehorn anything in just for -00:59:58.260 --> 00:59:58.760 +00:59:55.240 --> 00:59:58.760 the sake of it. But you could get some things -01:00:00.420 --> 01:00:00.920 +00:59:58.940 --> 01:00:00.920 a little bit more for free. -01:00:02.860 --> 01:00:03.080 +01:00:01.220 --> 01:00:03.080 And maybe some of us that have our own -01:00:04.640 --> 01:00:04.780 +01:00:03.080 --> 01:00:04.780 configs and we've been doing this for you -01:00:07.220 --> 01:00:07.720 +01:00:04.780 --> 01:00:07.720 know, 2, 05:10, even 20 years, -01:00:09.480 --> 01:00:09.660 +01:00:08.480 --> 01:00:09.660 we could also see, you know, -01:00:11.400 --> 01:00:11.640 +01:00:09.660 --> 01:00:11.640 from the point of view of a new user that -01:00:13.440 --> 01:00:13.780 +01:00:11.640 --> 01:00:13.780 just installs VS Code and then they click, -01:00:15.420 --> 01:00:15.680 +01:00:13.780 --> 01:00:15.680 yes I use Python, yes I use that, -01:00:18.340 --> 01:00:18.840 +01:00:15.680 --> 01:00:18.840 and then it just automatically works. -01:00:20.280 --> 01:00:20.600 +01:00:19.200 --> 01:00:20.600 You know what I mean? I mean, -01:00:24.020 --> 01:00:24.140 +01:00:20.600 --> 01:00:24.140 then could we get closer to that perhaps a -01:00:25.560 --> 01:00:26.060 +01:00:24.140 --> 01:00:26.060 little bit? I think that would also help. -01:00:28.500 --> 01:00:28.700 +01:00:26.760 --> 01:00:28.700 Yeah, I think that's what we call the -01:00:30.280 --> 01:00:30.580 +01:00:28.700 --> 01:00:30.580 configuration wizard. And we were talking -01:00:32.440 --> 01:00:32.520 +01:00:30.580 --> 01:00:32.520 about this, I think, a couple of years ago at -01:00:34.000 --> 01:00:34.200 +01:00:32.520 --> 01:00:34.200 EmacsConf. I can't remember if it was with -01:00:35.380 --> 01:00:35.740 +01:00:34.200 --> 01:00:35.740 Adam in the chat. Adam, -01:00:37.760 --> 01:00:38.240 +01:00:35.740 --> 01:00:38.240 I mean Alpha Papa, or if it was with Bastien, -01:00:40.200 --> 01:00:40.440 +01:00:38.240 --> 01:00:40.440 but I remember the idea cropping off. -01:00:42.380 --> 01:00:42.520 +01:00:40.440 --> 01:00:42.520 Like, it's either you get a tutorial for -01:00:43.240 --> 01:00:43.520 +01:00:42.520 --> 01:00:43.520 Emacs, a proper tutorial, -01:00:45.140 --> 01:00:45.640 +01:00:43.520 --> 01:00:45.640 or you get a wizard, or you get both, -01:00:47.160 --> 01:00:47.520 +01:00:45.640 --> 01:00:47.520 and then all is right for the world. -01:00:48.920 --> 01:00:49.420 +01:00:47.520 --> 01:00:49.420 But definitely cool ideas being evoked. -01:00:52.120 --> 01:00:52.280 +01:00:50.280 --> 01:00:52.280 I'm gonna say I need to decree the time when -01:00:53.940 --> 01:00:54.440 +01:00:52.280 --> 01:00:54.440 we finish because for me it is 11.15 -01:00:59.060 --> 01:00:59.300 +01:00:55.080 --> 01:00:59.300 p.m. And I think my co-organizers are also -01:01:01.440 --> 01:01:01.680 +01:00:59.300 --> 01:01:01.680 willing to end the day and go rest because -01:01:03.040 --> 01:01:03.540 +01:01:01.680 --> 01:01:03.540 we've got another day to go tomorrow. -01:01:05.920 --> 01:01:06.280 +01:01:03.760 --> 01:01:06.280 So how about we take 3 minutes and 30 seconds -01:01:07.800 --> 01:01:08.300 +01:01:06.280 --> 01:01:08.300 to try to answer a little bit more succinctly -01:01:09.520 --> 01:01:09.780 +01:01:08.560 --> 01:01:09.780 the questions we've got left. -01:01:10.440 --> 01:01:10.940 +01:01:09.780 --> 01:01:10.940 How does that sound, Stefan? -01:01:15.040 --> 01:01:15.200 +01:01:11.320 --> 01:01:15.200 Sounds great. Cool, so I'll start reading the -01:01:16.640 --> 01:01:17.140 +01:01:15.200 --> 01:01:17.140 questions then that we've got left. -01:01:20.680 --> 01:01:20.840 +01:01:18.340 --> 01:01:20.840 So this 1 we've got. If you're willing to -01:01:22.200 --> 01:01:22.360 +01:01:20.840 --> 01:01:22.360 discuss it, what do you think about the -01:01:24.520 --> 01:01:24.720 +01:01:22.360 --> 01:01:24.720 recent controversy about use of CLLib in -01:01:29.920 --> 01:01:29.980 +01:01:24.720 --> 01:01:29.980 Emacs call code? Am I willing to discuss -01:01:35.460 --> 01:01:35.960 +01:01:29.980 --> 01:01:35.960 that? I have said my opinion on Emacs, -01:01:40.080 --> 01:01:40.580 +01:01:36.420 --> 01:01:40.580 Devel, I think. And I think I understand, -01:01:44.540 --> 01:01:44.820 +01:01:40.680 --> 01:01:44.820 I think, the viewpoints of both sides in that -01:01:46.320 --> 01:01:46.720 +01:01:44.820 --> 01:01:46.720 discussion. It is true that some things, -01:01:49.060 --> 01:01:49.280 +01:01:46.720 --> 01:01:49.280 I mean, we have to think about that. -01:01:49.960 --> 01:01:50.340 +01:01:49.280 --> 01:01:50.340 There is a real problem, -01:01:53.300 --> 01:01:53.520 +01:01:50.340 --> 01:01:53.520 I think, when we have 3 different APIs for -01:01:54.640 --> 01:01:55.140 +01:01:53.520 --> 01:01:55.140 doing the same thing in Emacs. -01:01:56.580 --> 01:01:57.080 +01:01:55.320 --> 01:01:57.080 And can we make that a little bit better? -01:01:58.780 --> 01:01:59.280 +01:01:57.280 --> 01:01:59.280 I mean, perhaps we could, -01:02:03.840 --> 01:02:04.040 +01:01:59.760 --> 01:02:04.040 right? So that's about as much as I'd like to -01:02:06.560 --> 01:02:06.940 +01:02:04.040 --> 01:02:06.940 say. Fair enough. I would have also accepted -01:02:09.060 --> 01:02:09.160 +01:02:06.940 --> 01:02:09.160 that CL loops are ugly to write and they -01:02:09.840 --> 01:02:10.320 +01:02:09.160 --> 01:02:10.320 don't feel very lispy. -01:02:11.540 --> 01:02:12.040 +01:02:10.320 --> 01:02:12.040 But I'll take your answer as well. -01:02:14.860 --> 01:02:15.360 +01:02:13.260 --> 01:02:15.360 Yeah, some people think that. -01:02:17.900 --> 01:02:18.400 +01:02:15.660 --> 01:02:18.400 I understand that position as well. -01:02:20.720 --> 01:02:21.220 +01:02:19.200 --> 01:02:21.220 Right. Okay, next question. -01:02:22.600 --> 01:02:23.100 +01:02:21.260 --> 01:02:23.100 When we find a bug in our Emacs, -01:02:24.840 --> 01:02:25.200 +01:02:23.100 --> 01:02:25.200 do we need to try to replicate it on our side -01:02:26.380 --> 01:02:26.780 +01:02:25.200 --> 01:02:26.780 version, on our SID version, -01:02:29.040 --> 01:02:29.340 +01:02:26.780 --> 01:02:29.340 sorry, then update all the usual list package -01:02:31.320 --> 01:02:31.480 +01:02:29.340 --> 01:02:31.480 we use, and if we succeed to replicate the -01:02:33.160 --> 01:02:33.340 +01:02:31.480 --> 01:02:33.340 bug in this version, only then go to -01:02:34.920 --> 01:02:35.420 +01:02:33.340 --> 01:02:35.420 development version 30 and do the same. -01:02:37.480 --> 01:02:37.580 +01:02:35.660 --> 01:02:37.580 Then only ask for assistance in reporting the -01:02:40.080 --> 01:02:40.260 +01:02:37.580 --> 01:02:40.260 bug we found. So I believe when they -01:02:43.220 --> 01:02:43.540 +01:02:40.260 --> 01:02:43.540 encounter a bug, are people supposed to go to -01:02:47.220 --> 01:02:47.500 +01:02:43.540 --> 01:02:47.500 master to pull main and just to make sure -01:02:48.420 --> 01:02:48.740 +01:02:47.500 --> 01:02:48.740 that they are on the latest version. -01:02:49.480 --> 01:02:49.980 +01:02:48.740 --> 01:02:49.980 Is this something that you require? -01:02:51.460 --> 01:02:51.860 +01:02:50.660 --> 01:02:51.860 We don't require that, -01:02:54.440 --> 01:02:54.940 +01:02:51.860 --> 01:02:54.940 but we do try to encourage you to reproduce -01:02:56.880 --> 01:02:57.380 +01:02:54.960 --> 01:02:57.380 it on master if we think that it matters. -01:03:00.420 --> 01:03:00.920 +01:02:57.720 --> 01:03:00.920 Yeah, so if you can, that's even better. -01:03:03.540 --> 01:03:03.940 +01:03:01.620 --> 01:03:03.940 But if the bug is there in Emacs 29, -01:03:05.500 --> 01:03:06.000 +01:03:03.940 --> 01:03:06.000 maybe we want to fix it in Emacs 29.2. -01:03:09.320 --> 01:03:09.820 +01:03:06.340 --> 01:03:09.820 So the latest point release is also fine. -01:03:12.540 --> 01:03:12.940 +01:03:10.400 --> 01:03:12.940 Bugs in Emacs 28 at this point, -01:03:14.280 --> 01:03:14.780 +01:03:12.940 --> 01:03:14.780 like the previous major version, -01:03:17.560 --> 01:03:17.720 +01:03:15.060 --> 01:03:17.720 we might ask you to try to reproduce it on -01:03:19.400 --> 01:03:19.600 +01:03:17.720 --> 01:03:19.600 Emacs 29 because we're not planning more -01:03:21.200 --> 01:03:21.600 +01:03:19.600 --> 01:03:21.600 releases of old major versions. -01:03:23.160 --> 01:03:23.660 +01:03:21.600 --> 01:03:23.660 So that's the fundamental reason for that. -01:03:25.320 --> 01:03:25.820 +01:03:24.480 --> 01:03:25.820 Great. Thank you for your answer. -01:03:27.180 --> 01:03:27.680 +01:03:25.900 --> 01:03:27.680 All right. Moving on to the next question. -01:03:28.780 --> 01:03:29.280 +01:03:27.840 --> 01:03:29.280 On branching off sub-threads, -01:03:31.720 --> 01:03:31.840 +01:03:29.680 --> 01:03:31.840 I note that they are less visible compared to -01:03:32.880 --> 01:03:33.380 +01:03:31.840 --> 01:03:33.380 starting a new thread in practice. -01:03:35.440 --> 01:03:35.680 +01:03:33.520 --> 01:03:35.680 I am wondering if it is just my impression or -01:03:36.900 --> 01:03:37.400 +01:03:35.680 --> 01:03:37.400 something devs also observe. -01:03:39.280 --> 01:03:39.780 +01:03:37.920 --> 01:03:39.780 Yeah, it's true. That's correct. -01:03:42.660 --> 01:03:42.840 +01:03:41.400 --> 01:03:42.840 I don't know what to do about it. -01:03:43.660 --> 01:03:44.160 +01:03:42.840 --> 01:03:44.160 If you want more visibility, -01:03:45.420 --> 01:03:45.920 +01:03:44.180 --> 01:03:45.920 I guess just start a new thread. -01:03:48.480 --> 01:03:48.960 +01:03:47.080 --> 01:03:48.960 I don't know. I can only agree, -01:03:50.380 --> 01:03:50.880 +01:03:48.960 --> 01:03:50.880 really. I concur. That's true. -01:03:53.760 --> 01:03:54.260 +01:03:51.720 --> 01:03:54.260 Okay. Next question. What about rewriting -01:03:56.600 --> 01:03:57.100 +01:03:54.340 --> 01:03:57.100 Emacs in Rust? Use Guile instead of Elisp. -01:03:59.380 --> 01:03:59.580 +01:03:57.260 --> 01:03:59.580 Multi-threaded Emacs. Make Emacs prettier and -01:04:01.260 --> 01:04:01.760 +01:03:59.580 --> 01:04:01.760 shiny. And of course, same defaults. -01:04:04.120 --> 01:04:04.440 +01:04:02.220 --> 01:04:04.440 Just kidding. We are spoiled children because -01:04:07.280 --> 01:04:07.780 +01:04:04.440 --> 01:04:07.780 you and Eli, Lars, and etc do an impressive -01:04:10.120 --> 01:04:10.620 +01:04:08.420 --> 01:04:10.620 work. I live in Emacs since 2001. -01:04:13.980 --> 01:04:14.220 +01:04:11.040 --> 01:04:14.220 Thanks. That was a good 1. -01:04:17.380 --> 01:04:17.880 +01:04:14.220 --> 01:04:17.880 Sane defaults. Okay, Well, -01:04:20.080 --> 01:04:20.580 +01:04:18.900 --> 01:04:20.580 thank you. Thanks for that comment. -01:04:23.300 --> 01:04:23.440 +01:04:20.580 --> 01:04:23.440 That made me chuckle. Next question by the -01:04:24.060 --> 01:04:24.520 +01:04:23.440 --> 01:04:24.520 same person, I assume. -01:04:26.120 --> 01:04:26.580 +01:04:24.520 --> 01:04:26.580 The only downside I see with copyright -01:04:28.400 --> 01:04:28.900 +01:04:26.580 --> 01:04:28.900 assignment is that 1 has to disclose their -01:04:31.120 --> 01:04:31.240 +01:04:28.900 --> 01:04:31.240 real identity. Would it be a possibility to -01:04:32.360 --> 01:04:32.860 +01:04:31.240 --> 01:04:32.860 assign a copyright under a nickname? -01:04:34.640 --> 01:04:34.840 +01:04:33.160 --> 01:04:34.840 Yeah, you don't have to say a real name. -01:04:36.760 --> 01:04:37.260 +01:04:34.840 --> 01:04:37.260 Just register some pseudonym. -01:04:39.080 --> 01:04:39.440 +01:04:37.360 --> 01:04:39.440 The FSF does need your real name, -01:04:40.920 --> 01:04:41.420 +01:04:39.440 --> 01:04:41.420 but that's kept private only. -01:04:45.660 --> 01:04:45.920 +01:04:41.500 --> 01:04:45.920 So feel free to reach out to assign at -01:04:47.860 --> 01:04:48.360 +01:04:45.920 --> 01:04:48.360 gnu.org and ask more about that. -01:04:51.180 --> 01:04:51.680 +01:04:49.860 --> 01:04:51.680 Right. All right, next question. -01:04:53.240 --> 01:04:53.400 +01:04:51.820 --> 01:04:53.400 Do you think it is possible to reach an -01:04:54.880 --> 01:04:55.240 +01:04:53.400 --> 01:04:55.240 agreement on sane defaults for better -01:04:56.720 --> 01:04:57.220 +01:04:55.240 --> 01:04:57.220 out-of-the-box experience? -01:04:59.540 --> 01:05:00.040 +01:04:57.800 --> 01:05:00.040 Yeah, so your sane is not my sane -01:05:01.260 --> 01:05:01.760 +01:05:00.060 --> 01:05:01.760 necessarily. So that's the fundamental -01:05:02.800 --> 01:05:02.960 +01:05:01.780 --> 01:05:02.960 problem that we're discussing here. -01:05:03.620 --> 01:05:03.960 +01:05:02.960 --> 01:05:03.960 I think it's a social, -01:05:04.740 --> 01:05:05.240 +01:05:03.960 --> 01:05:05.240 not a technical problem. -01:05:07.080 --> 01:05:07.580 +01:05:05.380 --> 01:05:07.580 We do change defaults sometimes, -01:05:09.620 --> 01:05:09.880 +01:05:07.640 --> 01:05:09.880 but I mean, there is also some staying power. -01:05:11.980 --> 01:05:12.260 +01:05:09.880 --> 01:05:12.260 So it's understandable that, -01:05:13.780 --> 01:05:13.940 +01:05:12.260 --> 01:05:13.940 you know, it's, we can't just change them -01:05:15.580 --> 01:05:15.920 +01:05:13.940 --> 01:05:15.920 willy nilly and then flip flop between, -01:05:18.080 --> 01:05:18.340 +01:05:15.920 --> 01:05:18.340 you know, 1 or the other kind of thing. -01:05:19.760 --> 01:05:20.060 +01:05:18.340 --> 01:05:20.060 So it does take a little bit more time. -01:05:22.360 --> 01:05:22.860 +01:05:20.060 --> 01:05:22.860 But yeah, sure, we can. -01:05:25.360 --> 01:05:25.860 +01:05:23.000 --> 01:05:25.860 We do change defaults at times. -01:05:29.540 --> 01:05:29.780 +01:05:26.380 --> 01:05:29.780 But it's perhaps more slower than what some -01:05:30.920 --> 01:05:31.420 +01:05:29.780 --> 01:05:31.420 people would prefer, for sure. -01:05:35.660 --> 01:05:36.000 +01:05:31.640 --> 01:05:36.000 So that's, yeah. Right, -01:05:37.120 --> 01:05:37.620 +01:05:36.000 --> 01:05:37.620 all right. We have 2 more questions. -01:05:39.520 --> 01:05:40.020 +01:05:37.920 --> 01:05:40.020 So will XWidgets have a future? -01:05:41.680 --> 01:05:42.180 +01:05:40.120 --> 01:05:42.180 Seeing the new bugs popping up in the latest -01:05:45.020 --> 01:05:45.280 +01:05:42.740 --> 01:05:45.280 XWidget dev. Not sure if there was the rest -01:05:46.220 --> 01:05:46.640 +01:05:45.280 --> 01:05:46.640 of the question, But on XWidgets, -01:05:47.440 --> 01:05:47.940 +01:05:46.640 --> 01:05:47.940 can you tell us a little more? -01:05:50.380 --> 01:05:50.580 +01:05:48.740 --> 01:05:50.580 I'm not really following now. -01:05:51.900 --> 01:05:52.400 +01:05:50.580 --> 01:05:52.400 I mean, I'm not seeing a lot of development -01:05:53.680 --> 01:05:54.180 +01:05:52.500 --> 01:05:54.180 on XWidgets currently. -01:05:56.820 --> 01:05:57.100 +01:05:54.480 --> 01:05:57.100 Some people have done work in fixing up a few -01:05:59.820 --> 01:06:00.320 +01:05:57.100 --> 01:06:00.320 bugs, but I think that feature really needs -01:06:01.800 --> 01:06:02.180 +01:06:00.380 --> 01:06:02.180 more love. So I think we need, -01:06:03.120 --> 01:06:03.600 +01:06:02.180 --> 01:06:03.600 you know, help is welcome, -01:06:05.740 --> 01:06:05.920 +01:06:03.600 --> 01:06:05.920 patch is welcome. That's what I can say about -01:06:11.040 --> 01:06:11.180 +01:06:05.920 --> 01:06:11.180 that. All right, and our final question of -01:06:13.040 --> 01:06:13.140 +01:06:11.180 --> 01:06:13.140 the day. Have you voted for Emacs as the -01:06:14.760 --> 01:06:15.140 +01:06:13.140 --> 01:06:15.140 software of the year on the Tuxes by Jupyter -01:06:17.320 --> 01:06:17.480 +01:06:15.140 --> 01:06:17.480 Broadcasting? I did because Emacs 29 is -01:06:19.020 --> 01:06:19.300 +01:06:17.480 --> 01:06:19.300 great. Thank you. Okay, -01:06:20.160 --> 01:06:20.580 +01:06:19.300 --> 01:06:20.580 well, good job voting. -01:06:22.760 --> 01:06:22.960 +01:06:20.580 --> 01:06:22.960 I didn't know, I don't know what Tuxy is on -01:06:25.520 --> 01:06:25.680 +01:06:22.960 --> 01:06:25.680 Jupyter broadcasting, but look it up and go -01:06:27.660 --> 01:06:28.040 +01:06:25.680 --> 01:06:28.040 vote. So I wish I could tell you, -01:06:29.220 --> 01:06:29.500 +01:06:28.040 --> 01:06:29.500 I assume with Tux, it might be something -01:06:32.680 --> 01:06:32.900 +01:06:29.500 --> 01:06:32.900 related to Linux, but that's as much as I can -01:06:34.340 --> 01:06:34.840 +01:06:32.900 --> 01:06:34.840 say. All right, well, Stefan, -01:06:36.420 --> 01:06:36.600 +01:06:34.960 --> 01:06:36.600 thank you so much for taking the time not -01:06:37.540 --> 01:06:38.000 +01:06:36.600 --> 01:06:38.000 only to do a wonderful presentation, -01:06:39.520 --> 01:06:39.640 +01:06:38.000 --> 01:06:39.640 but also for answering all the questions of -01:06:41.040 --> 01:06:41.240 +01:06:39.640 --> 01:06:41.240 the community. Do you have anything else to -01:06:44.900 --> 01:06:45.360 +01:06:41.240 --> 01:06:45.360 add? Just really thanks for all the questions -01:06:46.260 --> 01:06:46.760 +01:06:45.360 --> 01:06:46.760 and thanks for staying. -01:06:49.120 --> 01:06:49.600 +01:06:47.780 --> 01:06:49.600 It's been a long day, a long conference, -01:06:51.020 --> 01:06:51.180 +01:06:49.600 --> 01:06:51.180 so thanks for staying and listening to my -01:06:52.360 --> 01:06:52.540 +01:06:51.180 --> 01:06:52.540 talk as well. Really appreciate it. -01:06:54.000 --> 01:06:54.280 +01:06:52.540 --> 01:06:54.280 Appreciate the good work you guys are doing -01:06:54.960 --> 01:06:55.460 +01:06:54.280 --> 01:06:55.460 behind the scenes, organizing, -01:06:56.240 --> 01:06:56.740 +01:06:55.520 --> 01:06:56.740 setting everything up. -01:07:00.220 --> 01:07:00.420 +01:06:57.040 --> 01:07:00.420 And really humbled to be a part of this -01:07:01.560 --> 01:07:02.060 +01:07:00.420 --> 01:07:02.060 community. So thank you all. -01:07:05.740 --> 01:07:05.860 +01:07:02.680 --> 01:07:05.860 Well I can assure you that no 1 either in the -01:07:07.540 --> 01:07:08.040 +01:07:05.860 --> 01:07:08.040 organization team or the people watching now -01:07:10.760 --> 01:07:10.900 +01:07:08.040 --> 01:07:10.900 felt like it was tiring to stay and listen to -01:07:12.260 --> 01:07:12.760 +01:07:10.900 --> 01:07:12.760 your answers. So thank you so much Stefan. diff --git a/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt index 71d59b09..7a93ee4c 100644 --- a/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt +++ b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt @@ -1,1652 +1,1652 @@ WEBVTT -00:00:08.099 --> 00:00:08.480 +00:00:02.419 --> 00:00:08.480 2 seconds. All right. I think we are live. -00:00:09.780 --> 00:00:10.280 +00:00:08.480 --> 00:00:10.280 Yes. So, hi again, everyone. -00:00:13.259 --> 00:00:13.620 -I have the pleasure to welcome John Wheatley +00:00:10.580 --> 00:00:13.620 +I have the pleasure to welcome John Wiegley -00:00:14.940 --> 00:00:15.440 +00:00:13.620 --> 00:00:15.440 in person to this EmacsConf. -00:00:16.760 --> 00:00:17.260 +00:00:15.700 --> 00:00:17.260 Hi, John. Hello there. -00:00:18.592 --> 00:00:18.820 +00:00:17.680 --> 00:00:18.820 How are you doing, Leo? -00:00:20.940 --> 00:00:21.100 +00:00:18.820 --> 00:00:21.100 I am doing fantastic, and even more now that -00:00:23.040 --> 00:00:23.540 +00:00:21.100 --> 00:00:23.540 I am in a room with you because we've been, -00:00:25.279 --> 00:00:25.640 -we were reminiscing with Sasha. +00:00:24.279 --> 00:00:25.640 +we were reminiscing with Sacha. -00:00:30.660 --> 00:00:30.860 +00:00:25.640 --> 00:00:30.860 So you had been there in person in 2013 And -00:00:32.240 --> 00:00:32.680 +00:00:30.860 --> 00:00:32.680 since we started doing those online, -00:00:34.840 --> 00:00:35.020 +00:00:32.680 --> 00:00:35.020 Juan, since 2019, I think you've always been -00:00:37.960 --> 00:00:38.460 +00:00:35.020 --> 00:00:38.460 online, right? Usually it's a pre-recorded -00:00:40.239 --> 00:00:40.440 +00:00:38.520 --> 00:00:40.440 video. I think this will be the first 1 I do -00:00:42.340 --> 00:00:42.540 +00:00:40.440 --> 00:00:42.540 live in a long time. You're right. -00:00:44.059 --> 00:00:44.239 +00:00:42.540 --> 00:00:44.239 I'm saying we are online right now, -00:00:45.600 --> 00:00:45.920 +00:00:44.239 --> 00:00:45.920 but I just meant pre-recorded video. -00:00:48.240 --> 00:00:48.400 +00:00:45.920 --> 00:00:48.400 So it's good to have you almost in person or -00:00:50.739 --> 00:00:50.900 +00:00:48.400 --> 00:00:50.900 at least live and we are excited to hear -00:00:52.000 --> 00:00:52.360 +00:00:50.900 --> 00:00:52.360 about some of the Emacs news. -00:00:54.280 --> 00:00:54.780 +00:00:52.360 --> 00:00:54.780 So the floor is yours. -00:00:56.400 --> 00:00:56.900 +00:00:55.080 --> 00:00:56.900 All right, well welcome everybody. -00:00:59.900 --> 00:01:00.239 +00:00:57.260 --> 00:01:00.239 This is the yearly state of the Emacs union, -00:01:02.720 --> 00:01:02.860 +00:01:00.239 --> 00:01:02.860 I guess, about how Emacs development is -00:01:05.220 --> 00:01:05.379 +00:01:02.860 --> 00:01:05.379 going. Just to note, I am not currently a -00:01:07.540 --> 00:01:07.760 +00:01:05.379 --> 00:01:07.760 maintainer of Emacs. So what I do to get -00:01:09.520 --> 00:01:09.920 +00:01:07.760 --> 00:01:09.920 these notes is I call up my friend, -00:01:11.640 --> 00:01:12.040 +00:01:09.920 --> 00:01:12.040 Eli Zaretsky, 1 of the current Emacs -00:01:13.700 --> 00:01:13.820 +00:01:12.040 --> 00:01:13.820 maintainers, and he and I sit down for an -00:01:16.880 --> 00:01:17.160 +00:01:13.820 --> 00:01:17.160 hour, and he just gives me his dump of what's -00:01:19.000 --> 00:01:19.400 +00:01:17.160 --> 00:01:19.400 been going on. So I'm sort of just the -00:01:21.960 --> 00:01:22.200 +00:01:19.400 --> 00:01:22.200 messenger here. But thanks to Eli for these -00:01:24.000 --> 00:01:24.400 +00:01:22.200 --> 00:01:24.400 notes and all of the efforts that he -00:01:27.160 --> 00:01:27.400 +00:01:24.400 --> 00:01:27.400 contributes. So what he's been telling me is -00:01:29.760 --> 00:01:30.060 +00:01:27.400 --> 00:01:30.060 that this Emacs 29 release that we had -00:01:31.480 --> 00:01:31.720 +00:01:30.060 --> 00:01:31.720 recently looks to have been very, -00:01:33.240 --> 00:01:33.580 +00:01:31.720 --> 00:01:33.580 very successful, which is some good news, -00:01:34.920 --> 00:01:35.420 +00:01:33.580 --> 00:01:35.420 because there were a lot of new features, -00:01:37.020 --> 00:01:37.360 +00:01:35.660 --> 00:01:37.360 and some of those features were actually -00:01:39.280 --> 00:01:39.520 +00:01:37.360 --> 00:01:39.520 quite radical. So far, -00:01:40.280 --> 00:01:40.680 +00:01:39.520 --> 00:01:40.680 it's been quite a success, -00:01:41.940 --> 00:01:42.440 +00:01:40.680 --> 00:01:42.440 no serious problems with it, -00:01:43.580 --> 00:01:44.080 +00:01:42.440 --> 00:01:44.080 and we have Emacs 29.2 -00:01:46.240 --> 00:01:46.740 +00:01:45.140 --> 00:01:46.740 will be released very soon. -00:01:49.780 --> 00:01:50.020 +00:01:47.260 --> 00:01:50.020 They are thinking now about starting the -00:01:52.580 --> 00:01:53.080 +00:01:50.020 --> 00:01:53.080 Emacs 30 release cycle soon after 29.2 -00:01:55.400 --> 00:01:55.880 +00:01:53.520 --> 00:01:55.880 is released, where the release branch, -00:01:57.620 --> 00:01:58.120 +00:01:55.880 --> 00:01:58.120 which is called Emacs-30 usually, -00:02:01.080 --> 00:02:01.400 +00:01:59.060 --> 00:02:01.400 will be cut and then development will become -00:02:03.800 --> 00:02:03.960 +00:02:01.400 --> 00:02:03.960 frozen with only bug fixes going into that -00:02:06.940 --> 00:02:07.200 +00:02:03.960 --> 00:02:07.200 branch. That may take quite some time until -00:02:09.199 --> 00:02:09.639 +00:02:07.200 --> 00:02:09.639 it actually comes to fruition as a release, -00:02:11.500 --> 00:02:11.660 +00:02:09.639 --> 00:02:11.660 but at least it means that the release is -00:02:13.380 --> 00:02:13.860 +00:02:11.660 --> 00:02:13.860 going to start taking shape in that branch -00:02:17.420 --> 00:02:17.720 +00:02:13.860 --> 00:02:17.720 soon. So, for now, Emacs 30 looks like maybe -00:02:19.040 --> 00:02:19.540 +00:02:17.720 --> 00:02:19.540 it's going to be a little less interesting -00:02:22.860 --> 00:02:23.160 +00:02:19.600 --> 00:02:23.160 than Emacs 29 was, meaning not a huge number -00:02:24.860 --> 00:02:25.120 +00:02:23.160 --> 00:02:25.120 of changing features. But there are still -00:02:26.320 --> 00:02:26.820 +00:02:25.120 --> 00:02:26.820 some new things going in. -00:02:29.760 --> 00:02:29.960 +00:02:26.980 --> 00:02:29.960 So 1 of them is that Emacs 30 is going to -00:02:32.160 --> 00:02:32.300 +00:02:29.960 --> 00:02:32.300 have Android support. So you will be able to -00:02:34.400 --> 00:02:34.900 +00:02:32.300 --> 00:02:34.900 run Emacs 30 on your Android devices. -00:02:36.820 --> 00:02:37.120 +00:02:35.140 --> 00:02:37.120 So if you've ever wanted to have native Emacs -00:02:39.000 --> 00:02:39.500 +00:02:37.120 --> 00:02:39.500 on a tablet, which I know I've always wanted, -00:02:42.440 --> 00:02:42.940 +00:02:40.140 --> 00:02:42.940 that will become possible with Emacs 30. -00:02:45.060 --> 00:02:45.480 +00:02:43.140 --> 00:02:45.480 There's also going to be much better support -00:02:46.280 --> 00:02:46.780 +00:02:45.480 --> 00:02:46.780 for touchscreen devices, -00:02:49.760 --> 00:02:50.260 +00:02:47.440 --> 00:02:50.260 coincidentally, both laptops and tablets. -00:02:52.740 --> 00:02:53.240 +00:02:50.740 --> 00:02:53.240 So that'll enhance that Android support. -00:02:56.680 --> 00:02:57.180 +00:02:54.860 --> 00:02:57.180 There will be some recently gained support -00:03:01.480 --> 00:03:01.720 +00:02:57.240 --> 00:03:01.720 for LLDB in GUD.dl. So if you're on a Mac OS -00:03:05.440 --> 00:03:05.580 +00:03:01.720 --> 00:03:05.580 machine or a machine that uses just LLVM as -00:03:06.560 --> 00:03:07.060 +00:03:05.580 --> 00:03:07.060 part of the compilation process, -00:03:10.020 --> 00:03:10.180 +00:03:07.400 --> 00:03:10.180 then you probably are familiar with LLDB as -00:03:10.880 --> 00:03:11.380 +00:03:10.180 --> 00:03:11.380 the command line debugger. -00:03:14.440 --> 00:03:14.940 +00:03:11.720 --> 00:03:14.940 And that support for using LLDB through a GUD -00:03:16.920 --> 00:03:17.320 +00:03:15.040 --> 00:03:17.320 will become possible in Emacs 30. -00:03:18.900 --> 00:03:19.000 +00:03:17.320 --> 00:03:19.000 I'm looking forward to this actually quite a -00:03:22.120 --> 00:03:22.620 +00:03:19.000 --> 00:03:22.620 bit as well. C Perl mode is being deprecated, -00:03:25.640 --> 00:03:25.920 +00:03:23.200 --> 00:03:25.920 and all future work now is only being put -00:03:30.480 --> 00:03:30.660 +00:03:25.920 --> 00:03:30.660 towards C Perl mode. Another 1 is that there -00:03:32.840 --> 00:03:33.000 +00:03:30.660 --> 00:03:33.000 are going to be some new major modes based on -00:03:35.280 --> 00:03:35.780 +00:03:33.000 --> 00:03:35.780 TreeSitter. They will be for the languages -00:03:37.660 --> 00:03:38.160 +00:03:35.860 --> 00:03:38.160 Lua, Elixir, and HTML. -00:03:39.480 --> 00:03:39.980 +00:03:38.800 --> 00:03:39.980 And if you're not familiar, -00:03:42.260 --> 00:03:42.620 +00:03:40.160 --> 00:03:42.620 I think TreeSitter was introduced in Emacs -00:03:46.160 --> 00:03:46.660 +00:03:42.620 --> 00:03:46.660 29. It's a library that allows you to specify -00:03:49.760 --> 00:03:49.900 +00:03:47.460 --> 00:03:49.900 the grammar of a programming language as a -00:03:52.800 --> 00:03:53.300 +00:03:49.900 --> 00:03:53.300 BNF file, and I think using JavaScript, -00:03:56.160 --> 00:03:56.600 +00:03:53.540 --> 00:03:56.600 and then with that file as input to Emacs, -00:03:59.340 --> 00:03:59.840 +00:03:56.600 --> 00:03:59.840 it is then able to do syntax highlighting, -00:04:02.860 --> 00:04:03.080 +00:04:00.940 --> 00:04:03.080 syntax discovery, all of those things within -00:04:05.640 --> 00:04:06.140 +00:04:03.080 --> 00:04:06.140 Emacs without having to use elisp and regexps -00:04:07.800 --> 00:04:08.300 +00:04:06.460 --> 00:04:08.300 to discover the structure of the language. -00:04:10.240 --> 00:04:10.440 +00:04:08.300 --> 00:04:10.440 It defers the structure gathering to -00:04:13.080 --> 00:04:13.420 +00:04:10.440 --> 00:04:13.420 TreeSitter and then uses that information to -00:04:14.060 --> 00:04:14.560 +00:04:13.420 --> 00:04:14.560 navigate the language. -00:04:17.079 --> 00:04:17.300 +00:04:15.200 --> 00:04:17.300 So, As time goes on, you'll see more and more -00:04:19.160 --> 00:04:19.540 +00:04:17.300 --> 00:04:19.540 languages taking on TreeSetter support. -00:04:20.899 --> 00:04:21.160 +00:04:19.540 --> 00:04:21.160 So the next 3 coming up, -00:04:22.160 --> 00:04:22.660 +00:04:21.160 --> 00:04:22.660 Lua, Elixir, and HTML. -00:04:26.500 --> 00:04:26.680 +00:04:24.060 --> 00:04:26.680 And then the last feature for Emacs 30 is -00:04:29.640 --> 00:04:29.860 +00:04:26.680 --> 00:04:29.860 that the byte compiler will now detect and -00:04:32.420 --> 00:04:32.920 +00:04:29.860 --> 00:04:32.920 warn about many more questionable constructs. -00:04:34.800 --> 00:04:35.300 +00:04:33.340 --> 00:04:35.300 Things like empty macro bodies, -00:04:36.660 --> 00:04:37.160 +00:04:35.740 --> 00:04:37.160 missing lexical constructs, -00:04:39.720 --> 00:04:40.220 +00:04:37.580 --> 00:04:40.220 or say, condition case without any handlers. -00:04:43.040 --> 00:04:43.340 +00:04:40.580 --> 00:04:43.340 Just silly stuff that might litter the code, -00:04:45.040 --> 00:04:45.180 +00:04:43.340 --> 00:04:45.180 but now you'll get a warning about it from -00:04:46.760 --> 00:04:46.920 +00:04:45.180 --> 00:04:46.920 the byte compiler to help you clean up the -00:04:49.000 --> 00:04:49.160 +00:04:46.920 --> 00:04:49.160 code and get rid of those potential sites of -00:04:52.600 --> 00:04:52.740 +00:04:49.160 --> 00:04:52.740 error. So this is the main thing that will be -00:04:54.960 --> 00:04:55.160 +00:04:52.740 --> 00:04:55.160 worked on for Emacs 30 and what's looked like -00:04:55.900 --> 00:04:56.400 +00:04:55.160 --> 00:04:56.400 shaping up for the release. -00:04:58.680 --> 00:04:58.940 +00:04:56.680 --> 00:04:58.940 And also, he wanted me to announce that -00:05:00.840 --> 00:05:01.340 +00:04:58.940 --> 00:05:01.340 Stefan Kongas is now a new co-maintainer. -00:05:02.900 --> 00:05:03.260 +00:05:01.980 --> 00:05:03.260 And Stefan is, I believe, -00:05:05.340 --> 00:05:05.500 +00:05:03.260 --> 00:05:05.500 here with us in the conference and he'll be -00:05:07.440 --> 00:05:07.940 +00:05:05.500 --> 00:05:07.940 able, I hope, to help me answer any questions -00:05:09.960 --> 00:05:10.120 +00:05:08.080 --> 00:05:10.120 about future Emacs development because I'm -00:05:12.040 --> 00:05:12.240 +00:05:10.120 --> 00:05:12.240 not in the heat of it and don't have all -00:05:13.100 --> 00:05:13.600 +00:05:12.240 --> 00:05:13.600 those answers at the moment. -00:05:17.080 --> 00:05:17.180 +00:05:14.580 --> 00:05:17.180 So That is all there is as far as a -00:05:18.340 --> 00:05:18.840 +00:05:17.180 --> 00:05:18.840 development update for now. -00:05:21.480 --> 00:05:21.980 +00:05:19.340 --> 00:05:21.980 And I am available to take any questions. -00:05:26.000 --> 00:05:26.200 +00:05:24.860 --> 00:05:26.200 All right. Thank you so much, -00:05:29.180 --> 00:05:29.340 +00:05:26.200 --> 00:05:29.340 Sean, for being the messenger of all this -00:05:31.500 --> 00:05:31.820 +00:05:29.340 --> 00:05:31.820 good news. I mean, you did start by saying -00:05:32.980 --> 00:05:33.480 +00:05:31.820 --> 00:05:33.480 this would not be as exciting, -00:05:35.860 --> 00:05:36.280 +00:05:33.600 --> 00:05:36.280 perhaps, as prior releases of Emacs, -00:05:38.800 --> 00:05:38.980 +00:05:36.280 --> 00:05:38.980 but you then proceeded to say a lot of stuff -00:05:40.380 --> 00:05:40.760 +00:05:38.980 --> 00:05:40.760 that it felt very exciting to me. -00:05:43.120 --> 00:05:43.620 +00:05:40.760 --> 00:05:43.620 So good, good. Glad to hear that. -00:05:47.040 --> 00:05:47.180 +00:05:44.540 --> 00:05:47.180 Right. So we do have questions coming in -00:05:49.960 --> 00:05:50.380 +00:05:47.180 --> 00:05:50.380 already and again people the link is on IRC -00:05:51.980 --> 00:05:52.120 +00:05:50.380 --> 00:05:52.120 and also on the talks page if you want to -00:05:52.760 --> 00:05:53.260 +00:05:52.120 --> 00:05:53.260 start asking questions. -00:05:54.720 --> 00:05:54.840 +00:05:53.480 --> 00:05:54.840 So John what I'm going to do I'm going to -00:05:56.400 --> 00:05:56.580 +00:05:54.840 --> 00:05:56.580 read you the questions and then you can -00:05:57.800 --> 00:05:58.300 +00:05:56.580 --> 00:05:58.300 answer them. Is that okay with you? -00:06:01.320 --> 00:06:01.620 +00:05:58.320 --> 00:06:01.620 Absolutely. So starting with the first -00:06:04.120 --> 00:06:04.440 +00:06:01.620 --> 00:06:04.440 question which changes in recent Emacs -00:06:06.040 --> 00:06:06.540 +00:06:04.440 --> 00:06:06.540 releases are you enjoying using? -00:06:11.320 --> 00:06:11.820 +00:06:08.360 --> 00:06:11.820 I have really liked the visual line mode. -00:06:14.780 --> 00:06:15.060 +00:06:13.140 --> 00:06:15.060 I'm not sure how recent that is. -00:06:16.320 --> 00:06:16.820 +00:06:15.060 --> 00:06:16.820 Some of these features I only discovered -00:06:19.080 --> 00:06:19.580 +00:06:16.840 --> 00:06:19.580 quite late, the new display line number -00:06:21.020 --> 00:06:21.380 +00:06:19.700 --> 00:06:21.380 functionality, where it's much, -00:06:22.760 --> 00:06:23.040 +00:06:21.380 --> 00:06:23.040 much, much faster, and of course, -00:06:25.160 --> 00:06:25.320 +00:06:23.040 --> 00:06:25.320 native compilation. Native compilation has -00:06:27.040 --> 00:06:27.360 +00:06:25.320 --> 00:06:27.360 been quite brilliant for some of the larger -00:06:29.380 --> 00:06:29.480 +00:06:27.360 --> 00:06:29.480 packages that I use. I do a lot of stuff in -00:06:31.340 --> 00:06:31.820 +00:06:29.480 --> 00:06:31.820 Emacs. I use GNU's, I use E-Shell, -00:06:33.040 --> 00:06:33.540 +00:06:31.820 --> 00:06:33.540 I use Org Mode quite a lot. -00:06:35.740 --> 00:06:36.100 +00:06:33.580 --> 00:06:36.100 So native compilation has brought the user -00:06:39.760 --> 00:06:39.960 +00:06:36.100 --> 00:06:39.960 experience much closer to a modern app than -00:06:41.980 --> 00:06:42.180 +00:06:39.960 --> 00:06:42.180 some of the lagging and slowness that I might -00:06:43.080 --> 00:06:43.580 +00:06:42.180 --> 00:06:43.580 have experienced in the past. -00:06:46.680 --> 00:06:47.180 +00:06:44.340 --> 00:06:47.180 Definitely. Moving on to the next question. -00:06:49.020 --> 00:06:49.200 +00:06:47.260 --> 00:06:49.200 What do you think the future in the area of -00:06:50.540 --> 00:06:51.040 +00:06:49.200 --> 00:06:51.040 artificial intelligence from the developer -00:06:53.420 --> 00:06:53.580 +00:06:51.060 --> 00:06:53.580 point of view? Could you say that 1 more -00:06:54.860 --> 00:06:54.876 +00:06:53.580 --> 00:06:54.876 time? Your voice broke up a little bit. -00:06:55.009 --> 00:06:55.025 +00:06:54.876 --> 00:06:55.025 Oh, sorry. What do you think the future in -00:06:55.125 --> 00:06:55.141 +00:06:55.025 --> 00:06:55.141 the area of artificial intelligence from the -00:06:55.191 --> 00:06:55.208 +00:06:55.141 --> 00:06:55.208 developer point of view? -00:06:55.307 --> 00:06:55.324 +00:06:55.208 --> 00:06:55.324 Could you say that 1 more time? -00:06:55.423 --> 00:06:55.440 +00:06:55.324 --> 00:06:55.440 Your voice broke up a little bit. -00:06:57.880 --> 00:06:58.100 +00:06:55.440 --> 00:06:58.100 Oh, sorry. What do you think the future in -00:07:00.380 --> 00:07:00.580 +00:06:58.100 --> 00:07:00.580 the area of artificial intelligence from the -00:07:01.400 --> 00:07:01.560 +00:07:00.580 --> 00:07:01.560 developer point of view? -00:07:02.520 --> 00:07:02.860 +00:07:01.560 --> 00:07:02.860 It's also a shaky question, -00:07:04.000 --> 00:07:04.500 +00:07:02.860 --> 00:07:04.500 I think, but you get the point. -00:07:08.940 --> 00:07:09.220 +00:07:04.960 --> 00:07:09.220 I do use chat-gpt-shell inside of Emacs quite -00:07:10.760 --> 00:07:10.920 +00:07:09.220 --> 00:07:10.920 a bit, actually, when doing development in -00:07:12.180 --> 00:07:12.440 +00:07:10.920 --> 00:07:12.440 other languages. Just the other day, -00:07:14.700 --> 00:07:15.200 +00:07:12.440 --> 00:07:15.200 I was working on my Ledger accounting -00:07:17.900 --> 00:07:18.080 +00:07:15.220 --> 00:07:18.080 program, and I haven't done a lot of C++ in -00:07:20.920 --> 00:07:21.180 +00:07:18.080 --> 00:07:21.180 recent years. So I had forgotten how to -00:07:23.620 --> 00:07:23.760 +00:07:21.180 --> 00:07:23.760 exactly compare 2 strings only up to the -00:07:24.600 --> 00:07:25.020 +00:07:23.760 --> 00:07:25.020 length of the shortest string. -00:07:26.720 --> 00:07:26.940 +00:07:25.020 --> 00:07:26.940 I know I could have cranked that out just -00:07:28.380 --> 00:07:28.740 +00:07:26.940 --> 00:07:28.740 writing it C style, but I didn't remember -00:07:30.300 --> 00:07:30.800 +00:07:28.740 --> 00:07:30.800 what the current state of the art is for C++ -00:07:32.960 --> 00:07:33.460 +00:07:30.940 --> 00:07:33.460 and the STL. So I just asked chatGPT. -00:07:35.940 --> 00:07:36.140 +00:07:33.680 --> 00:07:36.140 I asked the exact question that I just said -00:07:38.040 --> 00:07:38.220 +00:07:36.140 --> 00:07:38.220 to you and sure enough it popped out the -00:07:39.640 --> 00:07:40.080 +00:07:38.220 --> 00:07:40.080 one-liner that was exactly what I needed. -00:07:41.740 --> 00:07:42.240 +00:07:40.080 --> 00:07:42.240 So I think in terms of developer assistance, -00:07:45.320 --> 00:07:45.820 +00:07:42.800 --> 00:07:45.820 not having to keep all of standard libraries -00:07:46.960 --> 00:07:47.460 +00:07:45.860 --> 00:07:47.460 or common idioms in memory. -00:07:48.960 --> 00:07:49.460 +00:07:47.520 --> 00:07:49.460 I don't know if other people are familiar -00:07:50.580 --> 00:07:51.080 +00:07:49.480 --> 00:07:51.080 with Rosetta Stone projects. -00:07:53.200 --> 00:07:53.680 +00:07:51.460 --> 00:07:53.680 They're projects where you have say a hundred -00:07:55.280 --> 00:07:55.780 +00:07:53.680 --> 00:07:55.780 different languages and there's a particular -00:07:58.320 --> 00:07:58.640 +00:07:55.860 --> 00:07:58.640 question, say, how do I read a file and copy -00:07:59.220 --> 00:07:59.720 +00:07:58.640 --> 00:07:59.720 it to another location? -00:08:01.680 --> 00:08:01.880 +00:07:59.820 --> 00:08:01.880 And then it has an instance of doing that -00:08:03.320 --> 00:08:03.820 +00:08:01.880 --> 00:08:03.820 activity for every 1 of those languages. -00:08:04.780 --> 00:08:05.140 +00:08:04.180 --> 00:08:05.140 That's a great database, -00:08:06.880 --> 00:08:07.160 +00:08:05.140 --> 00:08:07.160 and I've used them quite a bit in the past -00:08:08.760 --> 00:08:09.260 +00:08:07.160 --> 00:08:09.260 for remembering how to do certain things, -00:08:12.040 --> 00:08:12.540 +00:08:09.440 --> 00:08:12.540 say, converting a string to UTF-8. -00:08:15.480 --> 00:08:15.660 +00:08:13.280 --> 00:08:15.660 I think that AI does a great job of -00:08:17.280 --> 00:08:17.780 +00:08:15.660 --> 00:08:17.780 completely replacing the need for databases -00:08:19.740 --> 00:08:19.920 +00:08:17.900 --> 00:08:19.920 like that because you can just ask how do I -00:08:21.480 --> 00:08:21.980 +00:08:19.920 --> 00:08:21.980 copy a convert a string to UTF-8. -00:08:27.240 --> 00:08:27.440 +00:08:23.760 --> 00:08:27.440 Yeah exactly and you know especially with -00:08:30.440 --> 00:08:30.480 +00:08:27.440 --> 00:08:30.480 languages which are tried well tried you know -00:08:32.200 --> 00:08:32.360 +00:08:30.480 --> 00:08:32.360 it's very easy to get an answer that is -00:08:34.600 --> 00:08:34.940 +00:08:32.360 --> 00:08:34.940 correct. But sometimes what I find bothersome -00:08:37.020 --> 00:08:37.460 +00:08:34.940 --> 00:08:37.460 with this type of coding, -00:08:39.520 --> 00:08:39.840 +00:08:37.460 --> 00:08:39.840 I think it's AI-aided coding, -00:08:40.320 --> 00:08:40.820 +00:08:39.840 --> 00:08:40.820 but it's still coding, -00:08:42.799 --> 00:08:43.140 +00:08:41.120 --> 00:08:43.140 is that, especially with C languages, -00:08:44.140 --> 00:08:44.240 +00:08:43.140 --> 00:08:44.240 sometimes you're going to end up with -00:08:45.660 --> 00:08:45.860 +00:08:44.240 --> 00:08:45.860 undefined behaviors and stuff like this just -00:08:47.420 --> 00:08:47.900 +00:08:45.860 --> 00:08:47.900 because other people have been doing it, -00:08:50.740 --> 00:08:50.860 +00:08:47.900 --> 00:08:50.860 not because the algorithm or the model was -00:08:53.340 --> 00:08:53.680 +00:08:50.860 --> 00:08:53.680 trained with data that dates back to 10 years -00:08:59.640 --> 00:09:00.060 +00:08:53.680 --> 00:09:00.060 ago. At the time, C++ was a little different. -00:09:01.220 --> 00:09:01.400 +00:09:00.060 --> 00:09:01.400 Anyway, I'm not here to talk, -00:09:03.740 --> 00:09:03.960 +00:09:01.400 --> 00:09:03.960 you are here to talk. Moving on to the next -00:09:06.200 --> 00:09:06.560 +00:09:03.960 --> 00:09:06.560 question. People already get to hear my voice -00:09:09.140 --> 00:09:09.640 +00:09:06.560 --> 00:09:09.640 plenty, whereas yours are much sparser. -00:09:13.360 --> 00:09:13.580 +00:09:10.520 --> 00:09:13.580 All right. So, what is the future of Emacs on -00:09:15.800 --> 00:09:16.080 +00:09:13.580 --> 00:09:16.080 macOS? I understand that there are too few -00:09:16.920 --> 00:09:17.420 +00:09:16.080 --> 00:09:17.420 developers for the platform. -00:09:21.160 --> 00:09:21.600 +00:09:17.440 --> 00:09:21.600 Is that still true? That's a good question. -00:09:23.300 --> 00:09:23.620 +00:09:21.600 --> 00:09:23.620 I don't know what the current statistics are. -00:09:26.640 --> 00:09:27.040 +00:09:23.620 --> 00:09:27.040 I've been a user of Emacs on Mac OS for -00:09:29.540 --> 00:09:29.920 +00:09:27.040 --> 00:09:29.920 decades now. It feels like the, -00:09:32.980 --> 00:09:33.480 +00:09:30.140 --> 00:09:33.480 There's also that Mac port version of Emacs, -00:09:35.720 --> 00:09:35.920 +00:09:33.480 --> 00:09:35.920 which builds Emacs more directly using the -00:09:37.360 --> 00:09:37.860 +00:09:35.920 --> 00:09:37.860 GUI libraries on the platform. -00:09:40.080 --> 00:09:40.320 +00:09:38.300 --> 00:09:40.320 That continues to be updated with every -00:09:41.540 --> 00:09:42.040 +00:09:40.320 --> 00:09:42.040 single new release that comes out. -00:09:45.060 --> 00:09:45.220 +00:09:42.620 --> 00:09:45.220 So I'd say that the support may not be as -00:09:47.040 --> 00:09:47.540 +00:09:45.220 --> 00:09:47.540 great as it is on Linux and other platforms, -00:09:50.280 --> 00:09:50.500 +00:09:47.640 --> 00:09:50.500 but to this day I haven't suffered from being -00:09:54.720 --> 00:09:55.220 +00:09:50.500 --> 00:09:55.220 a Mac user. Great. The only thing I remember -00:10:00.060 --> 00:10:00.480 +00:09:55.240 --> 00:10:00.480 about Emacs on macOS was that emojis made it -00:10:03.420 --> 00:10:03.540 +00:10:00.480 --> 00:10:03.540 inside the GUI first before they did it -00:10:05.660 --> 00:10:05.820 +00:10:03.540 --> 00:10:05.820 anywhere else. That's the 1 anecdote that I -00:10:09.160 --> 00:10:09.520 +00:10:05.820 --> 00:10:09.520 have on MacOS. Right. And historically that -00:10:12.400 --> 00:10:12.720 +00:10:09.520 --> 00:10:12.720 feature was removed in order to prevent Mac -00:10:14.340 --> 00:10:14.840 +00:10:12.720 --> 00:10:14.840 from having features that Linux did not. -00:10:16.660 --> 00:10:16.860 +00:10:15.160 --> 00:10:16.860 I didn't want to go into that point. -00:10:18.220 --> 00:10:18.340 +00:10:16.860 --> 00:10:18.340 I just wanted to mention the beginning of the -00:10:19.600 --> 00:10:19.840 +00:10:18.340 --> 00:10:19.840 anecdote and people can find it out. -00:10:21.540 --> 00:10:22.040 +00:10:19.840 --> 00:10:22.040 But yes, that's also what it led to. -00:10:24.840 --> 00:10:25.340 +00:10:24.020 --> 00:10:25.340 Moving on to the next question. -00:10:27.620 --> 00:10:28.120 +00:10:25.640 --> 00:10:28.120 Why aren't you contributing to Emacs anymore? -00:10:28.860 --> 00:10:29.360 +00:10:28.140 --> 00:10:29.360 Lack of time, I guess? -00:10:31.340 --> 00:10:31.840 +00:10:30.240 --> 00:10:31.840 Lack of time, primarily. -00:10:33.340 --> 00:10:33.840 +00:10:32.300 --> 00:10:33.840 Work has been very consuming. -00:10:35.740 --> 00:10:36.020 +00:10:33.900 --> 00:10:36.020 There are a lot of other projects and things -00:10:38.640 --> 00:10:39.000 +00:10:36.020 --> 00:10:39.000 that I like doing. I still find Emacs Lisp -00:10:39.960 --> 00:10:40.460 +00:10:39.000 --> 00:10:40.460 very, very fun to write. -00:10:42.980 --> 00:10:43.260 +00:10:40.840 --> 00:10:43.260 Just the other day, I was hacking up some -00:10:45.260 --> 00:10:45.760 +00:10:43.260 --> 00:10:45.760 extension macros for myself for org mode. -00:10:48.720 --> 00:10:48.900 +00:10:45.920 --> 00:10:48.900 But to have the time needed to sit down and -00:10:51.140 --> 00:10:51.580 +00:10:48.900 --> 00:10:51.580 design a whole new mode and work on it. -00:10:53.480 --> 00:10:53.660 +00:10:51.580 --> 00:10:53.660 I've been spending a lot of my time now in -00:10:55.200 --> 00:10:55.580 +00:10:53.660 --> 00:10:55.580 functional languages, especially theorem -00:10:57.340 --> 00:10:57.840 +00:10:55.580 --> 00:10:57.840 provers. I just find that so intellectually -00:10:59.120 --> 00:10:59.620 +00:10:58.100 --> 00:10:59.620 satisfying and interesting. -00:11:01.460 --> 00:11:01.860 +00:11:00.400 --> 00:11:01.860 Plus it pays a lot better. -00:11:03.440 --> 00:11:03.680 +00:11:01.860 --> 00:11:03.680 Never had a paying job as an Emacs list -00:11:06.220 --> 00:11:06.420 +00:11:03.680 --> 00:11:06.420 developer. So when it comes to now just being -00:11:07.880 --> 00:11:08.380 +00:11:06.420 --> 00:11:08.380 a fun language or a hobby language, -00:11:10.480 --> 00:11:10.680 +00:11:08.420 --> 00:11:10.680 it is relegated to the time that I have free -00:11:13.180 --> 00:11:13.680 +00:11:10.680 --> 00:11:13.680 when it's available. Right. -00:11:15.280 --> 00:11:15.420 +00:11:13.700 --> 00:11:15.420 Well, the good thing is that it's kind of -00:11:15.920 --> 00:11:16.360 +00:11:15.420 --> 00:11:16.360 like riding a bicycle, -00:11:17.640 --> 00:11:17.980 +00:11:16.360 --> 00:11:17.980 you know, writing a major mode, -00:11:19.860 --> 00:11:20.160 +00:11:17.980 --> 00:11:20.160 it comes back relatively quickly and still -00:11:22.240 --> 00:11:22.600 +00:11:20.160 --> 00:11:22.600 enjoyable. You know, the other day, -00:11:25.040 --> 00:11:25.200 +00:11:22.600 --> 00:11:25.200 actually, I took notes on a mode that I -00:11:27.980 --> 00:11:28.100 +00:11:25.200 --> 00:11:28.100 wanted to write. There's an app I use on the -00:11:30.020 --> 00:11:30.060 +00:11:28.100 --> 00:11:30.060 Mac called drafts, and I really love it. -00:11:30.960 --> 00:11:31.460 +00:11:30.060 --> 00:11:31.460 I use it all the time. -00:11:34.300 --> 00:11:34.600 +00:11:31.720 --> 00:11:34.600 I wanted to mimic the interface of this app -00:11:37.120 --> 00:11:37.620 +00:11:34.600 --> 00:11:37.620 in Emacs. So I could use Emacs as my drafts -00:11:39.560 --> 00:11:40.060 +00:11:37.680 --> 00:11:40.060 application rather than this separate 1. -00:11:42.280 --> 00:11:42.720 +00:11:40.440 --> 00:11:42.720 So I noted down all the different user -00:11:44.440 --> 00:11:44.580 +00:11:42.720 --> 00:11:44.580 parameters and how it should function and -00:11:47.040 --> 00:11:47.240 +00:11:44.580 --> 00:11:47.240 everything to describe the app to myself as -00:11:50.080 --> 00:11:50.320 +00:11:47.240 --> 00:11:50.320 sort of notes to get me started on that work -00:11:51.960 --> 00:11:52.460 +00:11:50.320 --> 00:11:52.460 when I did have free time to work on it. -00:11:54.480 --> 00:11:54.760 +00:11:52.540 --> 00:11:54.760 Somebody out there on the internet just saw -00:11:56.680 --> 00:11:57.040 +00:11:54.760 --> 00:11:57.040 these notes, because I keep a lot of my stuff -00:11:59.180 --> 00:11:59.680 +00:11:57.040 --> 00:11:59.680 on GitHub. They fed it to chat GPT, -00:12:01.460 --> 00:12:01.960 +00:12:00.280 --> 00:12:01.960 going back to your AI question. -00:12:04.360 --> 00:12:04.540 +00:12:02.220 --> 00:12:04.540 And they actually sent back to me a mode that -00:12:06.140 --> 00:12:06.640 +00:12:04.540 --> 00:12:06.640 implemented everything that I had said, -00:12:07.240 --> 00:12:07.740 +00:12:06.820 --> 00:12:07.740 which was effectively, -00:12:10.460 --> 00:12:10.960 +00:12:08.200 --> 00:12:10.960 chat GPT, seeing that what I had described -00:12:14.380 --> 00:12:14.500 +00:12:10.960 --> 00:12:14.500 was clear enough for it to derive most of the -00:12:16.120 --> 00:12:16.560 +00:12:14.500 --> 00:12:16.560 code that I would have wanted to write. -00:12:19.000 --> 00:12:19.200 +00:12:16.560 --> 00:12:19.200 So maybe, maybe another thing that AI can do -00:12:20.380 --> 00:12:20.880 +00:12:19.200 --> 00:12:20.880 is it can increase the value, -00:12:22.900 --> 00:12:23.400 +00:12:21.340 --> 00:12:23.400 the efficiency of my free time. -00:12:26.320 --> 00:12:26.820 +00:12:24.360 --> 00:12:26.820 Exactly. I think that's a wonderful point. -00:12:29.380 --> 00:12:29.540 +00:12:27.120 --> 00:12:29.540 And phrasing it as efficiency of free time is -00:12:30.860 --> 00:12:31.360 +00:12:29.540 --> 00:12:31.360 great because you still have the expertise, -00:12:33.280 --> 00:12:33.420 +00:12:31.360 --> 00:12:33.420 obviously, that you're mobilizing into the -00:12:35.060 --> 00:12:35.560 +00:12:33.420 --> 00:12:35.560 design that you're formulating to charge DPT, -00:12:37.460 --> 00:12:37.680 +00:12:35.860 --> 00:12:37.680 but then this expertise is turned into -00:12:38.560 --> 00:12:39.060 +00:12:37.680 --> 00:12:39.060 something that actually works. -00:12:41.400 --> 00:12:41.780 +00:12:40.080 --> 00:12:41.780 Perhaps we're all going to become software -00:12:42.540 --> 00:12:42.980 +00:12:41.780 --> 00:12:42.980 architects at some point, -00:12:45.640 --> 00:12:45.800 +00:12:42.980 --> 00:12:45.800 and then the busy work of actually coding the -00:12:48.560 --> 00:12:48.760 +00:12:45.800 --> 00:12:48.760 library and the software will be relegated to -00:12:50.800 --> 00:12:51.000 +00:12:48.760 --> 00:12:51.000 AI. That's an interesting future where we -00:12:54.960 --> 00:12:55.240 +00:12:51.000 --> 00:12:55.240 still, however, need to acquire the skills to -00:12:56.320 --> 00:12:56.660 +00:12:55.240 --> 00:12:56.660 know what is code, I suppose. -00:12:58.380 --> 00:12:58.880 +00:12:56.660 --> 00:12:58.880 But that's an interesting future to think of. -00:13:01.580 --> 00:13:02.060 +00:13:00.940 --> 00:13:02.060 A fairly long question. -00:13:03.960 --> 00:13:04.280 +00:13:02.060 --> 00:13:04.280 So 1 of the tricky things about running Emacs -00:13:06.760 --> 00:13:06.900 +00:13:04.280 --> 00:13:06.900 on Android is do you use anything that -00:13:07.820 --> 00:13:08.320 +00:13:06.900 --> 00:13:08.320 requires extra packages? -00:13:11.400 --> 00:13:11.600 +00:13:08.420 --> 00:13:11.600 Example like PDF tools with new PDF or going -00:13:13.640 --> 00:13:13.820 +00:13:11.600 --> 00:13:13.820 with a database, playing music or video with -00:13:15.340 --> 00:13:15.840 +00:13:13.820 --> 00:13:15.840 MPD or MPV on Bonga, LFeed. -00:13:17.400 --> 00:13:17.900 +00:13:16.320 --> 00:13:17.900 Do you run Emacs Termex, -00:13:19.740 --> 00:13:20.200 +00:13:18.040 --> 00:13:20.200 Emacs APK, Emacs in virtual machine? -00:13:22.260 --> 00:13:22.420 +00:13:20.200 --> 00:13:22.420 This is also the case on Emacs for Windows to -00:13:23.480 --> 00:13:23.980 +00:13:22.420 --> 00:13:23.980 a lesser degree. So summarizing, -00:13:27.080 --> 00:13:27.240 +00:13:24.280 --> 00:13:27.240 how do you make Emacs work on Android if you -00:13:29.700 --> 00:13:30.040 +00:13:27.240 --> 00:13:30.040 do not have the synergy of stuff that you -00:13:32.360 --> 00:13:32.560 +00:13:30.040 --> 00:13:32.560 usually find on Linux systems like MPV and -00:13:33.920 --> 00:13:34.420 +00:13:32.560 --> 00:13:34.420 all the fancy applications like this? -00:13:38.220 --> 00:13:38.380 +00:13:35.340 --> 00:13:38.380 It's a good question. Since I'm not an -00:13:40.140 --> 00:13:40.460 +00:13:38.380 --> 00:13:40.460 Android user and I've never tried running -00:13:41.520 --> 00:13:42.020 +00:13:40.460 --> 00:13:42.020 Emacs on Android platforms, -00:13:44.760 --> 00:13:44.920 +00:13:42.100 --> 00:13:44.920 I'm not sure what's available out there to -00:13:46.080 --> 00:13:46.440 +00:13:44.920 --> 00:13:46.440 plug Emacs into. I mean, -00:13:48.040 --> 00:13:48.160 +00:13:46.440 --> 00:13:48.160 effectively, that question comes down to -00:13:49.920 --> 00:13:50.420 +00:13:48.160 --> 00:13:50.420 external dependencies and system support. -00:13:53.120 --> 00:13:53.320 +00:13:50.940 --> 00:13:53.320 That would be a great question for Stefan or -00:13:55.240 --> 00:13:55.740 +00:13:53.320 --> 00:13:55.740 somebody who has tried using Emacs, -00:13:58.100 --> 00:13:58.600 +00:13:56.200 --> 00:13:58.600 the development version of Emacs on Android. -00:14:03.480 --> 00:14:03.980 +00:14:00.660 --> 00:14:03.980 Great. We'll put a pin in this for Stéphane -00:14:07.360 --> 00:14:07.580 +00:14:04.540 --> 00:14:07.580 afterwards. Great, so moving on to the next -00:14:09.720 --> 00:14:09.860 +00:14:07.580 --> 00:14:09.860 question. Will Org Tech someday become the -00:14:10.860 --> 00:14:11.320 +00:14:09.860 --> 00:14:11.320 default tech mode in Emacs? -00:14:14.380 --> 00:14:14.880 +00:14:11.320 --> 00:14:14.880 And if so, when? Will Org what become? -00:14:17.480 --> 00:14:17.980 +00:14:15.240 --> 00:14:17.980 Org Tech, you know, the LaTeX mode. -00:14:24.640 --> 00:14:24.840 +00:14:19.120 --> 00:14:24.840 I do not know. It's been a while since I've -00:14:26.420 --> 00:14:26.880 +00:14:24.840 --> 00:14:26.880 done LaTeX. It must have been like 4 years, -00:14:30.040 --> 00:14:30.280 +00:14:26.880 --> 00:14:30.280 but it was a pretty, the major mode for -00:14:32.280 --> 00:14:32.560 +00:14:30.280 --> 00:14:32.560 editing documents, like the state of the art -00:14:34.340 --> 00:14:34.840 +00:14:32.560 --> 00:14:34.840 for editing latex documents in Emacs. -00:14:35.820 --> 00:14:36.320 +00:14:34.940 --> 00:14:36.320 And apparently it's not default. -00:14:38.200 --> 00:14:38.360 +00:14:36.340 --> 00:14:38.360 I assume there's latex mode or something that -00:14:41.080 --> 00:14:41.580 +00:14:38.360 --> 00:14:41.580 is doing it. So were you saying octech, -00:14:44.860 --> 00:14:45.020 +00:14:41.760 --> 00:14:45.020 like A-U-C tech? Oh, did I not pronounce the -00:14:47.860 --> 00:14:48.140 +00:14:45.020 --> 00:14:48.140 C? Octech, yes. I thought you said org tech. -00:14:49.120 --> 00:14:49.620 +00:14:48.140 --> 00:14:49.620 I wasn't familiar with that. -00:14:52.040 --> 00:14:52.540 +00:14:50.280 --> 00:14:52.540 Octech is the only 1 I've ever used. -00:14:54.860 --> 00:14:55.360 +00:14:52.640 --> 00:14:55.360 I know there is a built-in LaTeX mode, -00:14:56.880 --> 00:14:57.240 +00:14:55.580 --> 00:14:57.240 but I've never used it. -00:14:58.780 --> 00:14:59.140 +00:14:57.240 --> 00:14:59.140 I always just download whatever the latest -00:15:00.660 --> 00:15:01.160 +00:14:59.140 --> 00:15:01.160 version of Org Tech is and use that. -00:15:03.440 --> 00:15:03.840 +00:15:01.280 --> 00:15:03.840 I don't know why it's not a standard package. -00:15:06.860 --> 00:15:07.360 +00:15:03.840 --> 00:15:07.360 Becoming a standard package has its own costs -00:15:09.400 --> 00:15:09.860 +00:15:07.360 --> 00:15:09.860 for the development cycle because it slows -00:15:11.240 --> 00:15:11.740 +00:15:09.860 --> 00:15:11.740 down release cycle quite a bit. -00:15:14.480 --> 00:15:14.680 +00:15:12.120 --> 00:15:14.680 It's now you have to create PRs that are -00:15:16.740 --> 00:15:17.240 +00:15:14.680 --> 00:15:17.240 reviewed by the Emacs Devel mailing list. -00:15:18.900 --> 00:15:19.340 +00:15:17.620 --> 00:15:19.340 It is a little more inertia. -00:15:21.180 --> 00:15:21.680 +00:15:19.340 --> 00:15:21.680 Of course, it gets you more distribution -00:15:23.560 --> 00:15:24.020 +00:15:21.940 --> 00:15:24.020 because it's a default package now, -00:15:25.600 --> 00:15:26.100 +00:15:24.020 --> 00:15:26.100 and everybody can be using that. -00:15:28.100 --> 00:15:28.600 +00:15:26.140 --> 00:15:28.600 But it's not something every developer -00:15:30.960 --> 00:15:31.400 +00:15:28.660 --> 00:15:31.400 decides to do. It took a few years, -00:15:34.120 --> 00:15:34.620 +00:15:31.400 --> 00:15:34.620 in fact, to get usePackage into Emacs core. -00:15:36.760 --> 00:15:37.200 +00:15:34.660 --> 00:15:37.200 And that only happened after it was so stable -00:15:38.860 --> 00:15:39.360 +00:15:37.200 --> 00:15:39.360 that it really wasn't receiving many changes -00:15:44.540 --> 00:15:44.760 +00:15:39.360 --> 00:15:44.760 anymore. Yeah, yeah it's it's the thing when -00:15:46.560 --> 00:15:46.720 +00:15:44.760 --> 00:15:46.720 you move into core you lose a lot of your -00:15:49.120 --> 00:15:49.280 +00:15:46.720 --> 00:15:49.280 agility in terms of how you're writing the -00:15:50.440 --> 00:15:50.940 +00:15:49.280 --> 00:15:50.940 code or how you expand code. -00:15:54.000 --> 00:15:54.220 +00:15:51.300 --> 00:15:54.220 That's why you have this vibrant community on -00:15:57.180 --> 00:15:57.680 +00:15:54.220 --> 00:15:57.680 Melpa compared to core but you know it -00:15:59.380 --> 00:15:59.480 +00:15:57.740 --> 00:15:59.480 doesn't necessarily ought to be this way it -00:16:02.160 --> 00:16:02.320 +00:15:59.480 --> 00:16:02.320 could be a little different you know And it -00:16:04.080 --> 00:16:04.580 +00:16:02.320 --> 00:16:04.580 feels like there's this repetition between -00:16:06.500 --> 00:16:06.820 +00:16:04.760 --> 00:16:06.820 repartition, sorry, between people developing -00:16:08.220 --> 00:16:08.600 +00:16:06.820 --> 00:16:08.600 for the core of Emacs and people developing -00:16:10.600 --> 00:16:10.760 +00:16:08.600 --> 00:16:10.760 on Melpa, but at the end of the day those 2 -00:16:12.520 --> 00:16:13.020 +00:16:10.760 --> 00:16:13.020 groups are constantly talking to 1 another -00:16:14.860 --> 00:16:15.240 +00:16:13.180 --> 00:16:15.240 and taking cues from 1 another as well. -00:16:17.040 --> 00:16:17.540 +00:16:15.240 --> 00:16:17.540 So that's great. And there's of course... -00:16:21.380 --> 00:16:21.880 +00:16:18.820 --> 00:16:21.880 May I jump in about this particular question -00:16:24.840 --> 00:16:25.080 +00:16:21.900 --> 00:16:25.080 because I think I mean You know, -00:16:27.100 --> 00:16:27.540 +00:16:25.080 --> 00:16:27.540 Org Mode doesn't really have any problems -00:16:28.980 --> 00:16:29.380 +00:16:27.540 --> 00:16:29.380 with releases Correct. -00:16:32.320 --> 00:16:32.820 +00:16:29.380 --> 00:16:32.820 Just because it's distributed with Emacs so -00:16:34.900 --> 00:16:35.020 +00:16:32.860 --> 00:16:35.020 there is a difference between being in the -00:16:37.460 --> 00:16:37.960 +00:16:35.020 --> 00:16:37.960 core proper and being distributed with Emacs. -00:16:39.640 --> 00:16:40.080 +00:16:38.520 --> 00:16:40.080 And for something like use packages, -00:16:41.780 --> 00:16:42.280 +00:16:40.080 --> 00:16:42.280 it's really necessary to be in the core. -00:16:44.340 --> 00:16:44.840 +00:16:42.600 --> 00:16:44.840 But for something like major mode, -00:16:48.620 --> 00:16:48.740 +00:16:45.060 --> 00:16:48.740 it's a bit easier. That's a very very good -00:16:50.200 --> 00:16:50.400 +00:16:48.740 --> 00:16:50.400 point. Yeah, I'd forgotten about that -00:16:52.740 --> 00:16:53.000 +00:16:50.400 --> 00:16:53.000 distinction. Org mode does advance pretty -00:16:55.760 --> 00:16:55.900 +00:16:53.000 --> 00:16:55.900 rapidly and then it makes releases into the -00:16:59.320 --> 00:16:59.640 +00:16:55.900 --> 00:16:59.640 core distribution. Gianni, -00:17:01.000 --> 00:17:01.480 +00:16:59.640 --> 00:17:01.480 I believe you also wanted to say something -00:17:03.680 --> 00:17:03.840 +00:17:01.480 --> 00:17:03.840 before someone started jumped in with a -00:17:08.460 --> 00:17:08.700 +00:17:03.840 --> 00:17:08.700 question do you happen to remember okay -00:17:11.520 --> 00:17:12.020 +00:17:08.700 --> 00:17:12.020 that's fine I lost her to lost to their time -00:17:14.060 --> 00:17:14.560 +00:17:12.560 --> 00:17:14.560 I'll be moving on to the next question then -00:17:17.280 --> 00:17:17.460 +00:17:15.700 --> 00:17:17.460 and by the way feel free to interrupt us you -00:17:19.440 --> 00:17:19.619 +00:17:17.460 --> 00:17:19.619 know The whole point of this discussion is -00:17:20.740 --> 00:17:21.140 +00:17:19.619 --> 00:17:21.140 for you to ask questions to John Wheatley. -00:17:23.240 --> 00:17:23.520 +00:17:21.140 --> 00:17:23.520 So whether it be via the other pad or via -00:17:25.680 --> 00:17:26.180 +00:17:23.520 --> 00:17:26.180 BBB, choose your weapon. -00:17:28.700 --> 00:17:28.820 +00:17:27.260 --> 00:17:28.820 All right, moving on to the next question in -00:17:30.220 --> 00:17:30.520 +00:17:28.820 --> 00:17:30.520 the meantime. And we have about 7 minutes -00:17:32.600 --> 00:17:32.760 +00:17:30.520 --> 00:17:32.760 left of Q&A and then we'll be moving on to -00:17:35.580 --> 00:17:35.780 +00:17:32.760 --> 00:17:35.780 Stéphane. So, do you use other IDEs for -00:17:37.840 --> 00:17:38.040 +00:17:35.780 --> 00:17:38.040 theorem proving work, notably VS Code for -00:17:42.180 --> 00:17:42.340 +00:17:38.040 --> 00:17:42.340 Lean? Which languages and provers can or do -00:17:45.420 --> 00:17:45.920 +00:17:42.340 --> 00:17:45.920 you use Emacs for? I've only used Emacs. -00:17:49.340 --> 00:17:49.840 +00:17:46.120 --> 00:17:49.840 I've used Emacs for working with ACL 2, -00:17:53.300 --> 00:17:53.480 +00:17:49.960 --> 00:17:53.480 Coq, Agda, and Lean, and I really love -00:17:55.560 --> 00:17:55.680 +00:17:53.480 --> 00:17:55.680 Proof-General. Coq is my favorite language to -00:17:57.380 --> 00:17:57.740 +00:17:55.680 --> 00:17:57.740 be working in. Agda has really great support -00:17:59.120 --> 00:17:59.540 +00:17:57.740 --> 00:17:59.540 as well, has a very nice Emacs mode. -00:18:02.500 --> 00:18:02.920 +00:17:59.540 --> 00:18:02.920 I'm only just now starting to get into Lean -00:18:04.640 --> 00:18:05.140 +00:18:02.920 --> 00:18:05.140 4. So I have everything installed, -00:18:07.080 --> 00:18:07.240 +00:18:05.280 --> 00:18:07.240 but I haven't really started coding in -00:18:08.680 --> 00:18:08.800 +00:18:07.240 --> 00:18:08.800 earnest. I'm still reading a lot of the -00:18:10.760 --> 00:18:10.920 +00:18:08.800 --> 00:18:10.920 tutorials and learning a bit about the -00:18:13.260 --> 00:18:13.440 +00:18:10.920 --> 00:18:13.440 language. There was a while there where I -00:18:17.360 --> 00:18:17.540 +00:18:13.440 --> 00:18:17.540 used a IDE for ACL 2 that was outside of -00:18:19.760 --> 00:18:19.920 +00:18:17.540 --> 00:18:19.920 Emacs, only because it was the same IDE all -00:18:21.820 --> 00:18:22.040 +00:18:19.920 --> 00:18:22.040 my co-workers were using and it was easier to -00:18:23.740 --> 00:18:24.240 +00:18:22.040 --> 00:18:24.240 share tips and tricks with them. -00:18:27.780 --> 00:18:28.240 +00:18:24.520 --> 00:18:28.240 But yeah, no, I found Emacs to be a great -00:18:29.360 --> 00:18:29.860 +00:18:28.240 --> 00:18:29.860 home for doing theorem proving. -00:18:36.160 --> 00:18:36.580 +00:18:32.120 --> 00:18:36.580 Right. Next question. Can we see that AI -00:18:40.520 --> 00:18:40.760 +00:18:36.580 --> 00:18:40.760 generated draft? You know what you mentioned -00:18:43.200 --> 00:18:43.420 +00:18:40.760 --> 00:18:43.420 before about the draft that you then fed into -00:18:45.160 --> 00:18:45.480 +00:18:43.420 --> 00:18:45.480 ChargPT? Do you happen to have this draft -00:18:50.940 --> 00:18:51.440 +00:18:45.480 --> 00:18:51.440 anywhere? Let me see if it's still on GitHub. -00:18:53.800 --> 00:18:54.300 +00:18:51.760 --> 00:18:54.300 Just take me 1 second to take a look here. -00:18:59.440 --> 00:18:59.820 +00:18:55.260 --> 00:18:59.820 Take your time. The problem is I don't quite -00:19:01.320 --> 00:19:01.820 +00:18:59.820 --> 00:19:01.820 remember where I made the note. -00:19:06.760 --> 00:19:07.260 +00:19:04.700 --> 00:19:07.260 But no, I don't see it on GitHub, -00:19:09.340 --> 00:19:09.840 +00:19:07.340 --> 00:19:09.840 so I don't have it readily at hand. -00:19:12.740 --> 00:19:13.240 +00:19:10.580 --> 00:19:13.240 Well, that's fine. We'll be able to... -00:19:14.760 --> 00:19:15.060 +00:19:13.520 --> 00:19:15.060 Well, if you happen to find it, -00:19:17.120 --> 00:19:17.280 +00:19:15.060 --> 00:19:17.280 we'll make sure to add it on the pad and then -00:19:20.740 --> 00:19:20.940 +00:19:17.280 --> 00:19:20.940 on the talks page. And I think we would all -00:19:22.120 --> 00:19:22.440 +00:19:20.940 --> 00:19:22.440 be interested to see what this design -00:19:26.680 --> 00:19:27.160 +00:19:22.440 --> 00:19:27.160 document that actually made something work -00:19:28.660 --> 00:19:28.980 +00:19:27.160 --> 00:19:28.980 afterwards in JudgeDPT with Elisp. -00:19:30.440 --> 00:19:30.720 +00:19:28.980 --> 00:19:30.720 I'm very interested to see what it would do -00:19:32.480 --> 00:19:32.720 +00:19:30.720 --> 00:19:32.720 because I tend to be very interested about -00:19:34.640 --> 00:19:34.780 +00:19:32.720 --> 00:19:34.780 this type of stuff I had generated but I -00:19:36.360 --> 00:19:36.860 +00:19:34.780 --> 00:19:36.860 never thought about doing it with Elisp -00:19:38.720 --> 00:19:39.000 +00:19:37.040 --> 00:19:39.000 because somehow it feels like 2 different -00:19:40.520 --> 00:19:41.020 +00:19:39.000 --> 00:19:41.020 worlds, like Elisp is kind of from the past, -00:19:43.540 --> 00:19:44.040 +00:19:41.260 --> 00:19:44.040 don't going me wrong, I love it and I use it -00:19:46.720 --> 00:19:46.920 +00:19:44.140 --> 00:19:46.920 every day But it's 2 different parts of my -00:19:48.480 --> 00:19:48.820 +00:19:46.920 --> 00:19:48.820 brain that I didn't think about linking. -00:19:50.600 --> 00:19:51.100 +00:19:48.820 --> 00:19:51.100 So I'd be very excited to see this as well. -00:19:54.160 --> 00:19:54.640 +00:19:53.040 --> 00:19:54.640 Moving on to the next question. -00:19:56.480 --> 00:19:56.980 +00:19:54.640 --> 00:19:56.980 Oh, go on, please. I did find it. -00:20:00.600 --> 00:20:01.080 +00:19:57.260 --> 00:20:01.080 I'm gonna have to give it to you as a link -00:20:03.120 --> 00:20:03.380 +00:20:01.080 --> 00:20:03.380 here. Sure, you can do it on the blue button -00:20:05.400 --> 00:20:05.900 +00:20:03.380 --> 00:20:05.900 and I'll put it on the pad. -00:20:12.040 --> 00:20:12.540 +00:20:10.160 --> 00:20:12.540 I put it into the public chat for Bibi. -00:20:15.520 --> 00:20:15.920 +00:20:12.960 --> 00:20:15.920 Yes. So if anyone is interested, -00:20:18.120 --> 00:20:18.280 +00:20:15.920 --> 00:20:18.280 I'm putting it right in the answer to the -00:20:19.740 --> 00:20:20.200 +00:20:18.280 --> 00:20:20.200 question right here on my screen. -00:20:21.820 --> 00:20:22.120 +00:20:20.200 --> 00:20:22.120 So feel free to click on it and explore it. -00:20:23.320 --> 00:20:23.680 +00:20:22.120 --> 00:20:23.680 I'm kind of curious, so I'm gonna... -00:20:25.400 --> 00:20:25.560 +00:20:23.680 --> 00:20:25.560 Can I click it on stream and can we look at -00:20:26.120 --> 00:20:26.620 +00:20:25.560 --> 00:20:26.620 it a little bit together? -00:20:28.680 --> 00:20:29.020 +00:20:26.740 --> 00:20:29.020 Sure, sure. I haven't tried running it, -00:20:31.300 --> 00:20:31.680 +00:20:29.020 --> 00:20:31.680 I can't say for its fitness, -00:20:33.720 --> 00:20:34.220 +00:20:31.680 --> 00:20:34.220 but it's definitely enough of the groundwork -00:20:36.160 --> 00:20:36.660 +00:20:34.400 --> 00:20:36.660 done that it's absolutely an assistance. -00:20:39.760 --> 00:20:40.260 +00:20:38.100 --> 00:20:40.260 Right. Okay, so it's loading up right now? -00:20:42.180 --> 00:20:42.620 +00:20:41.540 --> 00:20:42.620 You can see my webcam, -00:20:45.480 --> 00:20:45.680 +00:20:42.620 --> 00:20:45.680 right? I can see your browser attempting to -00:20:47.080 --> 00:20:47.360 +00:20:45.680 --> 00:20:47.360 load. There we go. Okay, -00:20:49.860 --> 00:20:50.060 +00:20:47.360 --> 00:20:50.060 cool. So I'm not sure what GitHub is doing. -00:20:51.240 --> 00:20:51.460 +00:20:50.060 --> 00:20:51.460 Let me give it a little more room. -00:20:53.860 --> 00:20:54.360 +00:20:51.460 --> 00:20:54.360 The reactive setup is not working too well. -00:20:58.340 --> 00:20:58.840 +00:20:57.260 --> 00:20:58.840 Oh, I see. You're viewing the... -00:21:01.960 --> 00:21:02.220 +00:20:59.540 --> 00:21:02.220 I see. Can I see the file then? -00:21:03.520 --> 00:21:04.020 +00:21:02.220 --> 00:21:04.020 I should be able to see the file. -00:21:08.800 --> 00:21:09.060 +00:21:06.460 --> 00:21:09.060 I think he just mentions the code in that -00:21:11.480 --> 00:21:11.640 +00:21:09.060 --> 00:21:11.640 comment. So if there's a way to view only the -00:21:14.765 --> 00:21:14.897 +00:21:11.640 --> 00:21:14.897 comment it would make it clear. -00:21:16.160 --> 00:21:16.660 +00:21:14.897 --> 00:21:16.660 Right. Okay. I'm loading the file separately. -00:21:18.000 --> 00:21:18.500 +00:21:17.320 --> 00:21:18.500 I'm checking the time. -00:21:21.220 --> 00:21:21.340 +00:21:18.740 --> 00:21:21.340 We have about 3 minutes left and I think we -00:21:22.420 --> 00:21:22.900 +00:21:21.340 --> 00:21:22.900 have a question. In the meantime, -00:21:25.680 --> 00:21:25.760 +00:21:22.900 --> 00:21:25.760 whilst I show this, I'm gonna launch another -00:21:28.320 --> 00:21:28.820 +00:21:25.760 --> 00:21:28.820 question, which was about Drafts. -00:21:30.580 --> 00:21:30.740 +00:21:29.440 --> 00:21:30.740 You are carrying, you're talking about -00:21:32.320 --> 00:21:32.480 +00:21:30.740 --> 00:21:32.480 Drafts, but does that mean you're not using -00:21:35.720 --> 00:21:35.920 +00:21:32.480 --> 00:21:35.920 org anymore? Oh, no, I use org all the time. -00:21:37.600 --> 00:21:38.100 +00:21:35.920 --> 00:21:38.100 In fact, the way that I've configured drafts -00:21:40.240 --> 00:21:40.580 +00:21:38.160 --> 00:21:40.580 is that after I type the thing in the note -00:21:43.080 --> 00:21:43.260 +00:21:40.580 --> 00:21:43.260 into drafts, I hit a key and it creates an -00:21:44.920 --> 00:21:45.420 +00:21:43.260 --> 00:21:45.420 org mode capture item for it. -00:21:48.060 --> 00:21:48.560 +00:21:45.540 --> 00:21:48.560 The reason why I use Drafts instead of Emacs -00:21:50.160 --> 00:21:50.660 +00:21:48.560 --> 00:21:50.660 is because it's always available. -00:21:53.680 --> 00:21:53.960 +00:21:51.100 --> 00:21:53.960 If Emacs is currently doing some job for me, -00:21:55.840 --> 00:21:56.340 +00:21:53.960 --> 00:21:56.340 say I'm running some long-running subshell -00:21:58.940 --> 00:21:59.440 +00:21:57.060 --> 00:21:59.440 and the UI is frozen up whatnot, -00:22:02.020 --> 00:22:02.360 +00:21:59.700 --> 00:22:02.360 Drafts is always 100% of the time instantly -00:22:04.600 --> 00:22:04.900 +00:22:02.360 --> 00:22:04.900 available. So that's why I tend to then lean -00:22:07.740 --> 00:22:07.920 +00:22:04.900 --> 00:22:07.920 on it a bit, but all of the destination of -00:22:09.760 --> 00:22:10.240 +00:22:07.920 --> 00:22:10.240 that data is still Org Mode and everything -00:22:11.960 --> 00:22:12.460 +00:22:10.240 --> 00:22:12.460 that I do gets tracked through Org Mode. -00:22:15.720 --> 00:22:16.160 +00:22:13.080 --> 00:22:16.160 That's also why I wanted to implement the UI -00:22:18.580 --> 00:22:18.800 +00:22:16.160 --> 00:22:18.800 scheme of drafts in Emacs so that I could -00:22:20.360 --> 00:22:20.860 +00:22:18.800 --> 00:22:20.860 drop the use of this external application. -00:22:23.040 --> 00:22:23.160 +00:22:21.540 --> 00:22:23.160 And then, I mean, I would still have the -00:22:25.080 --> 00:22:25.580 +00:22:23.160 --> 00:22:25.580 problem of sometimes Emacs being unavailable, -00:22:29.760 --> 00:22:30.040 +00:22:26.060 --> 00:22:30.040 but I would pay that price in order to have -00:22:32.200 --> 00:22:32.700 +00:22:30.040 --> 00:22:32.700 that good UI of drafts inside Emacs. -00:22:37.200 --> 00:22:37.700 +00:22:34.640 --> 00:22:37.700 Great. I think we have, -00:22:39.520 --> 00:22:39.720 +00:22:38.420 --> 00:22:39.720 we might be too tight on time. -00:22:41.200 --> 00:22:41.640 +00:22:39.720 --> 00:22:41.640 We only have about 2 minutes and I need to -00:22:43.680 --> 00:22:44.180 +00:22:41.640 --> 00:22:44.180 jump room to go into Stephane's room as well. -00:22:47.160 --> 00:22:47.380 +00:22:44.440 --> 00:22:47.380 So John, where I get to thank you so much for -00:22:52.660 --> 00:22:53.160 +00:22:47.380 --> 00:22:53.160 taking the time to answer our questions, -00:22:54.920 --> 00:22:55.040 +00:22:53.260 --> 00:22:55.040 but also doing a little bit of reporting on -00:22:57.900 --> 00:22:58.380 +00:22:55.040 --> 00:22:58.380 the state of Emacs. And now we'll get to -00:22:58.940 --> 00:22:59.280 +00:22:58.380 --> 00:22:59.280 continue this with Stéphane. -00:23:00.900 --> 00:23:01.300 +00:22:59.280 --> 00:23:01.300 So do you have any last words for everyone, -00:23:03.380 --> 00:23:03.660 +00:23:01.300 --> 00:23:03.660 John? No, no. I look forward to hearing -00:23:05.940 --> 00:23:06.420 +00:23:03.660 --> 00:23:06.420 Stéphane speak. Okay, great. -00:23:07.000 --> 00:23:07.360 +00:23:06.420 --> 00:23:07.360 And we'll look forward, -00:23:08.800 --> 00:23:09.300 +00:23:07.360 --> 00:23:09.300 potentially, to having you again next year, -00:23:12.180 --> 00:23:12.680 +00:23:10.520 --> 00:23:12.680 potentially still doing news like this, -00:23:15.620 --> 00:23:15.920 +00:23:12.980 --> 00:23:15.920 and, fingers crossed, maybe having you live -00:23:18.160 --> 00:23:18.660 +00:23:15.920 --> 00:23:18.660 again. Maybe, maybe let's see what happens. -00:23:20.680 --> 00:23:20.860 +00:23:19.700 --> 00:23:20.860 All right, John. Thank you so much. -00:23:21.780 --> 00:23:22.280 +00:23:20.860 --> 00:23:22.280 Bye bye. Bye bye. diff --git a/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt b/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt new file mode 100644 index 00000000..e6ae083a --- /dev/null +++ b/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt @@ -0,0 +1,4022 @@ +WEBVTT + + +00:00:01.719 --> 00:00:02.600 +[Speaker 0]: 5 seconds. Oh, actually, + +00:00:07.279 --> 00:00:08.320 +[Speaker 1]: Sorry, I keep delaying. + +00:00:08.320 --> 00:00:09.559 +I keep forgetting that we have an + +00:00:09.559 --> 00:00:11.639 +introduction now. The introduction is flying. + +00:00:02.600 --> 00:00:18.883 +[Speaker 0]: a little more. You're going to give a + +00:00:22.260 --> 00:00:24.320 +[Speaker 1]: Well, it's about 5 seconds now. + +00:00:19.675 --> 00:00:27.560 +[Speaker 0]: 30-second, right? Just say go when you want + +00:00:29.060 --> 00:00:31.280 +[Speaker 1]: Sure. You'll hear me anyway. + +00:00:27.560 --> 00:00:32.299 +[Speaker 0]: me to go. Okay. + +00:00:33.260 --> 00:00:35.220 +[Speaker 1]: All right, I think we are live now. + +00:00:35.220 --> 00:00:36.100 +So hi again, everyone. + +00:00:36.100 --> 00:00:37.900 +I promised you we would be back in about 30 + +00:00:37.900 --> 00:00:39.940 +seconds. I lied, it was actually 1 minute, + +00:00:40.160 --> 00:00:41.760 +but we are here with Bob. + +00:00:41.760 --> 00:00:42.840 +Hi, Bob, how are you doing? + +00:00:43.380 --> 00:00:46.940 +[Speaker 0]: Hi, doing great. Glad to + +00:00:46.940 --> 00:00:50.600 +[Speaker 1]: be with you. Yeah, glad to be here, + +00:00:50.600 --> 00:00:52.580 +and so are we. We're glad to have you again + +00:00:52.580 --> 00:00:54.440 +this year. So what we're going to do, + +00:00:54.440 --> 00:00:56.140 +we're not going to waste any time right now + +00:00:56.140 --> 00:00:57.880 +with chit-chats. What we're going to do, + +00:00:57.880 --> 00:00:59.059 +we're going to move straight into your + +00:00:59.059 --> 00:01:01.120 +presentation, Bob, so that you have as much + +00:01:01.120 --> 00:01:04.239 +time as you can. I'm going to recede into the + +00:01:04.239 --> 00:01:07.440 +background. I am going to full screen your + +00:01:07.440 --> 00:01:08.979 +presentation on a stream. + +00:01:09.860 --> 00:01:11.680 +And Bob, the floor is all yours. + +00:01:12.940 --> 00:01:14.720 +[Speaker 0]: Thank you very much, Leo. + +00:01:15.040 --> 00:01:18.400 +Glad to be here. I hope everybody has an idea + +00:01:18.400 --> 00:01:22.780 +of what Hyperbole is, but it's a broad + +00:01:22.900 --> 00:01:25.880 +information management system inside Emacs + +00:01:26.400 --> 00:01:28.540 +that works in all major modes. + +00:01:28.860 --> 00:01:31.760 +It's a global minor mode that you can turn on + +00:01:31.760 --> 00:01:34.760 +and off very rapidly so that you can just get + +00:01:34.760 --> 00:01:36.160 +in and out of hyperbole. + +00:01:36.760 --> 00:01:40.940 +And it works mostly from a mini buffer menu + +00:01:41.400 --> 00:01:44.040 +that if we just hit ctrl H H we see at the + +00:01:44.040 --> 00:01:47.420 +bottom of the screen here and as you see in + +00:01:47.420 --> 00:01:48.980 +some of this text right here, + +00:01:51.040 --> 00:01:55.680 +Dee will show you a demo with all these video + +00:01:55.680 --> 00:01:57.680 +links of Hyperbole now. + +00:01:57.900 --> 00:02:01.780 +But let's just get into the top 10 reasons to + +00:02:01.780 --> 00:02:08.840 +use Hyperbole. Number 10 is a key series + +00:02:10.160 --> 00:02:12.600 +curly braces. So you just put curly braces + +00:02:12.600 --> 00:02:17.620 +around any set of key sequences that you want + +00:02:19.760 --> 00:02:22.440 +and hyperbole magically turns that into what + +00:02:22.440 --> 00:02:25.640 +we call an implicit button a hyper button and + +00:02:25.640 --> 00:02:28.580 +any kind of text that you have so if we go + +00:02:28.580 --> 00:02:35.760 +down here and we just click click here we see + +00:02:35.820 --> 00:02:40.220 +it that was a complex button that said let's + +00:02:40.400 --> 00:02:43.200 +start a shell, let's set an environment + +00:02:43.320 --> 00:02:45.140 +variable as you see the command right up + +00:02:45.140 --> 00:02:47.420 +there, and then let's do a grep over the + +00:02:47.420 --> 00:02:50.680 +hyperbole code and find all instances of a + +00:02:50.680 --> 00:02:55.360 +particular label. So if we hit made a return, + +00:02:55.400 --> 00:02:57.260 +that's called the action key. + +00:02:57.280 --> 00:02:59.340 +That's what you use throughout hyperbole when + +00:02:59.340 --> 00:03:01.900 +you just want to activate any kind of button. + +00:03:02.020 --> 00:03:06.380 +So you see it jumped to the grep output and + +00:03:06.380 --> 00:03:08.440 +this is in a shell buffer it's not in a + +00:03:08.440 --> 00:03:11.180 +compilation buffer so anywhere that you have + +00:03:11.180 --> 00:03:13.760 +this sort of thing it's also an implicit + +00:03:13.780 --> 00:03:17.040 +button and any sort of grep output or + +00:03:17.040 --> 00:03:20.780 +compiler output you can just jump to with the + +00:03:22.120 --> 00:03:23.580 +same key, made a return. + +00:03:23.960 --> 00:03:29.240 +So that's key series, the first part. + +00:03:29.440 --> 00:03:33.880 +And then just to note that you can also just + +00:03:33.880 --> 00:03:39.000 +do a, well I'll just do it here and show you + +00:03:39.000 --> 00:03:43.380 +that you can do a recursive grep with this + +00:03:43.380 --> 00:03:45.840 +hyperbole command, HYPBR grep. + +00:03:46.060 --> 00:03:49.000 +And if you're in an Emacs list buffer, + +00:03:50.860 --> 00:03:54.740 +it will only grep across the Emacs list. + +00:03:54.760 --> 00:03:58.340 +So a very handy way to just go through your + +00:03:58.340 --> 00:04:01.040 +code very rapidly and then jump to various + +00:04:01.040 --> 00:04:04.280 +points in it. So we have a lot to cover + +00:04:04.280 --> 00:04:05.800 +today, so I'm going to go through this + +00:04:05.800 --> 00:04:07.560 +rapidly. This isn't a tutorial, + +00:04:07.800 --> 00:04:10.340 +it's just to get you interested in some of + +00:04:10.340 --> 00:04:13.060 +the features, and then there's a ton of + +00:04:13.060 --> 00:04:15.920 +reference material and videos now available + +00:04:15.980 --> 00:04:18.860 +for Hyperlink. So let's go to number 9. + +00:04:20.019 --> 00:04:22.360 +Path names become implicit buttons. + +00:04:22.500 --> 00:04:24.060 +You don't even have to quote them. + +00:04:24.060 --> 00:04:26.920 +You can add environment variables or elist + +00:04:26.920 --> 00:04:29.200 +variables with the syntax right here. + +00:04:29.380 --> 00:04:32.180 +So here we have a shell script that's + +00:04:32.180 --> 00:04:33.500 +somewhere on our path. + +00:04:33.680 --> 00:04:36.380 +And notice path is an environment variable + +00:04:36.380 --> 00:04:39.140 +with many different paths within it, + +00:04:39.140 --> 00:04:42.600 +right? But Hyperbole knows that and it + +00:04:42.600 --> 00:04:44.980 +searches the path, gets the first match, + +00:04:45.600 --> 00:04:48.620 +finds it, and finds the actual shell script. + +00:04:48.660 --> 00:04:50.420 +So you can just embed that anywhere. + +00:04:50.540 --> 00:04:52.160 +Here we have a list variable, + +00:04:52.280 --> 00:04:54.360 +hyperbdur, which is the home directory for + +00:04:54.360 --> 00:04:58.120 +hyperbole, and then a markdown file, + +00:04:58.320 --> 00:05:01.680 +and a link to a direct section in the file, + +00:05:01.780 --> 00:05:05.220 +and the 5 colon 5 means go to line 5 within + +00:05:05.220 --> 00:05:07.260 +that section and column 5. + +00:05:07.380 --> 00:05:09.400 +So let's just try it. Boom, + +00:05:09.420 --> 00:05:11.500 +we're right there, and we're on another link + +00:05:11.500 --> 00:05:13.220 +that we could activate as well. + +00:05:13.420 --> 00:05:17.960 +So notice the next line is the same link but + +00:05:17.960 --> 00:05:20.280 +this is how you normally have to do it in a + +00:05:20.280 --> 00:05:23.160 +markdown file. You have to change the section + +00:05:23.160 --> 00:05:25.640 +header to have dashes but with hyperbole you + +00:05:25.640 --> 00:05:28.120 +don't have to. You can just put it exactly + +00:05:28.140 --> 00:05:29.840 +like you see it in your file. + +00:05:30.540 --> 00:05:34.660 +Here the pound syntax for sections is really + +00:05:34.660 --> 00:05:36.640 +a generic syntax in the hyperbole. + +00:05:37.360 --> 00:05:39.840 +And so it works in all different kinds of + +00:05:39.840 --> 00:05:41.500 +files, your programming files. + +00:05:42.100 --> 00:05:45.240 +Here's a shell script and we said let's just + +00:05:45.240 --> 00:05:49.120 +go to the first comment that has alias in it. + +00:05:49.120 --> 00:05:51.700 +Notice we didn't have to say the whole line, + +00:05:51.700 --> 00:05:53.160 +just the first part of it. + +00:05:53.160 --> 00:05:58.140 +And it matched to it. Here we have a link to + +00:05:58.140 --> 00:06:01.680 +our hyperbole structured outliner called the + +00:06:01.680 --> 00:06:04.660 +K Outliner. And you can see it auto-numbers + +00:06:05.080 --> 00:06:08.000 +all these cells. But in addition to just + +00:06:08.000 --> 00:06:10.640 +displaying, you can also add a pipe symbol + +00:06:10.640 --> 00:06:14.900 +near the end and use this view syntax to clip + +00:06:14.900 --> 00:06:17.500 +to 2 lines and show blank lines. + +00:06:17.500 --> 00:06:19.920 +So let's see if each node gets clipped to 2 + +00:06:19.920 --> 00:06:22.680 +lines. So you see they're all just 2 now with + +00:06:22.680 --> 00:06:25.280 +the ellipses and then we can expand them. + +00:06:25.320 --> 00:06:28.760 +So a lot of power there just with path names. + +00:06:29.380 --> 00:06:31.120 +Let's continue to number 8. + +00:06:31.120 --> 00:06:32.940 +[Speaker 1]: Can I just interrupt you just a bit? + +00:06:33.420 --> 00:06:33.920 +[Speaker 0]: Yes. + +00:06:34.740 --> 00:06:37.720 +[Speaker 1]: I think your phone, so we have your phone set + +00:06:37.720 --> 00:06:40.460 +up in case your internet misbehaves and we've + +00:06:40.640 --> 00:06:42.080 +set this up before we started, + +00:06:42.100 --> 00:06:44.380 +but I think the vibration is a little loud + +00:06:44.380 --> 00:06:46.160 +whenever it does. Can you maybe move it a + +00:06:46.160 --> 00:06:50.380 +little bit? I think so. + +00:06:50.380 --> 00:06:51.880 +It will have to vibrate again. + +00:06:47.740 --> 00:06:54.220 +[Speaker 0]: Is that okay? No, my phone... + +00:06:54.380 --> 00:06:56.880 +Okay. It shouldn't have been vibrating. + +00:06:59.480 --> 00:07:01.260 +[Speaker 1]: have been another device, + +00:07:01.280 --> 00:07:02.800 +but definitely we had vibration. + +00:07:02.800 --> 00:07:04.500 +Anyway, carry on. Sorry for the interruption. + +00:06:57.640 --> 00:07:06.920 +[Speaker 0]: It could be me. It might So number 8, + +00:07:07.800 --> 00:07:10.520 +special prefixes. There are 3 prefixes you + +00:07:10.520 --> 00:07:11.820 +can attach to path names. + +00:07:11.820 --> 00:07:13.680 +The first, if you want to load, + +00:07:13.820 --> 00:07:16.040 +instead of just finding a file, + +00:07:16.620 --> 00:07:19.460 +an ELIST file, you can actually load it. + +00:07:19.540 --> 00:07:22.060 +And so I can just hit made a return on this, + +00:07:22.200 --> 00:07:24.300 +and you see in the mini buffer, + +00:07:25.200 --> 00:07:27.100 +it loaded it as compiled e-list. + +00:07:27.240 --> 00:07:29.340 +I could put a .el on here, + +00:07:29.500 --> 00:07:33.500 +a .elc, .gz, all of that'll work, + +00:07:33.580 --> 00:07:36.420 +and just put a dash in front to load it. + +00:07:36.580 --> 00:07:38.720 +If you want to run a shell command, + +00:07:38.720 --> 00:07:41.040 +just put an exclamation mark in front of + +00:07:41.040 --> 00:07:42.540 +something and again you can have the + +00:07:42.540 --> 00:07:44.620 +environment variable. So here we're saying + +00:07:44.620 --> 00:07:47.220 +run the program date and you see, + +00:07:48.400 --> 00:07:50.040 +let's see, let's do it again. + +00:07:50.160 --> 00:07:53.240 +There we go. It ran date and you see the + +00:07:53.240 --> 00:07:55.680 +output right there. And what if you want to + +00:07:55.680 --> 00:07:58.040 +run a graphical program on your system? + +00:07:58.620 --> 00:08:01.760 +Well here, we want to open a PDF file and I'm + +00:08:01.760 --> 00:08:05.340 +just using XDG Open on Linux, + +00:08:05.660 --> 00:08:09.440 +you could use Open on Mac and you just put an + +00:08:09.440 --> 00:08:12.840 +ampersand in front and there's the Hyperbole + +00:08:14.120 --> 00:08:15.840 +manual instantly displayed. + +00:08:16.120 --> 00:08:18.620 +So lots of power there and all of that + +00:08:18.820 --> 00:08:22.360 +actually .pdf's and many other file types are + +00:08:22.360 --> 00:08:25.080 +automatically linked to various programs by + +00:08:25.080 --> 00:08:27.340 +Hyperbole. So you could just use the path + +00:08:27.340 --> 00:08:29.340 +name itself and it would probably behave the + +00:08:29.340 --> 00:08:34.440 +same way. Number 7, bookmarks on steroids. + +00:08:35.460 --> 00:08:37.419 +So Hyperbole gives you a personal button + +00:08:37.419 --> 00:08:40.340 +file, which is on the menu you see here under + +00:08:40.400 --> 00:08:42.280 +button files, and then personal. + +00:08:43.039 --> 00:08:45.360 +So here we'll just display it. + +00:08:45.480 --> 00:08:47.720 +And you can put whatever you want in here, + +00:08:47.720 --> 00:08:49.860 +these implicit buttons of any type. + +00:08:49.860 --> 00:08:52.660 +You can name them the way here and you can + +00:08:52.660 --> 00:08:55.560 +activate either the name with MetaReturn or + +00:08:55.560 --> 00:08:56.920 +the button itself. So, + +00:08:56.920 --> 00:08:59.400 +of course, if we did MetaReturn here, + +00:08:59.860 --> 00:09:03.220 +we'd just display that in a web browser. + +00:09:03.940 --> 00:09:05.520 +I'll just do a few of these. + +00:09:05.540 --> 00:09:07.200 +So here's a section of line. + +00:09:07.200 --> 00:09:08.580 +Let's just jump there. + +00:09:09.120 --> 00:09:11.400 +But these can be all sorts of different + +00:09:11.400 --> 00:09:13.140 +actions that are going on. + +00:09:13.140 --> 00:09:16.040 +And you just, whatever cross references you + +00:09:16.040 --> 00:09:17.840 +want, you put in here. + +00:09:17.840 --> 00:09:20.400 +And the neat thing is that this then becomes + +00:09:20.940 --> 00:09:23.420 +a list of what we call global buttons. + +00:09:23.620 --> 00:09:26.540 +So when I go into the menu and I go control + +00:09:26.540 --> 00:09:30.640 +HHGA to activate a global button, + +00:09:30.720 --> 00:09:33.220 +you can see that all the names from this file + +00:09:33.220 --> 00:09:36.100 +appear here. So only the name buttons appear, + +00:09:36.160 --> 00:09:40.240 +and I could like go to the hyperbole to-do + +00:09:40.240 --> 00:09:42.260 +list and things like that. + +00:09:42.500 --> 00:09:45.660 +So very, very quick access to all your + +00:09:45.660 --> 00:09:47.440 +information whenever you need it. + +00:09:47.440 --> 00:09:49.600 +And that could be an org file as well if you + +00:09:49.600 --> 00:09:53.500 +prefer that. So we just took care of that. + +00:09:53.540 --> 00:09:57.000 +Number 6, instant test case running and + +00:09:57.000 --> 00:09:59.420 +debugging. This is a fairly new feature. + +00:10:00.100 --> 00:10:02.240 +What we're seeing here is a pre-release of + +00:10:02.240 --> 00:10:04.440 +version 9, which should be out within the + +00:10:04.440 --> 00:10:07.560 +next week. But the instructions at the + +00:10:07.560 --> 00:10:10.680 +beginning of the presentation tell you how to + +00:10:10.680 --> 00:10:13.720 +get the development version of HyperBlade, + +00:10:14.040 --> 00:10:15.560 +which is right now 8.01 + +00:10:15.880 --> 00:10:19.040 +pre, but that's virtually the same as what 9 + +00:10:19.120 --> 00:10:23.060 +will be. So you can grab that as of today. + +00:10:24.140 --> 00:10:27.540 +So let's just jump to a test file. + +00:10:27.700 --> 00:10:30.300 +What you see here is called an explicit + +00:10:30.360 --> 00:10:33.020 +button. You can actually make buttons where + +00:10:33.120 --> 00:10:35.820 +similar to org, where you just see a bit of + +00:10:35.820 --> 00:10:38.500 +the button and all of the metadata is hidden. + +00:10:39.060 --> 00:10:42.040 +I can say control A J and I see all about + +00:10:42.040 --> 00:10:43.940 +that button, exactly what it's going to do + +00:10:43.940 --> 00:10:47.200 +before I activate it and even who created it + +00:10:47.200 --> 00:10:50.680 +or last modified it. Then just queue out of + +00:10:50.680 --> 00:10:52.580 +here and you're back where you were. + +00:10:52.700 --> 00:10:56.820 +So now, what this did is link us to an ERT + +00:10:56.920 --> 00:10:59.920 +test. If you write tests in Emacs, + +00:10:59.920 --> 00:11:02.060 +you probably use ERT tests. + +00:11:02.220 --> 00:11:05.220 +So if I hit made a return on here it'll just + +00:11:05.220 --> 00:11:08.520 +run the test tell me it passed great okay but + +00:11:08.520 --> 00:11:11.760 +maybe I had a problem so let me use control + +00:11:11.760 --> 00:11:17.080 +you made a return and that will e-debug the + +00:11:17.080 --> 00:11:20.080 +test instantly. So now I'll step through it + +00:11:20.080 --> 00:11:22.200 +and it says, well, let's, + +00:11:23.000 --> 00:11:25.580 +this single line actually creates that + +00:11:25.580 --> 00:11:27.800 +explicit button. You see we have an empty + +00:11:27.800 --> 00:11:29.480 +buffer here that we're in. + +00:11:29.480 --> 00:11:31.780 +Now I step through that and now there's the + +00:11:31.780 --> 00:11:34.160 +explicit button that got put in there. + +00:11:34.160 --> 00:11:36.940 +Now the next line I step through it and this + +00:11:36.940 --> 00:11:39.160 +is going to check if we have the right action + +00:11:39.160 --> 00:11:42.260 +type and it returns true so that's good and + +00:11:42.260 --> 00:11:45.220 +now we should be it should be associated with + +00:11:45.220 --> 00:11:48.680 +the temp buffer returns true good And that's + +00:11:48.680 --> 00:11:51.360 +why what you saw before is this passed. + +00:11:51.720 --> 00:11:52.760 +The whole thing passed. + +00:11:53.000 --> 00:11:54.740 +So lots of power there. + +00:11:55.080 --> 00:11:57.600 +Simple to use. You're just using your made a + +00:11:57.600 --> 00:11:59.360 +return and prefix arguments. + +00:12:00.040 --> 00:12:03.240 +It's something everybody who develops should + +00:12:03.240 --> 00:12:07.640 +have. So number, let's go on. + +00:12:07.640 --> 00:12:09.720 +I think we're making pretty good time here, + +00:12:09.720 --> 00:12:11.240 +but I turned off my timer. + +00:12:13.000 --> 00:12:15.800 +Let's go to number 5. This is a very new + +00:12:15.800 --> 00:12:17.660 +feature, which is very cool too. + +00:12:17.720 --> 00:12:20.420 +You used to have to use the mouse probably + +00:12:20.440 --> 00:12:23.880 +and you could drag across windows to go from + +00:12:23.880 --> 00:12:26.820 +a source to a referent buffer and that would + +00:12:26.820 --> 00:12:28.340 +create a hyperlink for you. + +00:12:28.340 --> 00:12:30.880 +But now we've installed it and made it even + +00:12:30.880 --> 00:12:34.140 +easier on, we've installed it on a, + +00:12:34.860 --> 00:12:36.540 +on the hyperbole menus. + +00:12:37.040 --> 00:12:40.180 +So let's just go back to our presentation + +00:12:40.680 --> 00:12:43.660 +here and say we want to link to this line + +00:12:43.660 --> 00:12:46.160 +that we're on there. And I'll just create the + +00:12:46.160 --> 00:12:48.480 +button in our scratch buffer here so it + +00:12:48.480 --> 00:12:50.660 +doesn't really mess anything up. + +00:12:50.900 --> 00:12:53.980 +So I just put my point in where I want the + +00:12:53.980 --> 00:12:56.920 +button to appear and then I put point where I + +00:12:56.920 --> 00:13:00.060 +want it to link to in the other the other + +00:13:00.060 --> 00:13:02.800 +buffer and then I just say control HH to get + +00:13:02.800 --> 00:13:05.260 +my menu, I for implicit button, + +00:13:05.380 --> 00:13:07.940 +and then L for link. Boom, + +00:13:07.960 --> 00:13:09.980 +it inserts it, right at point. + +00:13:10.680 --> 00:13:12.880 +What did it do? It knew that this was in the + +00:13:12.880 --> 00:13:15.080 +hyperbole directory and I have a variable for + +00:13:15.080 --> 00:13:17.780 +that, so that if you sent this link to your + +00:13:17.780 --> 00:13:19.180 +friend who uses Hyperbole, + +00:13:19.440 --> 00:13:21.440 +it would still work right because they have a + +00:13:21.440 --> 00:13:22.860 +different hyperbole there. + +00:13:23.100 --> 00:13:27.380 +And then I want to go directly to line 116. + +00:13:28.360 --> 00:13:30.360 +So boom, it just took me there. + +00:13:30.820 --> 00:13:33.900 +So that's it. And Hyperbole is doing all this + +00:13:33.900 --> 00:13:36.420 +for you. You just say I want a link to this + +00:13:36.420 --> 00:13:38.940 +thing and it figures out what's at point and + +00:13:38.940 --> 00:13:42.240 +it determines the right type of implicit link + +00:13:42.240 --> 00:13:45.520 +to put there. And that's the whole point is + +00:13:45.520 --> 00:13:47.320 +that you're just working like when you're + +00:13:47.320 --> 00:13:50.500 +programming or you're writing an article and + +00:13:50.500 --> 00:13:53.520 +you just hit made a return or or pull up a + +00:13:53.520 --> 00:13:57.180 +menu and hit a key binding and you're off to + +00:13:57.180 --> 00:14:02.400 +the races. So that was implicit linking We + +00:14:02.400 --> 00:14:05.260 +can also create those explicit link buttons, + +00:14:06.200 --> 00:14:07.760 +and as well as the global link, + +00:14:07.760 --> 00:14:09.580 +where we would just give it a name, + +00:14:09.580 --> 00:14:11.640 +and it would automatically put it in our + +00:14:11.640 --> 00:14:14.640 +global button file without us even having + +00:14:14.640 --> 00:14:18.380 +that on screen. So lots of power there as + +00:14:18.380 --> 00:14:19.660 +well, lots of consistency. + +00:14:21.900 --> 00:14:25.040 +Now let's take a look at the K Outliner a + +00:14:25.040 --> 00:14:28.040 +little more. I'm just going to show you 1 + +00:14:28.040 --> 00:14:29.820 +feature actually. I don't have time to show + +00:14:29.820 --> 00:14:31.580 +you the K Outliner in detail, + +00:14:31.800 --> 00:14:34.220 +but it's a really cool structured outliner + +00:14:34.280 --> 00:14:36.400 +that even if you love Org Mode, + +00:14:36.580 --> 00:14:39.280 +you should try it. And this is 1 thing that + +00:14:39.280 --> 00:14:41.060 +you can't get with Org Mode, + +00:14:41.320 --> 00:14:45.100 +is let's say Hyperlink comes with an example + +00:14:45.100 --> 00:14:48.580 +file which teaches you about the K Outliner. + +00:14:48.960 --> 00:14:50.940 +So we'll just use that right here. + +00:14:51.180 --> 00:14:53.040 +And when you're in the K Outliner, + +00:14:53.080 --> 00:14:55.820 +you can bring up and go into the K Outliner + +00:14:55.900 --> 00:14:57.540 +menu right here at the bottom. + +00:14:58.200 --> 00:15:00.360 +And there's a format menu there. + +00:15:00.360 --> 00:15:02.600 +You always take the first letter of a menu, + +00:15:02.600 --> 00:15:05.100 +the first capital letter of a menu item. + +00:15:05.240 --> 00:15:08.720 +So F for format and then D for display in + +00:15:08.720 --> 00:15:11.700 +browser. So just let's do it. + +00:15:12.740 --> 00:15:17.220 +We have with 1 button or 1 key we've produced + +00:15:17.780 --> 00:15:23.660 +the entire outline in a collapsible outline + +00:15:23.720 --> 00:15:26.260 +in HTML. So I can go here. + +00:15:27.620 --> 00:15:29.240 +I just have to use my mouse. + +00:15:29.600 --> 00:15:33.300 +So I can expand and collapse these trees live + +00:15:34.220 --> 00:15:39.520 +with very basic coding. + +00:15:39.760 --> 00:15:42.680 +We tried to keep this as simple as possible. + +00:15:42.880 --> 00:15:45.580 +But you see it maintains the structure of the + +00:15:45.580 --> 00:15:47.880 +outline and even tables. + +00:15:55.120 --> 00:15:57.620 +So all the formatting is maintained and again + +00:15:57.620 --> 00:16:00.100 +it's instant. Or you can just export it to a + +00:16:00.100 --> 00:16:01.920 +file without displaying it. + +00:16:03.900 --> 00:16:05.880 +Very efficient kinds of operations. + +00:16:06.420 --> 00:16:10.960 +So that was number 4. Number 3 is a + +00:16:10.960 --> 00:16:13.400 +subsystem, another subsystem in Hyperbole + +00:16:13.440 --> 00:16:16.080 +called Hycontrol, which is for window and + +00:16:16.080 --> 00:16:18.600 +frame management. And I just wanted to show + +00:16:18.600 --> 00:16:20.920 +you 1 thing in there. It's got a lot of + +00:16:20.920 --> 00:16:24.400 +capabilities. But I always had the problem + +00:16:24.480 --> 00:16:28.340 +that Emacs wouldn't let me scale my fonts, + +00:16:28.380 --> 00:16:30.780 +all of my faces at the same time. + +00:16:30.840 --> 00:16:33.680 +I wanted to zoom. I didn't want to increase + +00:16:33.680 --> 00:16:36.260 +the default font size and all the others stay + +00:16:36.260 --> 00:16:40.660 +the same. So let's just display our faces + +00:16:41.260 --> 00:16:45.200 +right here and then we have a choice of + +00:16:45.200 --> 00:16:47.860 +either controlling frames or windows. + +00:16:47.920 --> 00:16:50.240 +So let's start by controlling frames. + +00:16:50.460 --> 00:16:52.760 +So you get another submenu when you're in + +00:16:52.760 --> 00:16:56.020 +high control to tell you what to do here. + +00:16:56.320 --> 00:16:59.480 +And there's just lowercase z and uppercase z. + +00:16:59.480 --> 00:17:03.400 +So let's try it. So it's scaling the entire + +00:17:03.400 --> 00:17:06.020 +frame. And you can see from the list of faces + +00:17:06.260 --> 00:17:08.500 +that they're all scaling at the same time. + +00:17:08.599 --> 00:17:10.220 +And I can go back down. + +00:17:10.760 --> 00:17:13.619 +Now if I switch to window mode, + +00:17:13.619 --> 00:17:16.099 +and there's a special fast way to do that, + +00:17:16.099 --> 00:17:18.819 +just hit T to toggle. And if you look at the + +00:17:18.819 --> 00:17:21.819 +bottom menu it says frames right now now it + +00:17:21.819 --> 00:17:25.599 +says windows when I hit T so now if I do the + +00:17:25.599 --> 00:17:30.640 +same Z to increase it's just this window and + +00:17:30.640 --> 00:17:36.800 +but it's you know it's the faces in there so + +00:17:37.200 --> 00:17:40.680 +a lot of power again but I just haven't found + +00:17:40.680 --> 00:17:43.220 +anywhere else that you can get that kind of + +00:17:43.220 --> 00:17:45.820 +control over your faces very rapidly. + +00:17:45.920 --> 00:17:51.640 +So that's number 3. Now number 2, + +00:17:55.360 --> 00:17:56.780 +let's put that in there. + +00:17:58.340 --> 00:18:03.320 +So the HiROLO is the final subsystem in + +00:18:03.320 --> 00:18:06.240 +Hyperbole and this has gotten much cooler. + +00:18:06.500 --> 00:18:08.680 +So it started off as a contact management + +00:18:08.680 --> 00:18:11.540 +system, but it's really just a hierarchical + +00:18:11.880 --> 00:18:15.060 +record management system that lets you have + +00:18:15.060 --> 00:18:18.020 +as many files, directories as you want, + +00:18:18.120 --> 00:18:20.280 +and you can search across all of them without + +00:18:20.280 --> 00:18:23.240 +any external utilities necessary, + +00:18:23.960 --> 00:18:26.240 +just what's built into Emacs and Hyperlink. + +00:18:26.760 --> 00:18:29.920 +So as you can see, we've expanded it to + +00:18:29.920 --> 00:18:31.820 +handle org files, markdown, + +00:18:32.300 --> 00:18:34.620 +K outlines, Emacs outlines. + +00:18:34.780 --> 00:18:36.820 +So what I'm going to do is just say, + +00:18:36.820 --> 00:18:40.680 +I want to search using my Hyberlo file list. + +00:18:40.680 --> 00:18:43.140 +You just set that to what you wanted to + +00:18:43.140 --> 00:18:44.820 +search. But now you have all this + +00:18:44.820 --> 00:18:46.520 +flexibility. You can use environment + +00:18:46.620 --> 00:18:48.840 +variables in it. You can just specify a + +00:18:48.840 --> 00:18:51.340 +directory and it will find all those matching + +00:18:51.340 --> 00:18:53.540 +files below that directory recursively. + +00:18:55.240 --> 00:18:58.460 +You can give it the markdown file here and + +00:18:58.460 --> 00:19:01.160 +you can use file wildcards as well. + +00:19:01.160 --> 00:19:04.340 +I mean, look at this. It's got a list + +00:19:04.340 --> 00:19:06.140 +variable in it and a wildcard, + +00:19:06.540 --> 00:19:09.840 +and it's just all I'm gonna do is I change + +00:19:09.840 --> 00:19:13.380 +this from a Lisp expression to make it a + +00:19:13.380 --> 00:19:15.380 +hyper button. You just change the outer + +00:19:15.380 --> 00:19:16.920 +parens to angle brackets, + +00:19:17.120 --> 00:19:19.620 +and then it's automatically an implicit + +00:19:21.040 --> 00:19:22.840 +button that you can activate with made a + +00:19:22.840 --> 00:19:26.340 +return so just ran that and now I've set my + +00:19:26.800 --> 00:19:29.440 +file list so now let's do a search it would + +00:19:29.440 --> 00:19:34.620 +be ctrl H H roll it X R and then S for search + +00:19:34.820 --> 00:19:36.680 +But I'll just do it this way. + +00:19:37.200 --> 00:19:40.320 +And boom, it found everything that fast. + +00:19:41.060 --> 00:19:42.940 +And I can just get like, + +00:19:43.180 --> 00:19:45.520 +show the top items in there. + +00:19:45.520 --> 00:19:48.260 +So I kind of have outlining in this buffer. + +00:19:48.340 --> 00:19:51.940 +I can just move to each match that I hit. + +00:19:51.980 --> 00:19:53.680 +And notice, although everything was + +00:19:53.680 --> 00:19:55.580 +collapsed, it's expanding here. + +00:19:55.640 --> 00:19:58.540 +When I move in and out of each of the entry + +00:19:58.540 --> 00:20:02.380 +matches, it expands or collapses as I move to + +00:20:02.380 --> 00:20:06.220 +the next 1. So a lot of power there. + +00:20:06.820 --> 00:20:09.120 +What else? So just tabbing through these + +00:20:09.120 --> 00:20:11.200 +things. And you notice that it's working + +00:20:11.200 --> 00:20:13.300 +across all of these different types, + +00:20:13.340 --> 00:20:16.220 +and it's telling you which file everything + +00:20:16.360 --> 00:20:17.840 +came from right up here. + +00:20:17.840 --> 00:20:19.940 +So I could just made a return here, + +00:20:20.220 --> 00:20:23.500 +should work. Yes, revisit the file normally. + +00:20:23.800 --> 00:20:25.760 +And it just pulls it right up. + +00:20:25.920 --> 00:20:28.400 +So everything is live and hyperbole. + +00:20:28.580 --> 00:20:30.120 +You've got hyperlinks everywhere. + +00:20:31.300 --> 00:20:33.740 +Let's just get rid of that. + +00:20:34.020 --> 00:20:41.600 +Go back to our demo. So if you are fans of + +00:20:41.600 --> 00:20:46.560 +Vertico and Consult, you can now use that + +00:20:46.560 --> 00:20:49.300 +with the High Rollo. So all you have to do is + +00:20:49.300 --> 00:20:51.440 +let's just format our windows, + +00:20:51.760 --> 00:20:55.720 +and then I'll say, let's use ConsultGrep over + +00:20:55.720 --> 00:20:58.880 +the Rolodex. Now, it found all the matches + +00:20:58.940 --> 00:21:02.060 +there, and I can just move live through them + +00:21:02.220 --> 00:21:04.640 +in the buffer like you may be used to or I + +00:21:04.640 --> 00:21:08.600 +can filter back down and say using orderless + +00:21:10.240 --> 00:21:13.700 +joystick or anything that has joy in it just + +00:21:13.700 --> 00:21:17.160 +match to those lines and then I can you know + +00:21:17.160 --> 00:21:20.020 +either jump there or quit out of here. + +00:21:20.020 --> 00:21:22.080 +I'll just quit out of it right now. + +00:21:22.540 --> 00:21:25.240 +So very cool. And all of that is using + +00:21:25.240 --> 00:21:28.640 +whatever you personally set as the set of + +00:21:28.640 --> 00:21:30.560 +files and directories you want to search. + +00:21:31.380 --> 00:21:35.940 +And finally, our number 1 feature of + +00:21:35.940 --> 00:21:40.440 +Hyperbole is you can customize this to give + +00:21:40.440 --> 00:21:43.460 +you these kinds of implicit buttons, + +00:21:44.660 --> 00:21:46.080 +whatever kind you want. + +00:21:46.560 --> 00:21:49.140 +And there are 3 levels of doing this. + +00:21:49.540 --> 00:21:51.140 +The first is for non-programmers. + +00:21:51.900 --> 00:21:53.700 +You can just set a string, + +00:21:54.400 --> 00:21:57.040 +like a URL with a parameter in it. + +00:21:57.180 --> 00:21:59.440 +So the %s represents the parameter, + +00:21:59.680 --> 00:22:01.440 +and This is how you do a search on + +00:22:01.440 --> 00:22:04.060 +DuckDuckGo. So all I have to do is evaluate + +00:22:04.320 --> 00:22:07.180 +this defal for action link. + +00:22:07.800 --> 00:22:11.020 +And now I have a new implicit button type + +00:22:11.040 --> 00:22:13.380 +that I can put between angle brackets. + +00:22:13.740 --> 00:22:15.640 +And I just give it that name, + +00:22:16.020 --> 00:22:18.000 +DDG, and some parameter, + +00:22:18.280 --> 00:22:20.040 +whatever I want to search for, + +00:22:20.080 --> 00:22:23.040 +and this is a button that does that search. + +00:22:25.320 --> 00:22:28.680 +Very cool, right? So you can embed these. + +00:22:28.680 --> 00:22:31.040 +This could be a hyperlink in, + +00:22:32.140 --> 00:22:35.120 +you know, a comment in a programming file. + +00:22:35.320 --> 00:22:38.160 +Anything on the entire web that you want to + +00:22:38.160 --> 00:22:42.320 +link to, whatever kind of compact notation + +00:22:42.840 --> 00:22:44.800 +you want to give it. So that's what we're + +00:22:44.800 --> 00:22:47.140 +going to learn as we get more advanced here + +00:22:47.140 --> 00:22:49.400 +you can give it even more compact notations. + +00:22:49.840 --> 00:22:52.380 +So as you get more advanced you can say, + +00:22:52.380 --> 00:22:54.240 +well I don't like this angle bracket, + +00:22:54.240 --> 00:22:57.020 +I want to have an implicit button that uses + +00:22:57.280 --> 00:22:59.620 +these square brackets and then an angle + +00:22:59.620 --> 00:23:02.080 +bracket inside it. So then you need the + +00:23:02.080 --> 00:23:05.200 +defile for implicit link. + +00:23:06.040 --> 00:23:08.860 +This lets you specify your start and end + +00:23:08.860 --> 00:23:12.180 +delimiters for your new type and and then you + +00:23:12.180 --> 00:23:14.840 +can give it a function that you wanted to run + +00:23:15.040 --> 00:23:18.320 +and that will take the text of whatever is in + +00:23:18.320 --> 00:23:19.780 +the button, in this case, + +00:23:19.900 --> 00:23:23.760 +test release here, and feed it to the + +00:23:23.760 --> 00:23:26.080 +function that I gave here. + +00:23:26.080 --> 00:23:29.540 +So what this function does is grep over my + +00:23:29.540 --> 00:23:33.420 +git log and find any commits that include the + +00:23:33.420 --> 00:23:35.360 +term test release in it. + +00:23:35.360 --> 00:23:38.200 +So let's try it. First I have to add the + +00:23:38.200 --> 00:23:41.740 +button type and that's all it takes and it + +00:23:41.740 --> 00:23:44.800 +defined it now. So anywhere in Emacs now I + +00:23:44.800 --> 00:23:46.920 +can use this button type essentially. + +00:23:47.180 --> 00:23:48.980 +So let me try to activate it. + +00:23:49.200 --> 00:23:52.760 +Okay, and it says yeah let's save it. + +00:23:53.080 --> 00:23:55.940 +Okay so now it's running a git log command. + +00:23:56.320 --> 00:23:59.440 +It found all the commits and now of course if + +00:23:59.440 --> 00:24:02.980 +I had made a return on this commit it + +00:24:02.980 --> 00:24:05.500 +recognizes it as an implicit link, + +00:24:05.680 --> 00:24:09.300 +and if I search for what was a test release, + +00:24:09.600 --> 00:24:11.960 +there it is. So this commit had that in + +00:24:11.960 --> 00:24:14.180 +there. So all these matches, + +00:24:14.180 --> 00:24:16.280 +so I don't know how other people do this, + +00:24:16.280 --> 00:24:20.040 +but for me this makes it a lot simpler. + +00:24:21.280 --> 00:24:24.800 +So a lot of power that any programmer can + +00:24:24.800 --> 00:24:27.500 +use. And finally, if you've mastered Emacs + +00:24:27.500 --> 00:24:29.360 +Lisp, or you're starting to, + +00:24:29.440 --> 00:24:33.740 +you can look in the hib types file in + +00:24:33.740 --> 00:24:37.320 +Hyperbole and see all sorts of uses of defib, + +00:24:37.500 --> 00:24:39.440 +which is defined implicit button. + +00:24:39.660 --> 00:24:42.660 +And that's the full power of e-LISP when you + +00:24:42.660 --> 00:24:45.060 +want to define 1. So what we're going to do + +00:24:45.060 --> 00:24:46.780 +here is I wanted to know, + +00:24:47.080 --> 00:24:49.700 +given a date, what the day of the week is. + +00:24:49.900 --> 00:24:53.040 +And because the date primitives weren't quite + +00:24:53.040 --> 00:24:54.640 +written the way I might like, + +00:24:55.080 --> 00:24:57.520 +it's a little longer than some. + +00:24:57.520 --> 00:25:00.400 +But I'm just going to evaluate this list. + +00:25:00.720 --> 00:25:06.100 +And I've now defined DOW as an action type. + +00:25:06.140 --> 00:25:08.500 +Now, how do I know I'm doing that? + +00:25:08.500 --> 00:25:10.700 +So I can always say Control-H, + +00:25:11.000 --> 00:25:13.580 +capital A here to see what a button's going + +00:25:13.580 --> 00:25:15.840 +to do. And it tells me When I'm there, + +00:25:15.840 --> 00:25:18.140 +I'm at a hyperbole button, + +00:25:18.400 --> 00:25:23.440 +and the type is from category DOW. + +00:25:24.000 --> 00:25:25.120 +And what's it gonna do? + +00:25:25.120 --> 00:25:27.420 +It takes a mark, it's gonna do a message + +00:25:27.440 --> 00:25:29.880 +action. Okay, so let's try it. + +00:25:31.300 --> 00:25:32.800 +It tells me that's a date, + +00:25:32.800 --> 00:25:34.220 +and it falls on a Sunday, + +00:25:34.220 --> 00:25:35.820 +which is today. That's correct. + +00:25:36.100 --> 00:25:39.020 +So 2 days from today is a Tuesday. + +00:25:39.800 --> 00:25:43.400 +Beautiful. So we've just totally transformed + +00:25:44.840 --> 00:25:46.860 +what we can do with text. + +00:25:46.980 --> 00:25:48.900 +You notice there's no markup here. + +00:25:49.000 --> 00:25:53.440 +And this is working with all of the other + +00:25:53.440 --> 00:25:55.600 +implicit types that we have everywhere in + +00:25:55.600 --> 00:25:57.920 +Emacs. It's only going to match to this kind + +00:25:57.920 --> 00:26:00.560 +of pattern and anywhere else, + +00:26:00.720 --> 00:26:02.820 +you know, it just won't trigger that type. + +00:26:03.460 --> 00:26:06.480 +So lots of power. You just need to get + +00:26:06.480 --> 00:26:07.700 +started with Hyperbole. + +00:26:07.960 --> 00:26:10.860 +There's great documentation both inside the + +00:26:10.860 --> 00:26:12.180 +code and in the manual. + +00:26:12.520 --> 00:26:15.460 +There's a fast demo that you can start with + +00:26:15.520 --> 00:26:17.800 +and there's about 10 different videos. + +00:26:18.260 --> 00:26:21.220 +There'll be 3 presentations on hyperbole here + +00:26:21.560 --> 00:26:25.660 +at the conference, and I hope you've enjoyed + +00:26:25.760 --> 00:26:28.200 +this presentation. I'd love to answer your + +00:26:28.200 --> 00:26:31.200 +questions and get some new users for + +00:26:31.200 --> 00:26:36.040 +Hyperbole. So lastly, I'd like to thank my + +00:26:36.040 --> 00:26:38.040 +co-maintainer, Matt, who's going to speak + +00:26:38.040 --> 00:26:42.040 +later about the extensive test protocols we + +00:26:42.040 --> 00:26:45.920 +have in Hyperbole. Hyperbole works on every + +00:26:46.120 --> 00:26:47.860 +version of Emacs from 27.1 + +00:26:48.480 --> 00:26:52.600 +up, and every operating system and Windows + +00:26:52.600 --> 00:26:56.120 +system that you use. And thanks so much to + +00:26:56.120 --> 00:26:58.680 +the volunteers and the speakers at EmacsConf. + +00:26:59.200 --> 00:27:02.000 +You do a great job, and we're all really + +00:27:02.000 --> 00:27:04.400 +appreciative that you take all the time that + +00:27:04.400 --> 00:27:06.240 +you do to make this happen. + +00:27:06.540 --> 00:27:07.620 +Thank you very much. + +00:27:09.960 --> 00:27:11.400 +[Speaker 1]: And thank you so much Bob. + +00:27:11.400 --> 00:27:14.680 +So I'll let you do the gymnastics to join us + +00:27:14.680 --> 00:27:16.440 +back on BBB and put your webcam. + +00:27:17.020 --> 00:27:18.840 +In the meantime, I'll invite people, + +00:27:19.120 --> 00:27:20.740 +as Sasha told you in the introduction, + +00:27:21.060 --> 00:27:23.600 +to go put your question in the pad. + +00:27:23.600 --> 00:27:25.900 +The link is on the talks page and also on + +00:27:25.900 --> 00:27:28.220 +IRC. So take your time. + +00:27:28.320 --> 00:27:29.900 +We've already got some people who've asked + +00:27:29.900 --> 00:27:33.060 +questions. You can also start joining the + +00:27:33.060 --> 00:27:35.140 +room. Let me just ping Sasha. + +00:27:35.540 --> 00:27:38.440 +Ping to open ID HyperAmp. + +00:27:39.280 --> 00:27:41.120 +So, you'll be able to join us on + +00:27:41.120 --> 00:27:43.260 +BigBlueButton as well to go chat with Bob + +00:27:43.260 --> 00:27:45.020 +more directly. I'm not sure if people have + +00:27:45.020 --> 00:27:46.480 +joined already. Not yet. + +00:27:50.220 --> 00:27:51.060 +So, Bob, what I'll do, + +00:27:51.060 --> 00:27:52.280 +we already have 4 questions. + +00:27:52.280 --> 00:27:54.080 +I'm gonna read them to you and you can take + +00:27:54.080 --> 00:27:54.900 +your time answering them, + +00:27:54.900 --> 00:27:57.340 +but we do have about 7 minutes until we go to + +00:27:57.340 --> 00:27:59.080 +the next talk, so we need to be a little bit + +00:28:00.420 --> 00:28:00.920 +[Speaker 0]: Okay. + +00:27:59.080 --> 00:28:03.260 +[Speaker 1]: chop-chop. All right, so reading the first + +00:28:03.260 --> 00:28:05.460 +questions, and I'm also going to display them + +00:28:05.460 --> 00:28:06.920 +for the stream to see, + +00:28:07.580 --> 00:28:09.740 +do buttons keep their metadata within the + +00:28:09.740 --> 00:28:12.380 +same file? E.g., would I see it if I change + +00:28:12.380 --> 00:28:13.940 +to fundamental mode, for instance? + +00:28:15.820 --> 00:28:19.340 +[Speaker 0]: So all of the things that I was showing you, + +00:28:19.340 --> 00:28:21.300 +implicit buttons have no metadata. + +00:28:21.900 --> 00:28:23.800 +That's the great thing about them, + +00:28:23.800 --> 00:28:27.400 +is you just type them in the buffer and what + +00:28:27.400 --> 00:28:30.020 +you see is all there is to that button and + +00:28:30.020 --> 00:28:33.300 +hyperbole generates all the smarts associated + +00:28:33.320 --> 00:28:35.780 +with them. When you create an explicit + +00:28:35.940 --> 00:28:38.680 +button, which I showed you 1 or 2 examples + +00:28:38.760 --> 00:28:42.720 +of, that metadata is, there is metadata with + +00:28:42.720 --> 00:28:45.860 +that, and that is stored in a separate file + +00:28:45.860 --> 00:28:47.860 +in the same directory called .hypb. + +00:28:49.240 --> 00:28:51.500 +So it's hidden away and it doesn't affect the + +00:28:51.500 --> 00:28:53.700 +format of the buffer that it's in. + +00:28:53.940 --> 00:28:56.540 +So again, what you see is what you get. + +00:28:56.600 --> 00:28:58.740 +You just see the delimiters around the + +00:28:58.740 --> 00:29:01.140 +explicit button and that's it. + +00:29:01.840 --> 00:29:04.500 +So Hyperbole takes care of all that for you. + +00:29:04.860 --> 00:29:08.360 +However, if you embed them into like a mail + +00:29:08.360 --> 00:29:09.440 +message, which you can, + +00:29:09.440 --> 00:29:12.180 +you can mail buttons, then there is a hidden + +00:29:12.180 --> 00:29:14.760 +area at the end of the mail message that + +00:29:14.760 --> 00:29:17.120 +encodes the metadata for the explicit + +00:29:17.120 --> 00:29:17.620 +buttons. + +00:29:19.540 --> 00:29:21.640 +[Speaker 1]: Ok, great. Next question. + +00:29:21.980 --> 00:29:24.560 +Is it possible to link to a file by its ID, + +00:29:24.720 --> 00:29:27.340 +like the node, org ID or some similar unique + +00:29:27.340 --> 00:29:28.120 +string inside? + +00:29:29.380 --> 00:29:32.620 +[Speaker 0]: Yes, In fact, that's 1 of the new features in + +00:29:33.280 --> 00:29:37.800 +9. You just made a return on an ID and it + +00:29:37.800 --> 00:29:40.780 +takes you right to the org node, + +00:29:40.840 --> 00:29:44.880 +works with org Rome and org straight out of + +00:29:44.880 --> 00:29:47.900 +the box. We're looking at ways to make it + +00:29:47.900 --> 00:29:50.040 +easier to just insert those in places, + +00:29:50.040 --> 00:29:52.840 +but since you have word keys that do that + +00:29:52.840 --> 00:29:55.600 +already, you can just insert them in any + +00:29:55.600 --> 00:29:58.360 +documents and Hyperbole will recognize them. + +00:29:58.360 --> 00:30:02.620 +I think In some cases you may need to put ID + +00:30:02.680 --> 00:30:05.400 +colon in front of the ID as well. + +00:30:05.740 --> 00:30:06.920 +Generally it works. + +00:30:08.560 --> 00:30:11.560 +[Speaker 1]: Ok, great. Moving on to the next question. + +00:30:12.120 --> 00:30:13.760 +Regarding the frames example, + +00:30:14.240 --> 00:30:16.320 +any thoughts or considerations for a + +00:30:16.320 --> 00:30:19.020 +transient interface or is this something 1 + +00:30:19.020 --> 00:30:22.280 +could already toggle? Are you familiar with + +00:30:22.280 --> 00:30:23.160 +transient interface? + +00:30:23.560 --> 00:30:26.700 +[Speaker 0]: Yes, we don't use transient because we, + +00:30:26.720 --> 00:30:30.140 +you know, Hyperbole started out in 1991, + +00:30:30.520 --> 00:30:34.300 +though it's had much much work since then so + +00:30:34.300 --> 00:30:37.940 +we predate a lot of newer things in Emacs and + +00:30:37.940 --> 00:30:41.400 +then we just use them as as they Become + +00:30:41.400 --> 00:30:45.480 +useful too hyperbole We think the The mini + +00:30:45.480 --> 00:30:46.720 +buffer menu is pretty good. + +00:30:46.720 --> 00:30:48.780 +We could rewrite stuff in transient, + +00:30:48.900 --> 00:30:51.600 +but we haven't seen the need yet. + +00:30:52.760 --> 00:30:54.960 +Maybe high control, that might be a good + +00:30:54.960 --> 00:30:58.480 +candidate, because there are so many keys in + +00:30:58.480 --> 00:31:00.480 +it. So we'll think about that. + +00:31:00.480 --> 00:31:03.060 +But it would be a while before we got to it. + +00:31:04.780 --> 00:31:07.120 +[Speaker 1]: Right. Moving on to the next question. + +00:31:07.120 --> 00:31:08.760 +Sorry I got really confused because there's a + +00:31:08.760 --> 00:31:10.620 +French salut, you know, + +00:31:10.660 --> 00:31:12.940 +in the text of it. Is someone saying hi to me + +00:31:12.940 --> 00:31:14.380 +or something? All right, + +00:31:14.380 --> 00:31:16.960 +next question. Regarding multi-file search + +00:31:16.960 --> 00:31:22.080 +functionality, why not implement it within + +00:31:22.080 --> 00:31:24.920 +the existing framework of MetaX grep or + +00:31:24.920 --> 00:31:26.180 +similar built-in commands? + +00:31:26.360 --> 00:31:28.620 +Yet another search interface sounds a bit + +00:31:28.620 --> 00:31:29.120 +redundant. + +00:31:30.920 --> 00:31:34.120 +[Speaker 0]: Multi-file search, so HiRolo I guess you're + +00:31:34.120 --> 00:31:36.380 +talking about. I think what you missed there + +00:31:36.380 --> 00:31:39.440 +is that High Rollo matches to records, + +00:31:40.080 --> 00:31:42.860 +multi-line records, so it's not a + +00:31:42.860 --> 00:31:45.360 +line-oriented match, it's a record-oriented + +00:31:45.820 --> 00:31:50.760 +match. So Grep, you can say maybe give me 3 + +00:31:50.760 --> 00:31:52.960 +lines of context, but what if I have a + +00:31:52.960 --> 00:31:56.100 +20-line record? I want to see the whole + +00:31:56.100 --> 00:31:59.060 +thing. And so, it's a full-text search + +00:31:59.060 --> 00:32:03.480 +interface, which lets you have any size + +00:32:04.220 --> 00:32:07.260 +entries or nodes in the match buffer. + +00:32:07.540 --> 00:32:10.760 +So that's 1 reason. MADAX grep works with + +00:32:10.760 --> 00:32:13.260 +hyperbole. I mean, you use it if you want and + +00:32:13.260 --> 00:32:16.080 +then you can hit MADA return on grep lines. + +00:32:16.480 --> 00:32:20.140 +So we basically take everything from POSIX + +00:32:20.320 --> 00:32:24.920 +and everything in Emacs and we try to make a + +00:32:24.920 --> 00:32:26.680 +lot of it simpler to use. + +00:32:26.680 --> 00:32:28.960 +We don't take away any of the functionality, + +00:32:29.480 --> 00:32:31.040 +we just augment it. + +00:32:32.780 --> 00:32:35.200 +[Speaker 1]: Right, and I think that's the logic for a lot + +00:32:35.200 --> 00:32:36.300 +of the packages, you know, + +00:32:36.300 --> 00:32:38.440 +the philosophy is just you create your little + +00:32:38.440 --> 00:32:40.280 +bit, your little island where you do your + +00:32:40.280 --> 00:32:42.160 +stuff. And if you can resonate with other + +00:32:42.160 --> 00:32:43.280 +islands so much the better. + +00:32:43.280 --> 00:32:45.600 +And it feels like between those islands, + +00:32:45.700 --> 00:32:48.380 +you know, hyperbole is a great way to connect + +00:32:48.380 --> 00:32:49.980 +things that are just text. + +00:32:50.140 --> 00:32:51.880 +So it's always been a lovely philosophy. + +00:32:52.200 --> 00:32:53.620 +There's always been a lovely philosophy + +00:32:53.620 --> 00:32:54.360 +behind it. + +00:32:55.240 --> 00:32:58.200 +[Speaker 0]: 1 other point I'd make there is that the + +00:32:58.200 --> 00:33:01.460 +Hyrolo also contains logical search + +00:33:01.460 --> 00:33:04.940 +operators. So when I typed in that string you + +00:33:04.940 --> 00:33:07.360 +could just as well type with like Lisp + +00:33:07.360 --> 00:33:09.140 +expressions, semi Lisp expressions. + +00:33:09.480 --> 00:33:13.460 +You can say open paren and word 1, + +00:33:13.940 --> 00:33:17.240 +word 2, close paren. You know you can have or + +00:33:17.240 --> 00:33:22.360 +and XOR and not and it'll do the search and + +00:33:22.360 --> 00:33:24.260 +just retrieve the entries, + +00:33:24.720 --> 00:33:27.620 +again, multi-line entries that match all of + +00:33:27.620 --> 00:33:29.660 +the criteria that you specified there. + +00:33:29.760 --> 00:33:31.120 +So that's fairly unique, + +00:33:31.120 --> 00:33:33.320 +I think. So you basically got a full text + +00:33:33.320 --> 00:33:35.840 +search platform with logical operators, + +00:33:36.380 --> 00:33:38.580 +instantly, you know, fast moving, + +00:33:38.680 --> 00:33:42.720 +rapid keys that you can control everything + +00:33:42.720 --> 00:33:45.280 +with and it's all integrated into this larger + +00:33:45.280 --> 00:33:45.780 +framework. + +00:33:47.780 --> 00:33:49.060 +[Speaker 1]: Okay, great. Well, Bob, + +00:33:49.060 --> 00:33:50.520 +you have 2 more questions, + +00:33:50.820 --> 00:33:53.760 +but there's a big 1 about what inspired you + +00:33:53.760 --> 00:33:56.440 +to write it back. It's being hyperbole around + +00:33:56.440 --> 00:33:57.360 +the time of its birth, + +00:33:57.360 --> 00:33:59.680 +but sadly, we only have about 1 more minute. + +00:34:00.040 --> 00:34:01.320 +So what I'm going to ask you to do, + +00:34:01.320 --> 00:34:02.780 +feel free to answer the question. + +00:34:02.800 --> 00:34:05.220 +If you go on BBB, I've pasted the link to the + +00:34:05.220 --> 00:34:06.980 +other pad. I think you can see it on your + +00:34:08.420 --> 00:34:11.020 +[Speaker 0]: I have the ether pad up. + +00:34:06.980 --> 00:34:11.820 +[Speaker 1]: computer as well. Right, + +00:34:11.820 --> 00:34:13.100 +so what are we going to do? + +00:34:14.860 --> 00:34:16.679 +I'm Sorry, I'm just a little bit pressed by + +00:34:16.679 --> 00:34:18.280 +time because it's not me controlling when we + +00:34:18.280 --> 00:34:19.340 +move on to the next talk, + +00:34:19.340 --> 00:34:21.679 +as was evidenced yesterday when we got yonked + +00:34:21.719 --> 00:34:24.000 +to the next talk. So Bob, + +00:34:24.000 --> 00:34:25.679 +feel free to take all the time you want to + +00:34:25.679 --> 00:34:26.580 +answer questions. People, + +00:34:26.580 --> 00:34:28.360 +if you wanna join the Big Blue Button room, + +00:34:28.360 --> 00:34:30.239 +the links are available and open on the talk + +00:34:30.239 --> 00:34:31.960 +page. You can join and ask as many questions + +00:34:31.960 --> 00:34:33.679 +as you want to Bob. And for us, + +00:34:33.679 --> 00:34:35.560 +with a live stream, we'll be moving on to the + +00:34:35.560 --> 00:34:37.280 +next talk in about 30 seconds. + +00:34:37.280 --> 00:34:39.400 +So Bob, all that's left is for me to thank + +00:34:39.400 --> 00:34:41.580 +you for your presentation again this year and + +00:34:43.520 --> 00:34:44.560 +[Speaker 0]: Thank you, Leo. + +00:34:41.580 --> 00:34:45.820 +[Speaker 1]: for all your answers. All right. + +00:34:45.820 --> 00:34:47.699 +Bye bye, Bob. And we'll be moving on to the + +00:34:47.699 --> 00:34:49.080 +next talk in about 10 seconds. + +00:34:49.080 --> 00:34:53.800 +See you in a bit. All right, + +00:34:53.800 --> 00:34:56.139 +Bob, we are off air I think now. + +00:34:56.139 --> 00:34:57.720 +Thank you so much. I need to get moving for + +00:34:59.320 --> 00:35:02.320 +[Speaker 0]: Okay, is somebody gonna keep writing answers + +00:35:02.500 --> 00:35:04.540 +in here or I need to type them in? + +00:34:57.720 --> 00:35:06.260 +[Speaker 1]: the next talk. It's probably best now if you + +00:35:06.260 --> 00:35:09.440 +read the questions on your own and answer + +00:35:09.440 --> 00:35:11.040 +them. We'll collate everything together, + +00:35:11.040 --> 00:35:12.480 +we'd just like to have your answers. + +00:35:15.060 --> 00:35:17.180 +[Speaker 0]: I hope some people will join the BBB. + +00:35:19.000 --> 00:35:21.380 +[Speaker 1]: it in my... All right, + +00:35:21.380 --> 00:35:21.880 +bye-bye. + +00:35:17.780 --> 00:35:23.300 +[Speaker 0]: But I'll start. I'll put Bye-bye. + +00:35:24.220 --> 00:35:28.580 +So let me take a second here to see what + +00:35:28.580 --> 00:35:32.980 +questions we have. Did we cover that? + +00:35:36.240 --> 00:35:42.900 +OK. The point is why not upstream search + +00:35:42.980 --> 00:35:46.580 +interface? Could you clarify that question? + +00:35:46.840 --> 00:35:51.380 +I don't quite know what that means. + +00:35:51.380 --> 00:35:53.760 +So I'll go on to the next 1 and come back to + +00:35:53.760 --> 00:35:57.680 +that. Hyperlinks been around for a number of + +00:35:57.680 --> 00:35:59.820 +years now. What inspired you to write it back + +00:35:59.820 --> 00:36:01.500 +around the time of its birth? + +00:36:01.800 --> 00:36:03.140 +Well, that's a great question. + +00:36:04.700 --> 00:36:07.360 +It was born before the World Wide Web, + +00:36:07.360 --> 00:36:09.300 +actually. And it was right before. + +00:36:10.120 --> 00:36:13.100 +I remember we were in the midst of a version + +00:36:13.840 --> 00:36:16.300 +when the first version of the web occurred. + +00:36:16.560 --> 00:36:19.840 +And I was thinking that there was going to be + +00:36:19.840 --> 00:36:22.700 +an information explosion of unstructured + +00:36:22.960 --> 00:36:27.140 +information. And like we needed to have much + +00:36:27.140 --> 00:36:30.920 +better tools to be able to manage say like + +00:36:30.920 --> 00:36:36.740 +5,000 email messages coming in and all sorts + +00:36:36.740 --> 00:36:39.260 +of non-database-oriented information + +00:36:39.480 --> 00:36:42.020 +structures. So I said we need an advanced + +00:36:42.180 --> 00:36:46.080 +interactive hypertext system and it needs to + +00:36:46.080 --> 00:36:49.320 +work with all the general capabilities that + +00:36:49.320 --> 00:36:54.100 +we use like email and our document production + +00:36:54.240 --> 00:36:58.500 +systems. So I was doing research at the time + +00:36:58.500 --> 00:37:04.200 +at a university And I decided to work on + +00:37:04.200 --> 00:37:06.140 +something that we called personalized + +00:37:06.420 --> 00:37:07.520 +information environments. + +00:37:07.900 --> 00:37:10.120 +And there's a paper about this out there if + +00:37:10.120 --> 00:37:12.040 +you want to dig it out on the web. + +00:37:12.900 --> 00:37:15.360 +So Pies, as they were called, + +00:37:16.320 --> 00:37:20.040 +was an architecture which would have a bunch + +00:37:20.040 --> 00:37:24.100 +of managers, like Hyperbole was 1 of the + +00:37:24.100 --> 00:37:25.820 +managers, the hypertext manager, + +00:37:26.520 --> 00:37:29.440 +and then a bunch of point tools that would + +00:37:29.440 --> 00:37:30.720 +leverage the managers, + +00:37:30.800 --> 00:37:33.580 +like an email reader would be a point tool + +00:37:33.680 --> 00:37:36.140 +that would leverage the hypertext manager. + +00:37:36.780 --> 00:37:39.480 +And so the first, I did in fact write + +00:37:39.480 --> 00:37:40.520 +something called PyMail, + +00:37:41.460 --> 00:37:43.840 +which was very much Gmail-like, + +00:37:44.660 --> 00:37:47.640 +before Gmail. And so inside, + +00:37:48.100 --> 00:37:51.300 +and I did a, it was like our mail in a way, + +00:37:51.680 --> 00:37:54.020 +but inside your our mail summaries, + +00:37:54.100 --> 00:37:57.180 +for example, you could have explicit buttons + +00:37:57.180 --> 00:38:01.120 +embedded and that were drawn from the subject + +00:38:01.120 --> 00:38:02.300 +of your email message, + +00:38:02.400 --> 00:38:06.180 +and they'd work just like the regular button. + +00:38:06.300 --> 00:38:07.540 +So it was very flexible, + +00:38:07.700 --> 00:38:11.660 +and it had rule-based processing and things. + +00:38:11.820 --> 00:38:13.520 +So Hyperbole came out of that, + +00:38:13.520 --> 00:38:15.040 +and it's come a long way, + +00:38:15.200 --> 00:38:20.360 +but it's still a very useful core hypertext + +00:38:20.480 --> 00:38:22.040 +system, hypermedia system, + +00:38:22.040 --> 00:38:26.580 +I should say. Are you familiar with the + +00:38:26.580 --> 00:38:28.780 +Embark package? I am a bit. + +00:38:28.820 --> 00:38:30.520 +I've just started using it. + +00:38:30.520 --> 00:38:31.900 +I think there's some overlapping + +00:38:32.040 --> 00:38:34.200 +functionality with hyperbole. + +00:38:34.340 --> 00:38:39.360 +Yes, we've found that people over time have + +00:38:39.360 --> 00:38:41.600 +enjoyed hyperbole and have started + +00:38:41.600 --> 00:38:43.940 +replicating some of its features, + +00:38:43.940 --> 00:38:45.880 +you know, small amounts of the features. + +00:38:47.680 --> 00:38:51.340 +I talked to, I hope I don't miss his name, + +00:38:51.340 --> 00:38:56.000 +but O'Adam who writes that once in a while we + +00:38:56.000 --> 00:38:59.480 +dialogue and I think Embark is great, + +00:38:59.480 --> 00:39:04.500 +you know, I'll give him some pointers too and + +00:39:04.500 --> 00:39:08.040 +he thinks that Embark and hyperbole are quite + +00:39:08.040 --> 00:39:10.740 +compatible too, just like organ hyperbole. + +00:39:11.120 --> 00:39:13.080 +So that's how we like to keep it. + +00:39:14.540 --> 00:39:18.160 +Some people prefer just a small package of + +00:39:18.160 --> 00:39:21.100 +mBARC, and it does different things than what + +00:39:21.100 --> 00:39:23.800 +Hyperbole does. So I think you use all of + +00:39:23.800 --> 00:39:27.540 +these tools together, and they can work very + +00:39:27.540 --> 00:39:33.960 +well together. Any other questions? + +00:39:34.280 --> 00:39:38.300 +Anybody still here? If not, + +00:39:38.440 --> 00:39:41.180 +probably people are off to another talk. + +00:39:41.940 --> 00:39:47.160 +So thank you very much And again look for + +00:39:47.160 --> 00:39:51.840 +Hyperbole version 9 in the next week. + +00:39:53.740 --> 00:39:56.880 +Thanks very much. Bye. + +00:40:00.620 --> 00:40:07.120 +Should I leave BBB? Oh Alpha Papa's here. + +00:40:07.120 --> 00:40:16.040 +Hey. Good to see you. Alright, + +00:40:16.040 --> 00:40:22.740 +well... Well, I'll stay for another minute, + +00:40:22.820 --> 00:40:27.280 +but I think I'm going to go off video 2 and + +00:40:27.280 --> 00:40:29.780 +start listening to another talk. + +00:40:30.660 --> 00:40:31.480 +Thanks, everyone. Thanks everyone. + +00:40:56.040 --> 00:40:56.960 +Yes, I can hear you. Yes, + +00:40:58.860 --> 00:41:00.060 +[Speaker 1]: Have you been answering questions? + +00:40:56.960 --> 00:41:03.700 +[Speaker 0]: I can hear you. finished answering the + +00:41:03.700 --> 00:41:05.200 +questions. We're all done. + +00:41:00.060 --> 00:41:07.360 +[Speaker 1]: I Okay, cool. Well, what I'm going to do, + +00:41:07.360 --> 00:41:09.140 +I'm going to close the room unless you want + +00:41:09.140 --> 00:41:10.140 +to go a little longer, + +00:41:10.140 --> 00:41:11.880 +because this talk that we're playing right + +00:41:11.880 --> 00:41:13.940 +now is finishing really quick and we don't + +00:41:13.940 --> 00:41:15.140 +have a Q&A afterwards. + +00:41:15.300 --> 00:41:19.040 +So, do you want to stay on air or something? + +00:41:19.440 --> 00:41:21.680 +[Speaker 0]: Yeah, if you let people know to come back, + +00:41:21.680 --> 00:41:23.320 +because someone went to go hear that + +00:41:23.320 --> 00:41:24.900 +presentation, I can stay. + +00:41:25.920 --> 00:41:27.880 +[Speaker 1]: Sure, I'll make an announcement then. + +00:41:27.880 --> 00:41:29.680 +And you can stay, we'll just put on BBB. + +00:41:29.680 --> 00:41:31.840 +You can stay muted until people join, + +00:41:31.840 --> 00:41:33.840 +but this way it opens up menus for people to + +00:41:33.840 --> 00:41:36.060 +join and if no 1 shows up in 5 minutes we'll + +00:41:36.060 --> 00:41:38.080 +all go on break. Does that sound okay? + +00:41:38.680 --> 00:41:40.020 +[Speaker 0]: Great, thank you. + +00:41:40.520 --> 00:41:44.340 +[Speaker 1]: Cool, I'll go back to the management in the + +00:41:44.340 --> 00:41:45.660 +background and I'll let you know. + +00:43:25.760 --> 00:43:27.540 +Okay, Bob, I've won the stream. + +00:43:27.660 --> 00:43:28.940 +We are joining it now. + +00:43:28.940 --> 00:43:30.380 +We've got about 5 seconds. + +00:43:41.940 --> 00:43:43.580 +And I think we are back. + +00:43:49.240 --> 00:43:51.300 +so we are gone, Bob, please. + +00:43:45.340 --> 00:43:53.260 +[Speaker 0]: Hi. So, yeah, I was going to say, + +00:43:54.100 --> 00:43:57.160 +can we see if anybody comes back in the room? + +00:43:57.160 --> 00:43:58.120 +How do you tell? + +00:44:01.380 --> 00:44:03.740 +[Speaker 1]: You should be able to show on the left, + +00:44:03.740 --> 00:44:04.920 +you've got on BbBlueButton, + +00:44:04.920 --> 00:44:06.380 +you've got a button, I'm showing it on the + +00:44:06.380 --> 00:44:08.440 +screen, but you've got a little button that + +00:44:08.440 --> 00:44:10.420 +allows you to show the people joining. + +00:44:10.840 --> 00:44:15.380 +So, hello everyone. Let's see if you had more + +00:44:15.380 --> 00:44:17.080 +question on your pad that we could be taking + +00:44:17.080 --> 00:44:19.040 +in the meantime, just give me a second to + +00:44:19.040 --> 00:44:19.240 +find + +00:44:19.240 --> 00:44:23.500 +[Speaker 0]: your pad. Here we go, an error occurred. + +00:44:31.820 --> 00:44:33.220 +[Speaker 1]: All right, it's loading up. + +00:44:25.680 --> 00:44:37.840 +[Speaker 0]: Okay. Wow. Feels like there's an AI writing + +00:44:37.960 --> 00:44:39.760 +this stuff on the pad. + +00:44:41.120 --> 00:44:44.740 +Has it? Is this the last pad? + +00:44:45.600 --> 00:44:47.080 +Oh no, this is a different 1, + +00:44:49.840 --> 00:44:51.520 +[Speaker 1]: Which question are you looking at now? + +00:44:47.080 --> 00:44:53.820 +[Speaker 0]: sorry. It was a different pad, + +00:44:55.840 --> 00:44:56.460 +[Speaker 1]: Oh right. + +00:44:53.820 --> 00:44:57.109 +[Speaker 0]: that was the problem. Okay, + +00:44:57.260 --> 00:44:59.540 +here we go. Okay, I'm back. + +00:45:00.540 --> 00:45:01.860 +So, yeah, it looks like... + +00:45:02.260 --> 00:45:03.980 +Is anybody back? Send, + +00:45:04.120 --> 00:45:07.180 +if you're here, send a chat message. + +00:45:08.520 --> 00:45:10.020 +[Speaker 1]: Yeah, because it's been something. + +00:45:10.640 --> 00:45:14.240 +You have, apparently, whenever we leave those + +00:45:14.320 --> 00:45:18.220 +BBB chat room open, the moment we go off air, + +00:45:18.260 --> 00:45:20.280 +people start joining and asking a lot of very + +00:45:20.280 --> 00:45:22.200 +interesting questions and you know that's all + +00:45:22.200 --> 00:45:24.280 +well and good, we'll be able to put them on + +00:45:24.280 --> 00:45:26.280 +the page later on. But it'd be great if you + +00:45:26.280 --> 00:45:28.260 +could also have those discussions when we are + +00:45:28.260 --> 00:45:30.140 +live because a lot of people would benefit + +00:45:30.140 --> 00:45:32.120 +from the brilliance that goes on in this + +00:45:32.120 --> 00:45:34.740 +room. So please don't be shy, + +00:45:37.340 --> 00:45:39.900 +[Speaker 0]: So we're on the general stream now? + +00:45:34.740 --> 00:45:41.780 +[Speaker 1]: join and talk. Yep, we are back on the + +00:45:41.780 --> 00:45:46.080 +general stream. We have about until 10 of the + +00:45:46.080 --> 00:45:48.180 +next hour, which is 19 minutes. + +00:45:48.760 --> 00:45:52.540 +[Speaker 0]: Just- Why don't you and I talk? + +00:45:52.540 --> 00:45:56.180 +So have you ever tried hyperbole, + +00:45:56.400 --> 00:45:56.900 +Leo? + +00:45:58.180 --> 00:46:00.220 +[Speaker 1]: I have never, but You know, + +00:46:00.220 --> 00:46:03.380 +it feels like every year when you present + +00:46:03.380 --> 00:46:05.140 +something, it feels like I already know so + +00:46:05.140 --> 00:46:07.580 +much. Because of the buttons, + +00:46:08.040 --> 00:46:10.080 +it feels like it's also something that we've + +00:46:10.080 --> 00:46:12.440 +reinvented many times in Emacs. + +00:46:12.440 --> 00:46:13.940 +It's like conversion to evolution, + +00:46:14.020 --> 00:46:16.540 +except you're the 1 who started ahead of + +00:46:16.540 --> 00:46:17.420 +everyone else. + +00:46:17.860 --> 00:46:19.700 +[Speaker 0]: Well, that's a good point because, + +00:46:19.940 --> 00:46:23.200 +you know, we have, Emacs itself has push + +00:46:23.200 --> 00:46:25.520 +buttons, which you see like in the help + +00:46:25.520 --> 00:46:27.540 +buffers. And those used to, + +00:46:27.540 --> 00:46:29.840 +we didn't really do anything with those, + +00:46:30.040 --> 00:46:32.780 +but now we've subsumed them as implicit + +00:46:32.800 --> 00:46:35.340 +buttons as well. So you're made a return, + +00:46:35.580 --> 00:46:38.500 +we'll work on those anywhere too. + +00:46:38.740 --> 00:46:41.820 +So, we're trying to get, + +00:46:42.260 --> 00:46:45.920 +you use 1 key, right? To control every type + +00:46:45.920 --> 00:46:47.080 +of button that you have. + +00:46:47.080 --> 00:46:48.420 +It works on org links, + +00:46:48.560 --> 00:46:51.800 +org buttons anywhere, or URLs. + +00:46:53.240 --> 00:46:54.440 +Because it's so simple. + +00:46:54.520 --> 00:46:58.820 +All you need is like 5 to 10 lines of code to + +00:46:58.820 --> 00:47:02.760 +map. You map the pattern that represents a + +00:47:02.760 --> 00:47:05.080 +concept, right? And then you can create an + +00:47:05.080 --> 00:47:07.720 +infinite number of those buttons from that + +00:47:07.720 --> 00:47:09.520 +type. That's what's really cool about + +00:47:09.520 --> 00:47:13.060 +Hyperbole, is say I have a 500 page document + +00:47:13.280 --> 00:47:15.600 +and it uses a really weird format for + +00:47:15.600 --> 00:47:17.060 +cross-referencing, right? + +00:47:17.220 --> 00:47:22.320 +I write my 3 lines of pattern match to work + +00:47:22.320 --> 00:47:24.200 +with that. And then everywhere throughout + +00:47:24.200 --> 00:47:25.960 +that document and the hundreds of other + +00:47:25.960 --> 00:47:27.680 +documents that will be created with that + +00:47:27.680 --> 00:47:30.900 +format, they're all live buttons instantly. + +00:47:31.280 --> 00:47:33.240 +Nothing changed about the document. + +00:47:34.220 --> 00:47:35.500 +That's really cool. You know, + +00:47:35.500 --> 00:47:37.860 +word mode, we have global word buttons, + +00:47:37.940 --> 00:47:42.040 +but mostly it has to be embedded within an + +00:47:42.040 --> 00:47:44.760 +org file, right? And follow that syntax. + +00:47:45.580 --> 00:47:51.900 +With hyperbole, it's like we can adapt as the + +00:47:51.900 --> 00:47:55.300 +world adapts around us to whatever formats + +00:47:55.320 --> 00:47:56.940 +people want to use that day. + +00:47:56.940 --> 00:47:59.380 +And you can even change things to look the + +00:47:59.380 --> 00:48:02.200 +way you want, right, and have your own + +00:48:02.440 --> 00:48:04.860 +cross-references. There's something built + +00:48:04.860 --> 00:48:07.560 +into Hyperbole that's not really active, + +00:48:08.220 --> 00:48:13.120 +which was sort of along the Zettelkasten way. + +00:48:13.780 --> 00:48:15.440 +We wrote this a long time ago. + +00:48:15.440 --> 00:48:16.960 +It's called hib-doc.el, + +00:48:19.120 --> 00:48:22.200 +and it's a card catalog notion. + +00:48:22.200 --> 00:48:25.820 +So it uses the high rollo in the background + +00:48:26.160 --> 00:48:30.180 +but it lets you create these forms that are + +00:48:30.180 --> 00:48:32.800 +cards that you fill out with whatever kind of + +00:48:32.800 --> 00:48:35.360 +data you want and then it gives you the full + +00:48:35.360 --> 00:48:38.520 +text searching across the cards and each card + +00:48:38.520 --> 00:48:41.760 +has a unique ID that you can reference + +00:48:41.820 --> 00:48:45.240 +similar to org IDs but these are human + +00:48:45.240 --> 00:48:49.860 +readable and human typable and so you can you + +00:48:49.860 --> 00:48:52.940 +can just have a cross-reference to any doc ID + +00:48:52.960 --> 00:48:56.100 +and essentially create what Engelbart used to + +00:48:56.100 --> 00:49:00.520 +call a journal, which is all these IDs on + +00:49:00.520 --> 00:49:03.220 +documents that point you directly to the + +00:49:03.220 --> 00:49:05.640 +document archive so that you could have like + +00:49:05.640 --> 00:49:10.020 +your internal publishing system and you know + +00:49:10.020 --> 00:49:12.940 +it's very simple to do and it's just 1 module + +00:49:13.420 --> 00:49:14.660 +added on to Hyperbole. + +00:49:15.920 --> 00:49:19.140 +[Speaker 1]: Yeah it's especially interesting for me you + +00:49:19.140 --> 00:49:21.140 +know because coming back to the side of + +00:49:21.140 --> 00:49:23.400 +convergent evolutions it's funny because the + +00:49:23.400 --> 00:49:24.880 +parameters are a little different. + +00:49:24.920 --> 00:49:26.260 +For us with org buttons, + +00:49:26.260 --> 00:49:29.340 +we're very happy. A lot of the stuff during + +00:49:29.340 --> 00:49:31.360 +EmacsConf is run with org mode, + +00:49:31.360 --> 00:49:34.340 +like we have Elisp going everywhere to + +00:49:34.540 --> 00:49:37.320 +compile a lot of org properties, + +00:49:38.080 --> 00:49:39.640 +like speaker information, + +00:49:39.660 --> 00:49:41.480 +for instance, how long the talk is, + +00:49:41.480 --> 00:49:42.800 +the title, and all this. + +00:49:42.800 --> 00:49:44.760 +We have all of this in an org file, + +00:49:44.760 --> 00:49:46.020 +which we use as a database, + +00:49:46.220 --> 00:49:47.800 +but then we can do so much stuff. + +00:49:47.800 --> 00:49:50.740 +We can send email and we can update the + +00:49:50.740 --> 00:49:52.200 +schedule. By the way, if you're interested in + +00:49:52.200 --> 00:49:54.280 +this, we'll have a talk on the DevTrack in + +00:49:54.280 --> 00:49:56.640 +the afternoon today that Sacha did and it's + +00:49:56.640 --> 00:49:58.140 +wonderful. I'm just teasing it. + +00:49:58.140 --> 00:49:59.040 +[Speaker 0]: Oh, that's great. + +00:50:00.060 --> 00:50:01.140 +[Speaker 1]: But coming back to Hyperbole, + +00:50:01.640 --> 00:50:04.000 +for you, it feels like the parameters were + +00:50:04.000 --> 00:50:06.560 +slightly different because the feeling was, + +00:50:06.560 --> 00:50:09.020 +I just want a tunnel that can work between + +00:50:09.020 --> 00:50:10.440 +any type of files. Now, + +00:50:10.440 --> 00:50:11.740 +it's all well and good. + +00:50:11.740 --> 00:50:14.540 +Org-Rome, D-Note, and all the stuff like + +00:50:14.540 --> 00:50:16.860 +this, they create bidirectional links. + +00:50:17.080 --> 00:50:19.540 +But it's only between org-mode files. + +00:50:19.840 --> 00:50:22.040 +Whereas what you're achieving with Hyperbole, + +00:50:22.260 --> 00:50:24.720 +and you've done it much earlier than everyone + +00:50:24.720 --> 00:50:27.420 +else, is that you have this concept + +00:50:27.660 --> 00:50:29.440 +regardless of the type of file that you're + +00:50:29.440 --> 00:50:32.520 +using. And I find this to be beautiful. + +00:50:32.900 --> 00:50:35.280 +Like 5 years ago, whenever you were talking + +00:50:35.280 --> 00:50:37.280 +about hyperbole, I did not have a concrete + +00:50:37.280 --> 00:50:38.540 +idea of what was happening. + +00:50:38.640 --> 00:50:40.360 +But ever since I've gone through the journey + +00:50:40.360 --> 00:50:42.380 +of really understanding what the El Caster + +00:50:42.380 --> 00:50:45.000 +method were about, it feels like you were + +00:50:45.720 --> 00:50:46.980 +foreigners in the topic. + +00:50:46.980 --> 00:50:48.540 +Obviously, you've mentioned the mother of all + +00:50:48.540 --> 00:50:50.240 +demos by Edward Engelbart, + +00:50:50.740 --> 00:50:54.100 +but those ideas are not novel, + +00:50:54.340 --> 00:50:56.820 +but it feels like only now are they starting + +00:50:56.820 --> 00:50:58.520 +to be appropriated by people, + +00:50:58.520 --> 00:50:59.800 +especially in free software, + +00:50:59.800 --> 00:51:01.200 +and it's really good to see. + +00:51:01.280 --> 00:51:02.440 +I'm really excited to, + +00:51:02.440 --> 00:51:04.600 +well, have my small part to play in this. + +00:51:04.600 --> 00:51:06.980 +And I'm also excited to be able to chat with + +00:51:06.980 --> 00:51:10.140 +you and people like Bastien and other people + +00:51:10.240 --> 00:51:11.400 +about all those topics. + +00:51:12.340 --> 00:51:13.780 +[Speaker 0]: Yeah, I think, you know, + +00:51:13.940 --> 00:51:16.640 +it's fun that we can laugh now about when + +00:51:16.640 --> 00:51:20.020 +people say people are still using Emacs, + +00:51:20.020 --> 00:51:22.800 +you know, is because they're not used, + +00:51:22.800 --> 00:51:24.160 +certain people aren't using it. + +00:51:24.160 --> 00:51:26.880 +They have no idea of how far it's come and + +00:51:26.880 --> 00:51:28.720 +how powerful it is. And, + +00:51:28.780 --> 00:51:31.520 +you know, we're leveraging Elisp heavily, + +00:51:31.560 --> 00:51:33.940 +obviously, but if you look at the definition + +00:51:34.300 --> 00:51:37.800 +of our types, they look exactly like DIP + +00:51:37.800 --> 00:51:41.180 +funds in ELisp. And we've been able to do + +00:51:41.180 --> 00:51:42.780 +that because of Lisp macros. + +00:51:43.860 --> 00:51:46.400 +You know, we so we basically have our own + +00:51:46.400 --> 00:51:48.300 +domain specific language there, + +00:51:48.420 --> 00:51:51.240 +but there's almost nothing to learn because + +00:51:51.340 --> 00:51:53.460 +it's just like what you know from UList. + +00:51:54.200 --> 00:51:57.120 +So again, you know, taking the concept and + +00:51:57.120 --> 00:51:59.700 +leveraging it, abstracting it and leveraging + +00:51:59.760 --> 00:52:02.980 +it multiple times gives you a lot of power. + +00:52:03.660 --> 00:52:06.060 +And people, you know, somebody said the other + +00:52:06.060 --> 00:52:07.500 +day, and I said, finally, + +00:52:07.760 --> 00:52:10.360 +this quote happened. He said, + +00:52:11.000 --> 00:52:15.060 +there's so many things that I do with + +00:52:15.060 --> 00:52:17.200 +hyperbole every day that I forget that I'm + +00:52:17.200 --> 00:52:21.440 +using hyperbole. Because it's just so + +00:52:21.440 --> 00:52:23.580 +embedded in this guy's workflow. + +00:52:23.680 --> 00:52:25.440 +And that's really how I use it. + +00:52:25.440 --> 00:52:27.380 +You know, there are features in there, + +00:52:27.440 --> 00:52:29.060 +can't use everything, right? + +00:52:29.060 --> 00:52:31.860 +So there are features that I don't use, + +00:52:32.040 --> 00:52:35.580 +but I use a lot of things and it's all like + +00:52:35.580 --> 00:52:37.580 +muscle memory, just like the keyboard, + +00:52:38.200 --> 00:52:39.740 +the Emacs key bindings. + +00:52:39.960 --> 00:52:42.180 +So it's very exciting to get to that level. + +00:52:42.180 --> 00:52:44.320 +And now, you know, we haven't started with + +00:52:44.320 --> 00:52:46.940 +the chatbots or any of the AI integration, + +00:52:47.300 --> 00:52:49.480 +but I'm starting to think about that a little + +00:52:49.480 --> 00:52:53.480 +bit and how we'll interface to that world and + +00:52:53.480 --> 00:52:55.320 +I think it's going to be very exciting. + +00:52:56.040 --> 00:52:58.340 +[Speaker 1]: Yeah, likewise and I think it harks back to + +00:52:58.340 --> 00:53:00.660 +what we were talking about before when we + +00:53:00.660 --> 00:53:03.700 +mentioned Hyperbole being a package inside of + +00:53:03.700 --> 00:53:05.300 +an ecosystem that is Emacs. + +00:53:05.860 --> 00:53:08.040 +But it's not because something is well + +00:53:08.040 --> 00:53:10.560 +circumscribed in terms of feature set that it + +00:53:10.560 --> 00:53:12.880 +does not influence everything around it. + +00:53:12.880 --> 00:53:15.060 +Like Hyperbole can be used with something + +00:53:15.060 --> 00:53:18.080 +completely at the opposite end of what it was + +00:53:18.080 --> 00:53:21.380 +intended for, just because it provides a good + +00:53:21.380 --> 00:53:23.860 +set of tools that can be used wherever else + +00:53:23.860 --> 00:53:26.100 +you want in Emacs. And it's the same thing + +00:53:26.100 --> 00:53:27.980 +with Org Mode, it's the same thing with many, + +00:53:27.980 --> 00:53:29.280 +many different things. + +00:53:29.440 --> 00:53:32.820 +And it feels like integrating AIs, + +00:53:33.400 --> 00:53:36.920 +or generative AIs, into Emacs would provide + +00:53:39.620 --> 00:53:42.340 +such a tool that could apply to any kind of + +00:53:42.340 --> 00:53:45.060 +other major mode or any kind of other use. + +00:53:45.060 --> 00:53:46.640 +So I'm also excited to see this. + +00:53:46.640 --> 00:53:50.280 +It feels like we are sitting at the brink of + +00:53:50.280 --> 00:53:52.580 +a revolution. I'm not going to say the acne + +00:53:52.580 --> 00:53:54.440 +stuff, but it definitely feels like right + +00:53:54.440 --> 00:53:57.560 +now, by trying to see what we can do with AI, + +00:53:57.560 --> 00:53:59.380 +it's definitely going to change the way not + +00:53:59.380 --> 00:54:01.560 +only we program, but also the way we take + +00:54:01.560 --> 00:54:03.160 +notes and the way we design stuff, + +00:54:03.160 --> 00:54:05.220 +arcing back to what John Wigley said + +00:54:05.220 --> 00:54:08.660 +yesterday about his draft program on macOS. + +00:54:09.800 --> 00:54:10.940 +Bob, if you don't mind, + +00:54:11.040 --> 00:54:13.100 +I see people typing questions and I also see + +00:54:13.100 --> 00:54:14.820 +people joining on people buttons, + +00:54:14.820 --> 00:54:16.920 +so I'm going to read you the 2 questions that + +00:54:16.920 --> 00:54:18.260 +have been added. Is that okay? + +00:54:19.200 --> 00:54:20.580 +[Speaker 0]: Great, go for it. + +00:54:21.240 --> 00:54:23.140 +[Speaker 1]: Cool, so first question. + +00:54:23.320 --> 00:54:25.240 +Wow, what you're describing now, + +00:54:25.240 --> 00:54:27.520 +and that's when you were talking about the + +00:54:27.520 --> 00:54:31.840 +bi-directional links and especially the last + +00:54:31.840 --> 00:54:33.080 +question in its entirety, + +00:54:33.540 --> 00:54:35.440 +What you're describing now reminds me a lot + +00:54:35.440 --> 00:54:37.440 +about HyperCard that I grew up on. + +00:54:37.440 --> 00:54:39.220 +Do you know if Hyperbole inspired Bill + +00:54:39.220 --> 00:54:41.040 +Atkinson or if you were inspired by + +00:54:41.040 --> 00:54:43.040 +HyperCard? Or were there just a lot of + +00:54:43.040 --> 00:54:44.860 +thoughts about hyper-contextuality around + +00:54:44.860 --> 00:54:45.520 +that time? + +00:54:46.780 --> 00:54:50.100 +[Speaker 0]: Alright, well this is another interesting + +00:54:50.320 --> 00:54:52.360 +anecdote. I don't know if it's true or not, + +00:54:52.360 --> 00:54:57.880 +but I think HyperCard predated our stuff. + +00:54:57.880 --> 00:55:00.480 +It was right around the same time when + +00:55:00.480 --> 00:55:02.420 +Hyperbole was starting out. + +00:55:02.540 --> 00:55:05.100 +But when I was doing the Pi research, + +00:55:06.040 --> 00:55:08.800 +I worked at, when I left school, + +00:55:08.800 --> 00:55:11.280 +I worked at Motorola, and we did a lot of + +00:55:11.280 --> 00:55:13.040 +work with Apple back then. + +00:55:13.180 --> 00:55:15.480 +And somebody came back and he said, + +00:55:15.480 --> 00:55:18.000 +you know, the people over there have seen + +00:55:19.120 --> 00:55:21.940 +your Pi research and they really liked it a + +00:55:21.940 --> 00:55:26.020 +lot. And so they were leveraging that when + +00:55:26.020 --> 00:55:28.440 +they decided to create the division that they + +00:55:28.440 --> 00:55:33.280 +called Apple Pi, which was the originator of + +00:55:33.280 --> 00:55:36.500 +the Newton which eventually led to the + +00:55:36.500 --> 00:55:40.960 +iPhone. So it all kind of is interconnected + +00:55:41.360 --> 00:55:44.380 +just like the impact that free software has + +00:55:44.380 --> 00:55:47.240 +had around the world. So you never know where + +00:55:47.240 --> 00:55:49.840 +your stuff is gonna go or end up. + +00:55:51.180 --> 00:55:53.400 +[Speaker 1]: Right. All right, moving on to the next + +00:55:53.400 --> 00:55:55.840 +question. Is it possible to only use 1 + +00:55:55.840 --> 00:55:57.740 +feature of hyperbole without the others, + +00:55:57.740 --> 00:56:00.580 +i.e. Using only the implicit explicit buttons + +00:56:00.580 --> 00:56:03.580 +without I control I roller or without having + +00:56:03.580 --> 00:56:05.920 +to rewrite part of the code in hyperbole in + +00:56:05.920 --> 00:56:08.040 +order to be able to load a smaller hyperbole. + +00:56:08.200 --> 00:56:09.140 +Does it make sense? + +00:56:10.260 --> 00:56:12.640 +[Speaker 0]: Yes we get asked this all the time. + +00:56:12.900 --> 00:56:16.560 +So you can use any little bit that you want + +00:56:16.560 --> 00:56:19.620 +anywhere right you can even just call code + +00:56:19.940 --> 00:56:23.660 +from Hyperbole. I mean you don't use + +00:56:23.680 --> 00:56:25.080 +everything in Emacs, right? + +00:56:25.080 --> 00:56:27.740 +But you still install Emacs on your machine. + +00:56:28.180 --> 00:56:30.080 +It's exactly the same thing. + +00:56:30.860 --> 00:56:33.280 +Those libraries don't take up any memory, + +00:56:33.280 --> 00:56:36.380 +they take up a little disk space and it's so + +00:56:36.380 --> 00:56:38.520 +trivial compared to the amount of disk we + +00:56:38.520 --> 00:56:41.780 +have today. So a lot of things are not loaded + +00:56:41.920 --> 00:56:43.760 +unless you activate them. + +00:56:45.040 --> 00:56:48.940 +And so I know that you do have to build all + +00:56:48.940 --> 00:56:51.360 +those things. So maybe that's what bothers + +00:56:51.360 --> 00:56:56.060 +people. It takes 2 minutes if you're using, + +00:56:56.320 --> 00:56:58.400 +it depends how fast your computer is. + +00:56:58.400 --> 00:57:01.160 +But you build it once on install like every + +00:57:01.160 --> 00:57:04.600 +other package. And it used to be that there + +00:57:04.600 --> 00:57:06.620 +would be a lot of warnings just because of + +00:57:06.620 --> 00:57:09.020 +the way we wrote the code and we didn't + +00:57:09.020 --> 00:57:11.120 +really have to deal with some of those + +00:57:11.120 --> 00:57:13.080 +warnings. But with this new release, + +00:57:13.080 --> 00:57:15.120 +we've gotten rid of almost all of them, + +00:57:15.200 --> 00:57:19.800 +including the native compiler messages. + +00:57:20.020 --> 00:57:22.620 +So it should be a very clean install now, + +00:57:22.900 --> 00:57:26.620 +and just use 1 part at a time. + +00:57:26.880 --> 00:57:29.820 +But the other parts are there in case you + +00:57:29.820 --> 00:57:32.080 +make a link to something and you use a + +00:57:32.080 --> 00:57:34.600 +facility just like I was showing as I went + +00:57:34.600 --> 00:57:36.360 +across subsystems today. + +00:57:36.600 --> 00:57:38.000 +It may take you a year, + +00:57:38.000 --> 00:57:40.120 +but then all of a sudden you find the use + +00:57:40.120 --> 00:57:42.340 +case for Hyrule and you say, + +00:57:42.340 --> 00:57:44.040 +oh, I'm glad I have it there. + +00:57:44.440 --> 00:57:47.540 +And yes, some of these things could be split + +00:57:47.540 --> 00:57:49.540 +into sub packages like you do in the org + +00:57:49.540 --> 00:57:52.500 +ecosystem. But given our limited resources on + +00:57:52.500 --> 00:57:56.400 +the team, we find having them all in 1 gives + +00:57:56.400 --> 00:57:59.040 +us a higher level of quality and lets us + +00:57:59.040 --> 00:58:02.840 +deliver a better integrated system for your + +00:58:02.840 --> 00:58:03.340 +use. + +00:58:04.740 --> 00:58:06.300 +[Speaker 1]: Yeah, exactly. And I think, + +00:58:06.300 --> 00:58:09.120 +you know, it's, it's not a monolith. + +00:58:10.080 --> 00:58:12.540 +I mean, it's usually easier, + +00:58:12.540 --> 00:58:14.620 +easy, more easy, more easy. + +00:58:14.620 --> 00:58:16.500 +Sorry, I was right on the first try. + +00:58:16.560 --> 00:58:20.580 +It's usually easier to maintain a monolith + +00:58:20.860 --> 00:58:23.140 +that contains many bits of functionality like + +00:58:23.140 --> 00:58:25.280 +org. You have plenty of people using org + +00:58:25.280 --> 00:58:27.180 +mode, not using org-agenda, + +00:58:27.340 --> 00:58:29.142 +for instance, or you've got plenty of people + +00:58:29.142 --> 00:58:31.560 +using org-mode and barely using Babel because + +00:58:31.560 --> 00:58:34.740 +it doesn't really translate to their use. + +00:58:35.460 --> 00:58:37.720 +And I feel like I very much agree with you. + +00:58:37.720 --> 00:58:39.520 +It's okay to install a package and only use + +00:58:39.520 --> 00:58:40.420 +some of the functions. + +00:58:40.600 --> 00:58:43.580 +I was reminded, as you were discussing this, + +00:58:43.580 --> 00:58:45.140 +of the consults package, + +00:58:45.380 --> 00:58:46.920 +which is part of the VertiCo, + +00:58:48.220 --> 00:58:51.060 +mbark and marginalia and all this. + +00:58:51.340 --> 00:58:54.960 +Consult, it replaces a lot of the Emacs + +00:58:54.960 --> 00:58:56.980 +built-in commands like for finding your + +00:58:56.980 --> 00:58:59.900 +buffers or finding text inside of your + +00:58:59.900 --> 00:59:03.960 +buffer. It's great. And you do not need to + +00:59:04.120 --> 00:59:06.300 +completely move to consult as you get + +00:59:06.300 --> 00:59:09.080 +started. You can start colonizing 1 step at a + +00:59:09.080 --> 00:59:11.540 +time the function that you usually use. + +00:59:12.620 --> 00:59:15.580 +And I highly recommend to people to not let + +00:59:15.580 --> 00:59:18.560 +the size of a project deter them from trying + +00:59:18.560 --> 00:59:20.580 +it out because, again, + +00:59:20.980 --> 00:59:22.800 +in Emacs, everything is horizontal. + +00:59:23.100 --> 00:59:28.180 +If somehow you want to use something that was + +00:59:28.180 --> 00:59:29.640 +not intended primarily for this, + +00:59:29.640 --> 00:59:32.220 +or if you only want to use 10% of a package, + +00:59:32.300 --> 00:59:35.500 +well, do it. An example that I have for me is + +00:59:35.500 --> 00:59:39.840 +that Lispy is the minor mode that I use for + +00:59:39.840 --> 00:59:42.380 +editing Elisp documents, + +00:59:42.740 --> 00:59:45.380 +and it's great. Elisp provides similar + +00:59:45.380 --> 00:59:46.260 +functions to ParaEdit, + +00:59:46.260 --> 00:59:47.720 +which might be a little more popular, + +00:59:47.780 --> 00:59:50.320 +which allows you to have modal editing when + +00:59:50.320 --> 00:59:52.840 +you are on specific parts of a file, + +00:59:52.840 --> 00:59:55.080 +like the opening parenthesis or the closing + +00:59:55.080 --> 00:59:56.480 +parenthesis. It's great, + +00:59:56.480 --> 00:59:58.320 +it provides modal editing for those modes, + +00:59:58.320 --> 01:00:01.340 +but I certainly do not know everything, + +01:00:02.220 --> 01:00:04.240 +every modal command associated to it. + +01:00:04.240 --> 01:00:06.180 +I just use the 1 that makes the most sense to + +01:00:06.180 --> 01:00:08.200 +me. So feel free to explore. + +01:00:11.040 --> 01:00:13.680 +[Speaker 0]: I'll just say we get this so much. + +01:00:13.740 --> 01:00:16.520 +It's not that large. I mean there's a fair + +01:00:16.520 --> 01:00:19.680 +number of files but it's just like 1 major + +01:00:19.680 --> 01:00:22.340 +directory and then the KOutliner directory. + +01:00:24.080 --> 01:00:25.560 +And when you look at these things, + +01:00:25.560 --> 01:00:27.140 +you install web applications, + +01:00:27.440 --> 01:00:30.420 +everything else, just when you download the + +01:00:30.420 --> 01:00:31.820 +source code, it's much, + +01:00:31.820 --> 01:00:34.040 +much smaller than any of that. + +01:00:34.140 --> 01:00:37.360 +So I don't know why people you know accept + +01:00:37.360 --> 01:00:39.660 +that it's larger than your typical package. + +01:00:39.960 --> 01:00:41.900 +Why there's really an issue there. + +01:00:43.080 --> 01:00:45.080 +[Speaker 1]: I think it's because people tend to assume + +01:00:46.240 --> 01:00:48.480 +that a paradigm like the 1 you're describing, + +01:00:48.480 --> 01:00:51.560 +which seems to be changing the way you use + +01:00:51.560 --> 01:00:53.480 +Emacs in a way because you're no longer + +01:00:53.480 --> 01:00:56.000 +thinking of as buffers as separate entities, + +01:00:56.000 --> 01:00:57.980 +you can tunnel between them. + +01:00:57.980 --> 01:01:00.180 +You know, it feels like a huge paradigm shift + +01:01:00.180 --> 01:01:02.300 +and you assume that the code behind it is + +01:01:02.300 --> 01:01:04.080 +going to be humongous as well, + +01:01:04.080 --> 01:01:05.380 +but it's usually not the case. + +01:01:05.380 --> 01:01:07.640 +It's just that the idea is very pure at the + +01:01:07.640 --> 01:01:10.060 +start, and the paradigm shift that it allows + +01:01:10.320 --> 01:01:14.120 +is also magnificent. But at the end of the + +01:01:14.120 --> 01:01:16.200 +day, the code is fairly simple, + +01:01:16.320 --> 01:01:18.360 +because it does 1 thing and it does it well. + +01:01:19.780 --> 01:01:21.180 +[Speaker 0]: 1 thing I noticed too, + +01:01:21.180 --> 01:01:23.760 +I mean I'm a big believer in turnkey kind of + +01:01:23.760 --> 01:01:27.180 +systems. In fact a long time ago when I built + +01:01:27.180 --> 01:01:31.160 +an IDE on Emacs called InfoDoc that was + +01:01:31.160 --> 01:01:32.480 +delivered pre-compiled. + +01:01:33.760 --> 01:01:35.980 +So it's like you download it like every other + +01:01:35.980 --> 01:01:39.480 +app and you run it. And so I think + +01:01:39.480 --> 01:01:42.480 +eliminating all the friction that occurs, + +01:01:42.740 --> 01:01:46.360 +and you know, I just got going recently with + +01:01:46.380 --> 01:01:49.160 +the wonderful packages that you just + +01:01:49.160 --> 01:01:51.460 +mentioned, VertiCo and Consult, + +01:01:51.460 --> 01:01:55.360 +but they don't have a manual that covers all + +01:01:55.360 --> 01:01:57.780 +that. They use sort of like a cookbook, + +01:01:58.260 --> 01:02:02.220 +a wiki online to answer a lot of the + +01:02:02.220 --> 01:02:04.600 +questions that people have and everybody has + +01:02:04.600 --> 01:02:07.640 +to figure out their configurations you know + +01:02:07.640 --> 01:02:11.380 +to make these things all work together. + +01:02:12.800 --> 01:02:16.460 +We'd like to do that engineering and say here + +01:02:16.460 --> 01:02:18.560 +it is you know it's like if you want to + +01:02:18.560 --> 01:02:20.320 +configure it and make it your own, + +01:02:20.320 --> 01:02:23.500 +you can do it. But there is a default + +01:02:23.760 --> 01:02:26.880 +configuration that handles all the typical + +01:02:26.880 --> 01:02:29.940 +use cases and you can just load it up and run + +01:02:30.060 --> 01:02:31.660 +because it's made to use, + +01:02:32.840 --> 01:02:36.500 +you don't have to hack it to make it useful + +01:02:36.500 --> 01:02:37.260 +for you. + +01:02:37.900 --> 01:02:40.560 +[Speaker 1]: Yeah, it reminds me of the discussion we had + +01:02:40.560 --> 01:02:42.740 +with Stéphane yesterday about sane defaults. + +01:02:43.320 --> 01:02:45.520 +And I think the question was, + +01:02:46.500 --> 01:02:49.080 +Emacs should probably ship with sane defaults + +01:02:49.080 --> 01:02:51.740 +for people. And Stéphane's answer was, + +01:02:51.740 --> 01:02:53.860 +well, my sane defaults might not be the same + +01:02:53.860 --> 01:02:55.220 +thing as your sane defaults. + +01:02:55.960 --> 01:02:57.560 +And that's why I think it's important, + +01:02:57.560 --> 01:02:59.340 +really, to have a core set of features, + +01:02:59.340 --> 01:03:01.300 +be it with hyperbole of org mode, + +01:03:01.360 --> 01:03:02.580 +that is well-documented, + +01:03:02.880 --> 01:03:05.460 +as you mentioned. But what I like about this + +01:03:05.460 --> 01:03:07.260 +in a way, and I think hyperbole is perhaps + +01:03:07.260 --> 01:03:09.340 +taking more benefits of this than Org Mode, + +01:03:09.340 --> 01:03:12.280 +is that the self-documentation aspect of it + +01:03:12.540 --> 01:03:14.540 +feels like it's easier with hyperbole because + +01:03:14.540 --> 01:03:17.320 +you're not bound by Org Mode buffers. + +01:03:17.320 --> 01:03:19.340 +You can link to just about everything. + +01:03:19.940 --> 01:03:24.240 +And for me, this ability to self-document is, + +01:03:24.240 --> 01:03:26.140 +well, first, very true to the philosophy of + +01:03:26.140 --> 01:03:27.480 +Emacs in the first place, + +01:03:27.500 --> 01:03:31.900 +but also opens up those resonance cycles + +01:03:32.020 --> 01:03:34.200 +where, oh, you get interested and then you + +01:03:34.200 --> 01:03:35.820 +start reading up and then the documentation + +01:03:35.820 --> 01:03:38.320 +is so good that it feeds into your practice + +01:03:38.320 --> 01:03:41.040 +and then it goes nuclear and you gain so much + +01:03:41.040 --> 01:03:42.540 +knowledge as a result of this. + +01:03:42.620 --> 01:03:44.480 +All right, Bob, we are about out of time. + +01:03:44.480 --> 01:03:46.280 +We only have about 1 minute until we go to + +01:03:46.280 --> 01:03:48.220 +the next talk. Do you have any passing words? + +01:03:50.180 --> 01:03:53.860 +[Speaker 0]: I do. I think, you know, + +01:03:54.280 --> 01:03:56.880 +the world's complex, it's getting more + +01:03:57.440 --> 01:04:00.520 +complex. I think that's why people use Emacs + +01:04:00.520 --> 01:04:02.560 +in the first place, because it's a big + +01:04:02.560 --> 01:04:04.920 +system. You wouldn't use it unless you wanted + +01:04:04.920 --> 01:04:06.600 +it to simplify your life. + +01:04:07.580 --> 01:04:10.760 +Hyperbole is built with the same idea in + +01:04:10.760 --> 01:04:13.640 +mind. You may not get it just like Lisp. + +01:04:13.740 --> 01:04:15.720 +A lot of people don't understand when they + +01:04:15.720 --> 01:04:17.420 +first encounter it, but when they do + +01:04:17.420 --> 01:04:19.580 +understand it, they're blown away. + +01:04:19.960 --> 01:04:21.360 +It changes their life. + +01:04:22.040 --> 01:04:25.020 +You know, when you really understand implicit + +01:04:25.120 --> 01:04:28.100 +buttons, I think that's 1 of the things in + +01:04:28.100 --> 01:04:30.860 +hyperbole that can change your Emacs working + +01:04:30.860 --> 01:04:34.080 +life. So just give that a try and I think + +01:04:34.080 --> 01:04:36.660 +you'll be pleasantly surprised across time. + +01:04:39.220 --> 01:04:40.920 +[Speaker 1]: you so much Bob. We'll be moving on to the + +01:04:40.920 --> 01:04:42.980 +next talk in about 20 seconds so everyone see + +01:04:42.980 --> 01:04:44.940 +you in a bit and Bob thank you so much again. + +01:04:37.040 --> 01:04:46.100 +[Speaker 0]: Thanks very much. And thank Thank you. + +01:04:51.140 --> 01:04:53.040 +[Speaker 1]: All right I think we are off here now. + +01:04:53.040 --> 01:04:53.940 +So thank you so much, Bob. + +01:04:53.940 --> 01:04:55.440 +I'm going to need to step out and get ready + +01:04:56.609 --> 01:04:59.240 +[Speaker 0]: Yeah, do your thing. You do a great job at + +01:04:59.240 --> 01:05:01.760 +it. But I wanted to ask you where in London + +01:04:55.440 --> 01:05:04.780 +[Speaker 1]: for the next talk. I'm not in London, + +01:05:05.280 --> 01:05:07.940 +I'm in France, and I just moved to London. + +01:05:01.760 --> 01:05:10.740 +[Speaker 0]: you are. Oh, okay, got it. + +01:05:11.200 --> 01:05:12.680 +Sorry, I thought you were. + +01:05:13.000 --> 01:05:13.720 +Take care. + +01:05:14.340 --> 01:05:15.060 +[Speaker 1]: All right, bye-bye, Bob. + +01:05:15.060 --> 01:05:15.750 +Thanks a lot. Bye-bye. + +01:05:15.750 --> 01:05:16.250 +Bye-bye. diff --git a/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt b/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt new file mode 100644 index 00000000..9398d5f8 --- /dev/null +++ b/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt @@ -0,0 +1,503 @@ +WEBVTT + + +00:00:05.200 --> 00:00:06.359 +[Speaker 0]: Session is being recorded. + +00:00:06.819 --> 00:00:08.860 +Just waiting for Corwin and Leo. + +00:00:16.359 --> 00:00:17.960 +Great. Corwin, would you like to share your + +00:00:17.960 --> 00:00:18.460 +screen? + +00:00:37.620 --> 00:00:39.840 +Let's see the audio through BBB so we don't + +00:00:39.840 --> 00:00:41.720 +have to splice it in afterwards because it's + +00:00:41.720 --> 00:00:43.680 +annoying to splice things. + +00:00:43.680 --> 00:00:47.020 +I mean, Leo will be taking care of it, + +00:00:47.020 --> 00:00:50.560 +not me, so. Okay, he's going to finish up. + +00:00:52.720 --> 00:00:55.320 +[Speaker 1]: So, in the meantime, it's been a long day, + +00:00:55.320 --> 00:00:57.080 +people. Thanks for sticking around. + +00:00:57.180 --> 00:00:58.739 +And we're going to do a little bit of jazz + +00:00:58.739 --> 00:01:00.060 +handing until Corwin comes back. + +00:01:00.060 --> 00:01:07.650 +Smack. I + +00:01:14.240 --> 00:01:16.020 +[Speaker 2]: can't imagine an Emacs con without getting to + +00:01:16.020 --> 00:01:17.920 +enjoy Leo's famous jazz hands. + +00:01:21.420 --> 00:01:23.080 +[Speaker 1]: I can tell you it's a lot easier... + +00:01:23.160 --> 00:01:25.760 +Hello? I can tell you it's a lot easier to do + +00:01:25.760 --> 00:01:30.740 +jazz hands at 9am EST than it is at 5pm EST, + +00:01:30.860 --> 00:01:34.160 +because for me it's 11 and I've barely seen + +00:01:34.160 --> 00:01:39.720 +this 1 today. Okay Corwin, + +00:01:39.720 --> 00:01:41.880 +do you have a presentation right now? + +00:01:45.480 --> 00:01:47.440 +We do not seem to be able to hear you, + +00:01:47.440 --> 00:01:55.240 +Corwin. Okay, just bear with us, + +00:01:55.240 --> 00:01:57.380 +folks. We're gonna figure out this 1. + +00:01:57.380 --> 00:01:58.660 +This is the last bug of the day, + +00:01:58.660 --> 00:02:00.640 +and then we're clear until tomorrow. + +00:02:05.820 --> 00:02:07.700 +[Speaker 2]: I just heard you, but I don't know if it was + +00:02:07.700 --> 00:02:12.100 +here or via mumble. Okay. + +00:02:14.540 --> 00:02:17.360 +[Speaker 1]: Can we figure out? Whenever there's a problem + +00:02:17.360 --> 00:02:19.340 +like this, like Sash and myself are furiously + +00:02:19.460 --> 00:02:20.640 +typing in the background, + +00:02:20.640 --> 00:02:22.380 +we say, oh, can we fix this slide? + +00:02:22.740 --> 00:02:24.180 +But here, I'm stumped. + +00:02:33.180 --> 00:02:36.760 +[Speaker 2]: I think Corbin is in the GenTrack on Mumble. + +00:02:40.520 --> 00:02:43.680 +[Speaker 1]: Okay, so let's all switch to GenTrack and + +00:02:43.780 --> 00:02:46.860 +we'll be able to figure out the way. + +00:03:18.420 --> 00:03:21.540 +[Speaker 0]: Okay, well, while Corwin figures out how to + +00:03:21.540 --> 00:03:23.940 +get started, we might as well maybe do a + +00:03:23.940 --> 00:03:25.380 +little bit of closing remarks, + +00:03:25.380 --> 00:03:27.220 +and then you can jump in whenever you want. + +00:03:29.440 --> 00:03:30.420 +[Speaker 1]: Sounds good to me. + +00:03:31.980 --> 00:03:34.459 +[Speaker 0]: Okay. Thank you, everyone, + +00:03:34.459 --> 00:03:36.160 +for coming to Emacs Conf 2023. + +00:03:37.120 --> 00:03:38.980 +We made it to the end of the first day! + +00:03:39.140 --> 00:03:40.440 +Hooray! We're going to keep these closing + +00:03:40.440 --> 00:03:42.880 +remarks short because it's a long day. + +00:03:42.880 --> 00:03:44.920 +It's almost midnight and Leah will turn into + +00:03:44.920 --> 00:03:48.340 +a pumpkin very soon. So before that happens, + +00:03:48.580 --> 00:03:50.560 +we just want to say hello and thanks. + +00:03:50.640 --> 00:03:54.980 +And pre-recorded talks are already up. + +00:03:55.260 --> 00:03:56.520 +They're on the talk pages, + +00:03:56.520 --> 00:03:57.320 +they're on media.emaxcontent.org. + +00:03:58.860 --> 00:04:00.620 +We'll work on extracting the live talks, + +00:04:00.620 --> 00:04:01.920 +but it'll take a few weeks. + +00:04:01.920 --> 00:04:02.220 +[Speaker 3]: Maybe, you + +00:04:02.220 --> 00:04:03.660 +[Speaker 0]: know, we'll see how it goes. + +00:04:04.540 --> 00:04:06.100 +Please feel free to spread the word, + +00:04:06.100 --> 00:04:07.700 +because you know some people didn't actually + +00:04:07.720 --> 00:04:09.380 +know there was EmacsConf this weekend, + +00:04:09.380 --> 00:04:11.400 +so let them know, because it's a lot of fun. + +00:04:11.400 --> 00:04:15.020 +More talks tomorrow. And if you've got ideas + +00:04:15.020 --> 00:04:15.900 +for making things better, + +00:04:15.900 --> 00:04:17.500 +or If you'd like to tell us what's working + +00:04:17.500 --> 00:04:18.660 +well and what you'd like, + +00:04:18.940 --> 00:04:21.180 +please put them in the conference pad at + +00:04:21.180 --> 00:04:26.580 +pad.emaxconf.org. Anything anyone want to + +00:04:26.580 --> 00:04:27.080 +add? + +00:04:30.060 --> 00:04:30.860 +[Speaker 1]: I'm all good. + +00:04:32.900 --> 00:04:35.260 +[Speaker 2]: Let's see if Corwin can get his mic to work. + +00:04:37.740 --> 00:04:38.800 +No, it's not. + +00:04:43.520 --> 00:04:45.140 +[Speaker 1]: Well, I mean, did you want to say something + +00:04:45.140 --> 00:04:47.220 +as well? Because people have heard you talk + +00:04:47.220 --> 00:04:49.120 +all day long on the Dev track, + +00:04:49.120 --> 00:04:50.240 +but not on the general track, + +00:04:50.240 --> 00:04:51.540 +actually. It's the first time they hear you + +00:04:51.540 --> 00:04:52.040 +today. + +00:04:52.540 --> 00:04:55.580 +[Speaker 2]: Right. Oh, well, way to put me on the spot, + +00:04:56.540 --> 00:04:58.040 +but more seriously, thanks. + +00:04:58.040 --> 00:04:59.760 +So yeah, it's a lot of fun. + +00:05:00.340 --> 00:05:03.760 +You know, it's, we sort of keep coming back + +00:05:03.760 --> 00:05:05.580 +every year and doing this conference. + +00:05:06.300 --> 00:05:08.720 +It's always been fun. And we keep doing it + +00:05:08.720 --> 00:05:11.320 +thanks to, you know, all the people who + +00:05:11.320 --> 00:05:13.860 +submit all these amazing talks with these + +00:05:14.600 --> 00:05:16.560 +amazing sessions. And of course the audience + +00:05:16.560 --> 00:05:19.940 +as well. I don't have a lot to say I guess + +00:05:19.940 --> 00:05:21.500 +for today because I think we're hoping to + +00:05:21.500 --> 00:05:23.180 +keep it kind of short and sweet. + +00:05:24.400 --> 00:05:25.920 +So yeah, I think that's about it for me. + +00:05:25.920 --> 00:05:28.380 +I guess we'll maybe wait another minute or so + +00:05:28.380 --> 00:05:30.180 +to see if Cormen can make it. + +00:05:30.580 --> 00:05:32.140 +But yeah, that's all for me. + +00:05:34.820 --> 00:05:37.920 +[Speaker 1]: All right, great. Speaking of putting people + +00:05:37.920 --> 00:05:41.600 +on the spot, you might see a face in the room + +00:05:41.600 --> 00:05:43.680 +that you might have seen last year, + +00:05:43.840 --> 00:05:45.700 +but we've got Flobby Koda in the room as + +00:05:45.700 --> 00:05:49.400 +well, who you might not have heard of him but + +00:05:49.400 --> 00:05:51.140 +he's been doing a lot of the check-ins today + +00:05:51.140 --> 00:05:53.360 +for most of the speakers and he's been doing + +00:05:53.360 --> 00:05:54.520 +a wonderful job at it. + +00:05:54.520 --> 00:05:56.560 +Florian, do you want to say a word if only to + +00:05:56.560 --> 00:05:58.140 +say you're being put on the spot? + +00:06:00.620 --> 00:06:02.840 +[Speaker 4]: I have nothing prepared really but I just + +00:06:02.840 --> 00:06:05.100 +want to thank everybody who could, + +00:06:05.380 --> 00:06:07.260 +with who I could talk in between. + +00:06:07.360 --> 00:06:10.420 +So I had like wonderful 20 to 30 minute talks + +00:06:10.580 --> 00:06:12.900 +with every speaker before they get into the + +00:06:12.900 --> 00:06:15.100 +live Q&A or the live presentation. + +00:06:15.780 --> 00:06:16.920 +Thanks a lot for everybody, + +00:06:16.920 --> 00:06:19.640 +I learned quite a lot and also thank you for + +00:06:19.640 --> 00:06:22.360 +all of you guys and everyone for having such + +00:06:22.360 --> 00:06:24.060 +a beautiful experience here. + +00:06:25.960 --> 00:06:28.060 +[Speaker 1]: Well, thank you. We're glad to have you. + +00:06:29.180 --> 00:06:31.120 +Okay, Sasha, Unless you've got anything else + +00:06:31.120 --> 00:06:33.880 +to add, and Corwin, have you fixed your + +00:06:33.880 --> 00:06:38.400 +microphone? Yes, we can hear you Corwin. + +00:06:38.400 --> 00:06:39.160 +Okay, well let's start again. + +00:06:39.160 --> 00:06:40.440 +Let's forget everything you've heard for the + +00:06:40.440 --> 00:06:41.640 +last 20 minutes. We'll start again. + +00:06:41.640 --> 00:06:42.540 +I'm just kidding. + +00:06:35.280 --> 00:06:45.560 +[Speaker 3]: You tell me. No, I mean, + +00:06:45.560 --> 00:06:47.760 +I don't know what I could possibly add to all + +00:06:47.760 --> 00:06:50.200 +that. I think we absolutely should get some + +00:06:50.200 --> 00:06:51.500 +rest, save it for tomorrow. + +00:06:52.540 --> 00:06:55.240 +I was just looking through these notes in the + +00:06:55.240 --> 00:06:57.480 +couple of minutes that I had between my own + +00:06:57.480 --> 00:06:59.980 +talk. Thank you for your help with that. + +00:07:00.720 --> 00:07:02.420 +But also, especially you, + +00:07:02.420 --> 00:07:08.040 +Sasha, and Leo, and everybody in the IRC over + +00:07:08.040 --> 00:07:10.440 +the months here, just encouraging me to keep + +00:07:10.440 --> 00:07:12.460 +going when it was just seemed futile. + +00:07:13.580 --> 00:07:15.780 +Even though it just really turned into a + +00:07:15.780 --> 00:07:18.120 +brain dump, I appreciate getting the chance + +00:07:18.120 --> 00:07:20.320 +of feeling like that process is more + +00:07:20.320 --> 00:07:22.540 +documented now than it was before I did it. + +00:07:22.540 --> 00:07:23.440 +Hey, that's not nothing, + +00:07:23.440 --> 00:07:25.440 +right? And that's why we all do this. + +00:07:25.440 --> 00:07:28.360 +And I don't know, Floey really said it + +00:07:28.360 --> 00:07:30.520 +perfect. Like, I appreciate the chance to get + +00:07:30.520 --> 00:07:31.560 +to work on this with you. + +00:07:31.560 --> 00:07:32.700 +I learned so much. + +00:07:36.400 --> 00:07:38.980 +[Speaker 1]: Amazing. Well, you know what? + +00:07:39.020 --> 00:07:41.380 +Without further ado, I believe it's time for + +00:07:41.380 --> 00:07:42.840 +us to say goodbye for day 1. + +00:07:42.840 --> 00:07:45.340 +We will obviously be seeing you tomorrow at 9 + +00:07:45.340 --> 00:07:48.740 +a.m. I think the schedule is actually stating + +00:07:48.740 --> 00:07:49.840 +we're starting at 8.59am. + +00:07:50.500 --> 00:07:51.220 +Is it correct? + +00:07:51.220 --> 00:07:53.980 +[Speaker 0]: Yes, I think the chrono tab will kick in. + +00:07:54.020 --> 00:07:56.020 +The video is like 6 minutes long. + +00:07:57.620 --> 00:07:58.660 +Actually, maybe I should, + +00:07:58.660 --> 00:08:00.640 +I'll give it an extra minute for safety, + +00:08:00.660 --> 00:08:03.660 +I think. Yeah, yeah. I'll tweak the timing. + +00:08:04.340 --> 00:08:06.420 +[Speaker 1]: I think that'd be wise for people we do not + +00:08:06.420 --> 00:08:08.460 +know basically 8.59 is when I brush my teeth + +00:08:08.460 --> 00:08:10.680 +before going live so we might be in a very + +00:08:10.680 --> 00:08:12.740 +awkward spot for me to introduce the talk if + +00:08:12.740 --> 00:08:15.420 +it happens. Well anyway folks thank you very + +00:08:15.420 --> 00:08:18.500 +much for watching and we'll see you tomorrow. + +00:08:19.360 --> 00:08:31.320 +Bye-bye! All right, I have closed the bbb oh + +00:08:31.320 --> 00:08:34.780 +it's restarting apparently oh it's we're back + +00:08:34.780 --> 00:08:37.480 +on the q and a between stephan and let's + +00:08:37.480 --> 00:08:47.420 +close this hey we are off + +00:08:44.700 --> 00:08:52.540 +[Speaker 3]: we are clear I am pausing the recording I + +00:08:52.540 --> 00:08:54.280 +don't have permission to do that in this + +00:08:54.280 --> 00:08:54.780 +room. diff --git a/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt b/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt index 272d8d41..a10fafef 100644 --- a/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt +++ b/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt @@ -1,571 +1,788 @@ WEBVTT -00:00.000 --> 00:04.000 -Hello, I'm Alexey Bochkarev, and I'm talking about -00:04.000 --> 00:07.000 -unentangling projects and repositories, +00:00:01.220 --> 00:00:03.580 +Hello, I'm Alexey Bychkadov, -00:07.000 --> 00:10.000 -or maybe entangling them, depending on how you look at that. +00:00:03.740 --> 00:00:06.899 +and I'm talking about unentangling projects -00:12.000 --> 00:15.000 -So that's going to be a short workflow note. +00:00:06.899 --> 00:00:09.679 +and repositories, or maybe entangling them, -00:15.000 --> 00:19.000 +00:00:09.679 --> 00:00:11.340 +depending on how you look at that. + +00:00:12.980 --> 00:00:15.740 +So there's going to be a short workflow note. + +00:00:16.619 --> 00:00:19.460 I work as a researcher, -00:19.000 --> 00:23.000 -so there are three main components to my work, I guess. +00:00:19.940 --> 00:00:23.380 +So there are 3 main components to my work, + +00:00:23.680 --> 00:00:26.000 +I guess. First, I think, + +00:00:26.000 --> 00:00:28.140 +so I try to come up with a new ideas that + +00:00:28.140 --> 00:00:31.580 +usually results in some collection of notes I + +00:00:31.580 --> 00:00:33.760 +have. Second, I try things out. + +00:00:33.760 --> 00:00:36.180 +So it usually means that I write code. + +00:00:36.820 --> 00:00:38.540 +And third, I communicate. + +00:00:38.739 --> 00:00:40.739 +So I prepare papers, presentations, + +00:00:41.260 --> 00:00:43.160 +memos, and so on and so forth. + +00:00:44.120 --> 00:00:47.940 +And so The workflow problem I had is + +00:00:49.160 --> 00:00:53.000 +sometimes all this does not really fit into a + +00:00:53.000 --> 00:00:56.180 +concept of a single repository per project. + +00:00:56.200 --> 00:00:57.540 +So I might want to have, + +00:00:58.180 --> 00:01:01.160 +for example, a source code in 1 repository + +00:01:01.320 --> 00:01:03.480 +and then I would like to have a paper in + +00:01:03.480 --> 00:01:05.200 +another 1 and then I want to have a + +00:01:05.200 --> 00:01:08.620 +collection of notes somewhere unrelated to + +00:01:08.620 --> 00:01:12.500 +those 2. Emacs is pretty good at supporting + +00:01:12.500 --> 00:01:15.840 +your workflows and I figured I should share + +00:01:16.240 --> 00:01:18.100 +what I used and what works for me. + +00:01:20.560 --> 00:01:24.900 +So, from the technical perspective, + +00:01:26.479 --> 00:01:27.940 +things are pretty easy. + +00:01:27.940 --> 00:01:30.720 +So I use a collection of pretty standard + +00:01:30.720 --> 00:01:33.240 +components of Emacs. So it's a projectile org + +00:01:33.240 --> 00:01:35.360 +mode with this capture templates and other + +00:01:35.360 --> 00:01:38.100 +things. Then I sustained a collection of + +00:01:38.100 --> 00:01:40.360 +nodes in something that is called org-roam, + +00:01:40.680 --> 00:01:43.520 +which is essentially it's a glorified + +00:01:43.580 --> 00:01:45.580 +collection of org mode files. + +00:01:46.100 --> 00:01:48.160 +Then I used directory local variables, + +00:01:48.260 --> 00:01:51.140 +maybe a C text to jump through the source + +00:01:51.140 --> 00:01:54.920 +code and very, very little LELisp glue to + +00:01:54.920 --> 00:01:57.620 +make this all work, but that's not really + +00:01:58.620 --> 00:02:00.400 +rocket science. So that's the workflow I + +00:02:00.400 --> 00:02:02.180 +would like to talk about today. + +00:02:04.860 --> 00:02:07.120 +So what I mean by all that, + +00:02:07.960 --> 00:02:10.280 +it's pretty straightforward to make Emacs, + +00:02:10.680 --> 00:02:12.720 +to make it easy to jump around a single + +00:02:12.720 --> 00:02:14.980 +repository in Emacs. So if I, + +00:02:15.060 --> 00:02:16.640 +Now I have Doom Emacs, + +00:02:16.640 --> 00:02:18.740 +but that's not really specific to a Doom + +00:02:19.120 --> 00:02:23.160 +that'll work in any Emacs configuration. + +00:02:23.400 --> 00:02:27.720 +Well, key bindings might be different, + +00:02:27.720 --> 00:02:28.820 +but that's not the point, + +00:02:28.820 --> 00:02:29.940 +I guess, for the workflow. + +00:02:30.060 --> 00:02:31.960 +So if I hit space 2 times, + +00:02:31.960 --> 00:02:34.640 +I have all the list of files within my + +00:02:34.640 --> 00:02:38.200 +project, right? So if I create a couple of + +00:02:38.200 --> 00:02:42.780 +custom shortcuts, so if I press a magic + +00:02:42.780 --> 00:02:45.280 +button, hyper-OP, don't worry about + +00:02:45.280 --> 00:02:47.460 +hyper-key. So I want it to have a modifier + +00:02:47.560 --> 00:02:50.140 +key all to myself, so that would, + +00:02:50.320 --> 00:02:53.200 +no program on my computer would use that + +00:02:53.200 --> 00:02:55.680 +except Emacs. Emacs would use that only when + +00:02:55.680 --> 00:02:57.540 +I tell it to, so I have a hyper key instead + +00:02:57.540 --> 00:03:00.720 +of caps lock. That's pretty easy to do in GNU + +00:03:00.720 --> 00:03:04.940 +Linux system. So when I press this magic + +00:03:04.940 --> 00:03:07.400 +keys, I have a menu that's a normal key + +00:03:07.400 --> 00:03:09.940 +binding. Yeah, essentially an Emacs. + +00:03:10.240 --> 00:03:12.260 +And if I hit, for example, + +00:03:12.540 --> 00:03:15.200 +R, I end up in a readme file within this + +00:03:15.200 --> 00:03:17.320 +specific repository I was sitting in, + +00:03:17.320 --> 00:03:19.000 +right? So if I want to document something + +00:03:19.000 --> 00:03:21.420 +real quick, I go to the readme file. + +00:03:21.680 --> 00:03:25.280 +Then I could go to a change log file, + +00:03:25.280 --> 00:03:27.440 +right? So I have a list of changes and the + +00:03:27.440 --> 00:03:29.480 +way it works usually, for example, + +00:03:29.480 --> 00:03:31.140 +if I'm working in some code, + +00:03:32.220 --> 00:03:34.280 +I created a couple of dummy files in there, + +00:03:34.280 --> 00:03:36.560 +so I'm working in some code and then I + +00:03:36.560 --> 00:03:41.780 +implemented something and I can just use the + +00:03:42.020 --> 00:03:46.860 +org mode capture mechanisms to keep track of -00:23.000 --> 00:27.000 -First, I think, so I try to come up with new ideas, +00:03:46.860 --> 00:03:48.880 +what I want to discuss with colleagues next -00:27.000 --> 00:31.000 -and that usually results in some collection of notes I have. +00:03:48.880 --> 00:03:52.160 +time. For example, I could just hit capture -00:31.000 --> 00:35.000 -Second, I try things out, so it usually means that I write code. +00:03:52.440 --> 00:03:56.200 +repo specific changelog entry and I -00:35.000 --> 00:39.000 -And third, I communicate, so I prepare papers, +00:03:56.200 --> 00:04:02.620 +implemented a feature and I can continue -00:39.000 --> 00:43.000 -presentations, memos, and so on and so forth. +00:04:02.620 --> 00:04:04.340 +working without this context switching. -00:43.000 --> 00:47.000 -And so the workflow problem I had is +00:04:04.340 --> 00:04:06.500 +And then if I want to go to the change log, -00:47.000 --> 00:51.000 -sometimes all this does not really fit +00:04:06.880 --> 00:04:11.320 +well, it is there. And next time I talk to -00:51.000 --> 00:55.000 -into a concept of a single repository per project, +00:04:11.320 --> 00:04:12.720 +the colleagues about the source code, -00:55.000 --> 00:59.000 -so I might want to have, for example, +00:04:12.720 --> 00:04:14.340 +I can open the change log and go through -00:59.000 --> 01:03.000 -a source code in one repository, and then I would like to have a paper +00:04:14.340 --> 00:04:16.800 +entries 1 by 1 and discuss what I haven't -01:03.000 --> 01:07.000 -in another one, and then I want to have a collection of notes somewhere +00:04:16.800 --> 00:04:18.980 +implemented last time. -01:07.000 --> 01:11.000 -unrelated to those two. And yeah, +00:04:19.540 --> 00:04:22.580 +I could go to project specific, -01:11.000 --> 01:15.000 -Emacs is pretty good at supporting your workflows, and I figured I should +00:04:24.100 --> 00:04:26.320 +sorry, to repo specific to-do list. -01:15.000 --> 01:19.000 -share what I use and what works for me. +00:04:26.320 --> 00:04:29.020 +And I have list of to-dos that would leave -01:19.000 --> 01:23.000 -So, +00:04:29.020 --> 00:04:31.320 +within a repository. And for example, -01:23.000 --> 01:27.000 -from the technical perspective, things are +00:04:31.320 --> 00:04:34.020 +I could have a high level structure here, -01:27.000 --> 01:31.000 -pretty easy, so I use a collection of pretty standard components +00:04:34.640 --> 00:04:36.460 +work distribution between team members and -01:31.000 --> 01:35.000 -of Emacs, so it's a projectile org-mode with its capture templates and other +00:04:36.460 --> 00:04:39.380 +other things that sort of face outer world, -01:35.000 --> 01:39.000 -things. Then I sustain a collection of notes in something +00:04:39.380 --> 00:04:41.260 +so to speak. And of course, -01:39.000 --> 01:43.000 -that is called org-roam, which is, well, essentially, it's a glorified +00:04:42.840 --> 00:04:45.400 +there are very many ways to jump through the -01:43.000 --> 01:47.000 -collection of org-mode files. Then I use directory +00:04:45.400 --> 00:04:46.420 +source code conveniently. -01:47.000 --> 01:51.000 -local variables, maybe a ctext to jump through the source code, +00:04:46.560 --> 00:04:49.960 +I ended up not using language servers I use a -01:51.000 --> 01:55.000 -and very, very little Elisp glue to make this +00:04:49.960 --> 00:04:53.320 +special program called ctags and so the way -01:55.000 --> 01:59.000 -all work, but that's not really rocket science. +00:04:53.320 --> 00:04:56.420 +it works is just I call projectile regenerate -01:59.000 --> 02:03.000 -So that's the workflow I would like to talk about today. +00:04:56.680 --> 00:05:00.460 +tags and it creates the special tags file -02:03.000 --> 02:07.000 -So, what I mean by all that, +00:05:00.460 --> 00:05:05.260 +within the repository and then I can again -02:07.000 --> 02:11.000 -it's pretty straightforward to make +00:05:06.240 --> 00:05:11.260 +run it I usually just hit a single keystroke -02:11.000 --> 02:15.000 -it easy to jump around a single repository in Emacs. +00:05:11.520 --> 00:05:14.060 +and here is all the symbols that are there in -02:15.000 --> 02:19.000 -Now, I have Doom Emacs, but that's not really specific to Doom. +00:05:14.060 --> 00:05:17.160 +my source code, regardless of the language, -02:19.000 --> 02:23.000 -That'll work in any Emacs configuration. +00:05:17.160 --> 00:05:19.540 +right? So I can jump to the main function and -02:23.000 --> 02:27.000 -Well, kbindings might be +00:05:19.540 --> 00:05:21.020 +that'll be a C++ file. -02:27.000 --> 02:31.000 -different, but that's not the point, I guess, for the workflow. So, if I hit space +00:05:21.020 --> 00:05:22.740 +Or I could go to the super function, -02:31.000 --> 02:35.000 -two times, I have all the list of files within my project. +00:05:22.740 --> 00:05:25.340 +which I had in my Python file. -02:35.000 --> 02:39.000 -So, if I create a couple of custom shortcuts, +00:05:25.380 --> 00:05:27.120 +And this comes in pretty convenient if I have -02:39.000 --> 02:43.000 -so if I press a magic button, +00:05:27.120 --> 00:05:28.220 +a mixture of languages. -02:43.000 --> 02:47.000 -hyperlp, don't worry about hyperkey, so I want it to have a +00:05:28.360 --> 00:05:30.800 +Sometimes I can have some algorithm specific -02:47.000 --> 02:51.000 -modifier key all to myself, so that would, no program +00:05:30.800 --> 00:05:33.000 +code in Julia, and then I can have some -02:51.000 --> 02:55.000 -on my computer would use that except Emacs, and Emacs would +00:05:33.280 --> 00:05:35.380 +Python glue within the same source code -02:55.000 --> 02:59.000 -use that only when I tell it to, so I have a hyperkey instead of caps lock, that's pretty easy +00:05:35.380 --> 00:05:37.940 +repository, it makes it really convenient to -02:59.000 --> 03:03.000 -to do in GNU Linux system. So, +00:05:39.720 --> 00:05:41.780 +jump between all of those. -03:03.000 --> 03:07.000 -when I press this magic keys, I have a menu that's a normal +00:05:43.080 --> 00:05:46.980 +But I have a few problems here. -03:07.000 --> 03:11.000 -kbinding, yeah, essentially in Emacs, and +00:05:47.360 --> 00:05:49.800 +So just to give you a little bit of context, -03:11.000 --> 03:15.000 -if I hit, for example, R, I end up in a readme file within +00:05:49.860 --> 00:05:53.100 +for example, here is a real project that -03:15.000 --> 03:19.000 -this specific repository I was sitting in, right, so if I want to document something +00:05:53.100 --> 00:05:54.440 +corresponds to real paper. -03:19.000 --> 03:23.000 -real quick, I go to the readme file. Then I could have, I could +00:05:55.840 --> 00:05:59.060 +I have a single note about that project where -03:23.000 --> 03:27.000 -go to a changelog file, right, so I have a list of changes +00:05:59.060 --> 00:06:01.780 +I keep all the things related to that project -03:27.000 --> 03:31.000 -and the way it works, usually, for example, if I'm working on some code, +00:06:01.780 --> 00:06:03.260 +here, but that's a private note. -03:31.000 --> 03:35.000 -I created a couple of dummy files in there, so +00:06:03.260 --> 00:06:04.860 +So for example, again, -03:35.000 --> 03:39.000 -I'm working on some code, and then I implemented something, and I can +00:06:04.860 --> 00:06:08.040 +I hit a special key that invokes my org-roam -03:39.000 --> 03:43.000 -just use the org mode capture +00:06:08.640 --> 00:06:12.680 +function that gives me a menu of my notes. -03:43.000 --> 03:47.000 -mechanisms to keep track of what +00:06:13.080 --> 00:06:15.200 +And so here is the paper, -03:47.000 --> 03:51.000 -I want to discuss with colleagues next time, for example, I could just hit +00:06:15.200 --> 00:06:17.500 +essentially. And I can have a paper timeline, -03:51.000 --> 03:55.000 -capture repo specific changelog entry +00:06:17.900 --> 00:06:21.180 +and I can have a list of all the dates what -03:55.000 --> 03:59.000 -and I implemented a feature +00:06:21.180 --> 00:06:23.940 +happened to the paper with links to my email, -03:59.000 --> 04:03.000 -and I can continue working +00:06:24.060 --> 00:06:27.700 +right? So for example if I hit this link that -04:03.000 --> 04:07.000 -without this context switching, and then if I want to go to the changelog, +00:06:27.700 --> 00:06:30.160 +will open a specific email and that doesn't -04:07.000 --> 04:11.000 -well, it is there, and next time I talk +00:06:30.160 --> 00:06:31.280 +work outside of my computer, -04:11.000 --> 04:15.000 -to the colleagues about the source code, I can open the changelog and go through entries one by one +00:06:31.280 --> 00:06:33.140 +doesn't make any sense to keep it in the -04:15.000 --> 04:19.000 -and discuss what I have implemented last time. +00:06:33.340 --> 00:06:35.500 +outer world facing repository, -04:19.000 --> 04:23.000 -I could go to project specific +00:06:35.500 --> 00:06:37.360 +for example. So that's something to myself, -04:23.000 --> 04:27.000 -to, sorry, to repo specific to-do list, and I have +00:06:37.360 --> 00:06:41.420 +right? Sometimes I want to have like this -04:27.000 --> 04:31.000 -a list of to-dos that would live within a repository, and +00:06:41.480 --> 00:06:43.940 +list of working notes, -04:31.000 --> 04:35.000 -for example, I could have a high-level structure here, +00:06:43.940 --> 00:06:45.780 +right, that contain like, -04:35.000 --> 04:39.000 -work distribution between team members and other things that sort of face +00:06:45.780 --> 00:06:49.200 +for example, yeah, I might produce this kind -04:39.000 --> 04:43.000 -the world, so to speak, and of course, +00:06:49.200 --> 00:06:50.620 +of things for internal discussion, -04:43.000 --> 04:47.000 -there are very many ways to jump through the source code conveniently, +00:06:50.640 --> 00:06:52.500 +right? It has some marks, -04:47.000 --> 04:51.000 -I ended up not using language servers, I used a special program called +00:06:52.500 --> 00:06:54.620 +it has some margin notes and things like -04:51.000 --> 04:55.000 -ctags, and so the way it works is just I call +00:06:54.620 --> 00:06:57.620 +that. Maybe again, health-based ideas that -04:55.000 --> 04:59.000 -projectile regenerate tags, and it creates the special +00:06:57.620 --> 00:07:00.300 +may or may not end up in a repository, -04:59.000 --> 05:03.000 -tags file within the repository, +00:07:01.020 --> 00:07:03.220 +in the final paper or in a source code, -05:03.000 --> 05:07.000 -and then I can, again, run +00:07:03.220 --> 00:07:05.880 +but still I want to have it somewhere. -05:07.000 --> 05:11.000 -I usually just hit a single keystroke, +00:07:07.120 --> 00:07:08.600 +And well, long story short, -05:11.000 --> 05:15.000 -and here is all the symbols that are there in my +00:07:08.800 --> 00:07:11.680 +I need a project folder that would be -05:15.000 --> 05:19.000 -source code, regardless of the language, right, so I can jump to the main function +00:07:11.680 --> 00:07:16.120 +unrelated to the source code or to the source -05:19.000 --> 05:23.000 -and that'll be a C++ file, or I could go to the super function, which I +00:07:16.120 --> 00:07:19.440 +code repository or to the paper itself or a -05:23.000 --> 05:27.000 -had in my Python file, and this comes in pretty convenient if I have +00:07:19.440 --> 00:07:22.780 +final report, right? And 1 way, -05:27.000 --> 05:31.000 -a mixture of languages, so sometimes I can have some algorithm-specific code +00:07:22.960 --> 00:07:24.720 +as usual, there are multiple ways to achieve -05:31.000 --> 05:35.000 -in Julia, and then I can have some Python glue within the same +00:07:24.720 --> 00:07:27.660 +that, I suppose. And 1 way to do that is, -05:35.000 --> 05:39.000 -source code repository, and it makes it really convenient to jump +00:07:29.040 --> 00:07:33.160 +so I create a special folder within my -05:39.000 --> 05:43.000 -between all of those, right, +00:07:33.160 --> 00:07:38.100 +org-roam storage. So it's a special folder -05:43.000 --> 05:47.000 -but I have a few problems here, +00:07:38.240 --> 00:07:40.940 +outside of Henry Postories that got backed up -05:47.000 --> 05:51.000 -just to give you a little bit of context, for example, here is the +00:07:40.940 --> 00:07:43.940 +to my hard drive with certain redundancy, -05:51.000 --> 05:55.000 -a real project that corresponds to a real paper, +00:07:44.080 --> 00:07:46.720 +but I don't really need like version control, -05:55.000 --> 05:59.000 -I have a single note about that project, +00:07:46.720 --> 00:07:48.280 +full blown version control for that. -05:59.000 --> 06:03.000 -where I keep all the things related to that project here, but that's a private +00:07:48.280 --> 00:07:49.760 +I'm okay with just having a couple of -06:03.000 --> 06:07.000 -note, so for example, again, I hit a special key that +00:07:49.760 --> 00:07:52.900 +backups, right? So this is the folder you see -06:07.000 --> 06:11.000 -invokes my org-roam function that gives me a menu of my +00:07:52.900 --> 00:07:55.320 +here. So PKB stands for personal knowledge -06:11.000 --> 06:15.000 -notes, and so here is the paper, +00:07:55.320 --> 00:07:58.020 +base, and I have a folder project notes in -06:15.000 --> 06:19.000 -essentially, and I can have a paper timeline, and I can +00:07:58.020 --> 00:08:01.520 +there, right? So, and How does it work? -06:19.000 --> 06:23.000 -have a list of all the dates, what happened to the paper, with links +00:08:01.680 --> 00:08:04.940 +So I have a folder per project in there, -06:23.000 --> 06:27.000 -to my email, right, so for example, if I hit this link, +00:08:05.020 --> 00:08:07.900 +essentially. And here I can have all the -06:27.000 --> 06:31.000 -that'll open a specific email, and that doesn't work outside of my +00:08:07.900 --> 00:08:11.480 +stuff that kind of belongs to me and I do not -06:31.000 --> 06:35.000 -computer, it doesn't make any sense to keep it in the outer world-facing +00:08:11.480 --> 00:08:14.180 +publish it anywhere. And then, -06:35.000 --> 06:39.000 -repository, for example, so that's something to myself, right, sometimes I want +00:08:15.420 --> 00:08:20.280 +For example, a source code repository knows -06:39.000 --> 06:43.000 -to have, like, this list of +00:08:20.460 --> 00:08:23.240 +about that folder and a paper repository -06:43.000 --> 06:47.000 -working notes, right, that contain, like, for example, +00:08:23.460 --> 00:08:25.120 +knows about that folder. -06:47.000 --> 06:51.000 -I might produce this kind of things for internal discussion, right, +00:08:25.120 --> 00:08:26.820 +And anything else that might leave in -06:51.000 --> 06:55.000 -it has some marks, it has some margin notes, and things like that, +00:08:26.820 --> 00:08:28.820 +separate places all over my system can know -06:55.000 --> 06:59.000 -maybe, again, health-based ideas that may or may not end up +00:08:28.820 --> 00:08:30.800 +about that folder. How do I achieve that? -06:59.000 --> 07:03.000 -in a repository, in a final paper, or in a source code, +00:08:30.940 --> 00:08:33.539 +Well, essentially this is 1 of the use cases -07:03.000 --> 07:07.000 -but still I want to have it somewhere, and +00:08:34.400 --> 00:08:35.940 +for the directory local variables, -07:07.000 --> 07:11.000 -well, long story short, I need a project folder +00:08:36.360 --> 00:08:39.100 +right? So for example, -07:11.000 --> 07:15.000 -that would be unrelated to the source code, or +00:08:39.520 --> 00:08:41.539 +how does it work from the user perspective? -07:15.000 --> 07:19.000 -to the source code repository, or to the paper itself, +00:08:41.580 --> 00:08:43.760 +So if I hit a special key, -07:19.000 --> 07:23.000 -or a final report, right, and one way, +00:08:44.380 --> 00:08:46.900 +oh, sorry, if I hit a special key, -07:23.000 --> 07:27.000 -as usual, there are multiple ways to achieve that, I suppose, and one way to do that +00:08:48.280 --> 00:08:51.060 +that would be open project. -07:27.000 --> 07:31.000 -is, so, I create +00:08:51.680 --> 00:08:55.920 +And then for example, org mode file, -07:31.000 --> 07:35.000 -a special folder within my org-roam +00:08:55.920 --> 00:08:58.260 +right? So this is my personal notes about the -07:35.000 --> 07:39.000 -storage, so it's a special folder outside of any +00:08:58.260 --> 00:09:01.260 +maxconf, not specifically about this very -07:39.000 --> 07:43.000 -repositories that got backed up to my hard drive, with +00:09:01.260 --> 00:09:02.580 +talk, but I can have, you know, -07:43.000 --> 07:47.000 -certain redundancy, but I don't really need, like, version control, full-blown +00:09:02.580 --> 00:09:04.580 +the house baked ideas here again, -07:47.000 --> 07:51.000 -version control for that, I'm okay with just having a couple of backups, right, so +00:09:04.760 --> 00:09:06.680 +presentation tools and things like that. -07:51.000 --> 07:55.000 -this is the folder you see here, so pkb stands for personal knowledge +00:09:07.440 --> 00:09:09.860 +And how does that happen? -07:55.000 --> 07:59.000 -base, and I have a folder, project notes in there, right, so +00:09:09.940 --> 00:09:13.080 +If we try to like look at the code, -07:59.000 --> 08:03.000 -and, how does it work, so I have a +00:09:13.080 --> 00:09:14.660 +the e-list magic here, -08:03.000 --> 08:07.000 -folder per project in there, essentially, and here I can +00:09:15.040 --> 00:09:17.560 +what is happening is it's just a couple of -08:07.000 --> 08:11.000 -have all the stuff that is, that kind of belongs to me, and I +00:09:17.560 --> 00:09:18.720 +lines of code, in fact, -08:11.000 --> 08:15.000 -do not publish it anywhere, and then +00:09:18.720 --> 00:09:21.100 +so let me just press Control, -08:15.000 --> 08:19.000 -for example, a source code +00:09:22.540 --> 00:09:28.140 +help key. And so the key I was pressing is -08:19.000 --> 08:23.000 -repository knows about that folder, and a paper repository +00:09:28.140 --> 00:09:30.220 +open project or my file. -08:23.000 --> 08:27.000 -knows about that folder, and anything else that might live in separate +00:09:30.480 --> 00:09:32.220 +And so what we see here, -08:27.000 --> 08:31.000 -places all over my system can know about that folder, and how do I achieve that, +00:09:32.220 --> 00:09:34.760 +there is a single, so it's just a call to a -08:31.000 --> 08:35.000 -well, essentially, this is one of the use cases for the directory +00:09:34.760 --> 00:09:37.200 +find file function. So I opened that file and -08:35.000 --> 08:39.000 -local variables, right, so, for example, +00:09:37.200 --> 00:09:40.580 +there is a special function that figures out -08:39.000 --> 08:43.000 -how does it work from the user perspective, so if I hit a special +00:09:40.580 --> 00:09:44.620 +what is the like umbrella project nose file -08:43.000 --> 08:47.000 -key, oh, sorry, if I hit a special key +00:09:44.620 --> 00:09:46.600 +and that's, again, that's very easy. -08:47.000 --> 08:51.000 -that would be open project +00:09:47.380 --> 00:09:51.420 +So essentially if a variable describing this, -08:51.000 --> 08:55.000 -and then, for example, +00:09:51.820 --> 00:09:54.860 +the name for that project is defined, -08:55.000 --> 08:59.000 -org mode file, right, so this is my personal notes about the emacs conf, not +00:09:54.860 --> 00:09:57.440 +then I use that as my project folder name. -08:59.000 --> 09:03.000 -specifically about this very talk, but I can have, you know, +00:09:57.440 --> 00:09:59.700 +If not, I take the project name from the -09:03.000 --> 09:07.000 -half-baked ideas here, again, presentation tools, and things like that, +00:10:00.480 --> 00:10:03.340 +project tile. Well, that's pretty much it. -09:07.000 --> 09:11.000 -and how does that happen if we try to +00:10:03.340 --> 00:10:08.800 +And how do I define this variable? -09:11.000 --> 09:15.000 -look at the code, the elisp magic here, what +00:10:09.280 --> 00:10:12.500 +Is essentially there is this magical file in -09:15.000 --> 09:19.000 -is happening is, it's just a couple lines of code, in fact, so +00:10:12.500 --> 00:10:14.160 +a folder called dear locals, -09:19.000 --> 09:23.000 -let me just press control, help +00:10:14.440 --> 00:10:17.380 +elist. And I just put it there. -09:23.000 --> 09:27.000 -key, and so the key I was +00:10:17.440 --> 00:10:20.380 +And then whenever I go into that folder or -09:27.000 --> 09:31.000 -pressing is open project org mode file, and so +00:10:20.380 --> 00:10:22.300 +any of its children folders, -09:31.000 --> 09:35.000 -what we see here, there is a single, so it's just a call to a find +00:10:22.300 --> 00:10:23.860 +I get this variable defined. -09:35.000 --> 09:39.000 -file function, so I open that file, and there is a special function that +00:10:24.840 --> 00:10:26.260 +And that's pretty much it. -09:39.000 --> 09:43.000 -figures out what is the, like, umbrella +00:10:26.280 --> 00:10:28.880 +That's how it works for me. -09:43.000 --> 09:47.000 -project notes file, and that's, again, that's very easy, so +00:10:31.860 --> 00:10:34.620 +I guess 1 thing that I wanted to emphasize -09:47.000 --> 09:51.000 -essentially, if a variable describing this +00:10:35.380 --> 00:10:37.360 +specifically about that is of course, -09:51.000 --> 09:55.000 -the name for that project is defined, then +00:10:37.940 --> 00:10:39.720 +it is a time tracking, -09:55.000 --> 09:59.000 -I use that as my project folder name, if not, I take the project name from the +00:10:39.720 --> 00:10:42.260 +right? So what is I find especially important -09:59.000 --> 10:03.000 -project towel, and well, that's pretty much it, +00:10:42.260 --> 00:10:44.280 +when I work in something and I want to clock -10:03.000 --> 10:07.000 -and how do I define this +00:10:44.340 --> 00:10:47.620 +time, I usually do not want this information -10:07.000 --> 10:11.000 -variable is, essentially, there is this +00:10:47.800 --> 00:10:50.340 +to be in a source code repository or in a -10:11.000 --> 10:15.000 -magical file in a folder called dear locals elisp, +00:10:50.340 --> 00:10:52.600 +paper repository because other people I work -10:15.000 --> 10:19.000 -and I just put it there, and then, whenever I +00:10:52.600 --> 00:10:54.840 +with will not be particularly happy about -10:19.000 --> 10:23.000 -go into that folder, or any of its children folders, I get this +00:10:54.840 --> 00:10:57.540 +that, especially if most of them do not use -10:23.000 --> 10:27.000 -variable defined, and that's pretty much it, that's how +00:10:57.540 --> 00:11:00.720 +Emacs and they'll see this long list of org -10:27.000 --> 10:31.000 -it works for me. +00:11:00.720 --> 00:11:03.820 +clocked data and that doesn't look nice in a -10:31.000 --> 10:35.000 -I guess one thing that I wanted to emphasize +00:11:03.820 --> 00:11:07.540 +plain text format. So what I usually do if I -10:35.000 --> 10:39.000 -specifically about that is, of course, it's +00:11:07.540 --> 00:11:10.240 +want to clock in some time and then later -10:39.000 --> 10:43.000 -time tracking, right, so what I find especially important when I work in +00:11:10.240 --> 00:11:12.560 +analyze what I've been spending time on, -10:43.000 --> 10:47.000 -something, and I want to clock time, I usually do not want +00:11:12.560 --> 00:11:16.880 +so I go to my org mode file and I go to the, -10:47.000 --> 10:51.000 -this information to be in a source code repository or in a paper repository +00:11:16.880 --> 00:11:21.820 +my current project to-dos and I clock in -10:51.000 --> 10:55.000 -because other people I work with will not be particularly happy about that +00:11:21.820 --> 00:11:23.940 +there. And that's how it works. -10:55.000 --> 10:59.000 -especially if most of them do not use Emacs, and they will see +00:11:23.940 --> 00:11:28.860 +So again, what comes in handy, -10:59.000 --> 11:03.000 -this long list of org clocked data, and that doesn't look +00:11:28.860 --> 00:11:31.500 +if I hit Control O, I just go back to the -11:03.000 --> 11:07.000 -nice in a plain text format, so what I usually +00:11:31.500 --> 00:11:34.240 +file I jumped in into and that's I jumped -11:07.000 --> 11:11.000 -do if I want to clock in some time, and then later analyze what I've +00:11:34.240 --> 00:11:35.900 +from so that's also pretty handy. -11:11.000 --> 11:15.000 -been spending time on, so I go to my org mode file +00:11:36.220 --> 00:11:38.800 +So again no no rocket science in there. -11:15.000 --> 11:19.000 -and I go to my current project +00:11:40.380 --> 00:11:42.660 +So I create a directory local variable that -11:19.000 --> 11:23.000 -to-dos, and I clock in there, and that's +00:11:42.660 --> 00:11:46.100 +helps me to figure out what umbrella project -11:23.000 --> 11:27.000 -how it works, so again +00:11:46.620 --> 00:11:49.720 +does this particular folder belongs to. -11:27.000 --> 11:31.000 -what comes in handy if I hit ctrl-o, I just go +00:11:49.940 --> 00:11:53.260 +And this way I make Emacs aware of, -11:31.000 --> 11:35.000 -back to the file I jumped from, so that's also +00:11:53.260 --> 00:11:54.480 +for example, facts like, -11:35.000 --> 11:39.000 -pretty handy, so again, no rocket science in there +00:11:54.480 --> 00:11:56.740 +so this source code belongs to that project. -11:39.000 --> 11:43.000 -so I create a directory local variable that helps me +00:11:56.740 --> 00:11:59.080 +And this paper, this repository with a paper -11:43.000 --> 11:47.000 -to figure out what umbrella project does +00:11:59.180 --> 00:12:00.640 +also belongs to that project. -11:47.000 --> 11:51.000 -this particular folder belongs to, and this way +00:12:01.060 --> 00:12:04.040 +And I can have capture templates that would -11:51.000 --> 11:55.000 -I make Emacs aware of, for example, facts like so this +00:12:04.060 --> 00:12:07.580 +save my notes into the my private notes file -11:55.000 --> 11:59.000 -source code belongs to that project, and this repository with the paper +00:12:07.800 --> 00:12:10.460 +and my to-dos and go to my private note files -11:59.000 --> 12:03.000 -also belongs to that project, and I can have capture templates +00:12:10.920 --> 00:12:12.260 +and so on and so forth. -12:03.000 --> 12:07.000 -that would save my notes into my private notes +00:12:12.260 --> 00:12:15.520 +So I find it pretty simple but that really -12:07.000 --> 12:11.000 -file, and my to-dos go to my private note files +00:12:15.520 --> 00:12:19.540 +helps to reduce this context switching. -12:11.000 --> 12:15.000 -and so on and so forth, so I find it pretty simple, but +00:12:19.600 --> 00:12:22.040 +And I don't believe it allows me to save -12:15.000 --> 12:19.000 -that really helps to reduce this context +00:12:22.040 --> 00:12:26.260 +time, but that probably helps me to stay -12:19.000 --> 12:23.000 -switching, and I don't believe it allows me to save time +00:12:26.260 --> 00:12:28.420 +focused. And this is what is really -12:23.000 --> 12:27.000 -but that probably helps me to stay focused, and this +00:12:28.420 --> 00:12:31.400 +important, I believe. So thank you very much. -12:27.000 --> 12:31.000 -is what is really important, I believe, so thank you +00:12:31.400 --> 00:12:33.220 +And if you have any comments or suggestions -12:31.000 --> 12:35.000 -very much, and if you have any comments or suggestions to that, please do jump +00:12:33.320 --> 00:12:35.940 +to that, please do jump into the discussion. -12:35.000 --> 12:39.000 -into the discussion, yeah, after the talk, thank you. +00:12:37.120 --> 00:12:38.900 +Yeah, after the talk, thank you. diff --git a/2023/info/core-after.md b/2023/info/core-after.md index 6eb189f1..13fa508a 100644 --- a/2023/info/core-after.md +++ b/2023/info/core-after.md @@ -4,1560 +4,1560 @@ <a name="core-mainVideo-transcript"></a> # Transcript (unedited) -[[!template text="""All right. Hi again, everyone.""" start="00:00:03.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's been a while. Well,""" start="00:00:04.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""actually, it's been like 2 minutes tops.""" start="00:00:06.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""We were just with John Wheatley,""" start="00:00:08.599" video="mainVideo-core" id="subtitle"]] -[[!template text="""and now we are with Stefan Krangas.""" start="00:00:10.519" video="mainVideo-core" id="subtitle"]] -[[!template text="""Hi. Hi. So as we said before,""" start="00:00:15.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""Stefan is co-maintainer now of Is it the""" start="00:00:20.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""entire Emacs project? How do you describe""" start="00:00:22.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""this? Yeah, co-maintainer of GNU Emacs.""" start="00:00:25.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right, perfect. So you know what?""" start="00:00:29.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""Because I'm sure everyone is dying to hear""" start="00:00:31.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""everything you've got to say in your""" start="00:00:33.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""presentation I'm just going to shut up now""" start="00:00:35.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""and leave the floor to you.""" start="00:00:37.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Do you need to share your screen or anything?""" start="00:00:38.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""No. Okay great well I'll just cut my webcam""" start="00:00:44.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""off I'll still be in the background so do not""" start="00:00:46.879" video="mainVideo-core" id="subtitle"]] -[[!template text="""hesitate if you've got any problem I'm still""" start="00:00:48.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""around And I'll see you just beacon whenever""" start="00:00:52.239" video="mainVideo-core" id="subtitle"]] -[[!template text="""you're done. And I'll show up with the""" start="00:00:53.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""questions. All right? Thank you,""" start="00:00:55.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""Leo. And thank you, everyone,""" start="00:00:58.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""for being here. I'm Stefan Kangas.""" start="00:01:01.879" video="mainVideo-core" id="subtitle"]] -[[!template text="""So as Leo explained, I am recently appointed""" start="00:01:06.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""as a co-maintainer of GNU Emacs,""" start="00:01:09.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""which a role that I'm fulfilling currently""" start="00:01:12.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""with Eli Sretsky, who's been co-maintainer""" start="00:01:16.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""for quite some time. So I got the question to""" start="00:01:23.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""be a co-maintainer from Richard in August""" start="00:01:26.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""this year. And of course,""" start="00:01:28.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""when you get a question like that,""" start="00:01:30.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I couldn't not say yes.""" start="00:01:33.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""So here we are. I can't tell you how excited""" start="00:01:38.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""I am to have this opportunity to address the""" start="00:01:44.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""community in this way.""" start="00:01:46.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm really humbled, of course,""" start="00:01:49.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""to be part of it, and to be able to serve the""" start="00:01:54.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""community in this capacity.""" start="00:01:58.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""I've used Emacs, I think many of you might""" start="00:02:03.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""also have used Emacs for quite some time,""" start="00:02:06.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""but I'm going on 2 decades as an Emacs user.""" start="00:02:10.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""My involvement in Emacs Lisp development is,""" start="00:02:14.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, almost as long,""" start="00:02:15.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""but my core development goes back only 4,""" start="00:02:19.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""5 years. I have to also thank the EmacsConf""" start="00:02:26.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""organizers who are doing,""" start="00:02:28.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, a tremendous job and have done a""" start="00:02:31.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""tremendous job over the years in really""" start="00:02:34.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""building and strengthening what I think is""" start="00:02:37.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""this fantastic community of users and""" start="00:02:41.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""developers and people interested in Emacs.""" start="00:02:45.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""I actually had the chance to meet up with Eli""" start="00:02:49.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sretzky, as well as another Emacs hacker,""" start="00:02:53.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""Andrea Corallo, when I was at the GNU""" start="00:02:56.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""project's 40 years celebration,""" start="00:02:59.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""40 years since the GNU project was announced.""" start="00:03:03.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it was very inspiring in general to meet""" start="00:03:08.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""people. And I think EmacsConf should also,""" start="00:03:12.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, serve to inspire and sort of help""" start="00:03:17.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""bring something to the type of work that many""" start="00:03:21.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""of us are doing to improve Emacs,""" start="00:03:23.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""whether it's in package development or in""" start="00:03:26.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""core, to bring out the new and exciting ideas""" start="00:03:29.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""and get people enthusiastic about Emacs,""" start="00:03:33.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""about hacking on Emacs.""" start="00:03:37.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""This is my little attempt to contribute with""" start="00:03:44.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's say 2 things. I will first try to""" start="00:03:48.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""present how we do Emacs core development and""" start="00:03:54.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""why we've done some of the choices that we""" start="00:03:58.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""have, because We have seen at times that""" start="00:04:01.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps people aren't always clear on this or""" start="00:04:06.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""that aspect. So maybe this will be""" start="00:04:08.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""enlightening. I will also try to present some""" start="00:04:12.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""kind of vision for what Emacs could be with""" start="00:04:17.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""your help. Emacs is already very good,""" start="00:04:21.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""as we all know, but we could be even better.""" start="00:04:26.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's the reality of any type of software""" start="00:04:29.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""development. So the overall idea of this talk""" start="00:04:34.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""is to tell you, if you're an Emacs list""" start="00:04:38.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""package developer today,""" start="00:04:39.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""why you should become an Emacs core""" start="00:04:43.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""developer, and the sort of steps that you""" start="00:04:47.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""might want to take to do that,""" start="00:04:48.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""or how you can help Emacs core development.""" start="00:04:51.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""Even if you're just a user and you found a""" start="00:04:54.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""bug, report it. Perhaps you have a feature""" start="00:04:57.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""request that you'd like to discuss.""" start="00:04:58.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think we need more interaction in general""" start="00:05:02.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""between Emacs core developers,""" start="00:05:04.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""typically on emacsdevil.gnu.org,""" start="00:05:05.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""the mailing list that we use to coordinate""" start="00:05:11.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""our development efforts,""" start="00:05:14.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""between Emacs devil package developers and""" start="00:05:19.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""users, Because there is so much great stuff""" start="00:05:21.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""really going on in the community.""" start="00:05:24.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I think sometimes the step to core""" start="00:05:28.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""development seems big and perhaps even a""" start="00:05:32.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit scary. So I'm hoping to be able to""" start="00:05:35.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""help bridge that gap, even if just a little""" start="00:05:38.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""bit. We need more people contributing to""" start="00:05:42.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs itself. And also a small disclaimer""" start="00:05:46.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""here, in this talk I will only be able to""" start="00:05:49.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""speak for myself, not for GNU or the Emacs""" start="00:05:53.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""project, even if it's like a little bit more""" start="00:05:55.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""official, but I will also try to give the""" start="00:05:58.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""view of the project where it makes sense to""" start="00:06:01.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""do so. Keep in mind, I'm only 1 of the""" start="00:06:04.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""maintainers, the co-maintainer together with""" start="00:06:06.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""Eli, and I can't just make decisions""" start="00:06:09.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""arbitrarily. In a sense,""" start="00:06:10.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm as a co-maintainer and trusted as a""" start="00:06:14.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""steward and trusted by,""" start="00:06:15.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""of course, the GNU project,""" start="00:06:16.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""but also by the community That we really""" start="00:06:21.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""can't just take decisions,""" start="00:06:23.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, arbitrarily. Even if it sometimes""" start="00:06:26.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps may seem so, or it may feel that way,""" start="00:06:30.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""we really have to realize that we can't just""" start="00:06:34.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""push too much of just a personal agenda to""" start="00:06:39.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""the extent that it doesn't line up with what""" start="00:06:41.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""is best for eMacs going forward,""" start="00:06:44.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""and the more overall picture of that.""" start="00:06:50.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""So there are limitations that come with the""" start="00:06:52.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""job, if you like. So 1 question I often,""" start="00:06:59.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""I actually got this week when I started a new""" start="00:07:02.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""assignment at work, and I got the question""" start="00:07:04.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""when I said I'm involved in Emacs""" start="00:07:08.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""development. And then someone asked,""" start="00:07:10.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""oh, is Emacs still developed?""" start="00:07:11.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""Isn't it done almost? And I answered to that,""" start="00:07:16.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""yes, we are still around.""" start="00:07:17.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""We're going on 40 years now as a software""" start="00:07:21.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""project. Not many projects actually can claim""" start="00:07:25.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""that type of longevity.""" start="00:07:28.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""But Emacs is among those few that can.""" start="00:07:33.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""And of course, we have had some very exciting""" start="00:07:35.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""developments in recent versions.""" start="00:07:37.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think John just gave you an update on that.""" start="00:07:41.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""But we had just some highlights out of many""" start="00:07:45.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""highlights that you could give,""" start="00:07:47.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""really, we got the TreeSetter support in""" start="00:07:50.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs 29 that we now need to sort of extend""" start="00:07:53.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""and develop. We have merged EGLOT,""" start="00:07:55.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""so we have LSP support out of the box,""" start="00:07:59.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think is a huge improvement.""" start="00:08:00.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""Native compilation, of course,""" start="00:08:02.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""a big feature. I mean,""" start="00:08:06.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""that was Andrea's job,""" start="00:08:08.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""really, for performance.""" start="00:08:10.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it turns out that in many types of""" start="00:08:13.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""workloads and the types of stuff that people""" start="00:08:15.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""are doing, it often matters.""" start="00:08:17.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""And we're hoping to make that the default,""" start="00:08:20.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps already in Emacs 30.""" start="00:08:24.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""So there are things that are happening that""" start="00:08:26.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""fundamentally make Emacs better at a very""" start="00:08:31.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""core level. So, of course,""" start="00:08:37.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""why wouldn't you want to be involved in such""" start="00:08:41.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""an exciting and, I think,""" start="00:08:43.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""dynamic project? How is Emacs developed?""" start="00:08:50.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""Well, this is, I think,""" start="00:08:52.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps to some people,""" start="00:08:53.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""a little bit more of a threshold,""" start="00:08:55.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you like, because I think all of us know""" start="00:08:58.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""really that there is exciting and cool stuff""" start="00:09:02.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""that is going on in Emacs and has been going""" start="00:09:06.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""on over the last couple of years and we'll""" start="00:09:08.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""see even more of that,""" start="00:09:09.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, going forward.""" start="00:09:10.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""1 thing is that communication still takes""" start="00:09:16.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""place over a mailing list in 2023.""" start="00:09:19.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we have emacsdevil at gnu.org,""" start="00:09:23.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""and that's where we develop Emacs.""" start="00:09:25.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""We use, we send patches back and forth,""" start="00:09:29.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""we comment on patches.""" start="00:09:30.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""And actually this workflow is very good,""" start="00:09:35.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you're used to it. Because guess what?""" start="00:09:39.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""As Emacs users, we like doing everything we""" start="00:09:42.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""can in Emacs, especially the core tasks that""" start="00:09:45.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""we're doing, such as developing Emacs itself.""" start="00:09:49.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""Of course, you want to do that fully within""" start="00:09:52.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs. So we hack Emacs Lisp in Emacs,""" start="00:09:55.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""we hack C in Emacs, we respond to emails also""" start="00:09:58.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""from Emacs, respond to bug reports,""" start="00:10:02.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""manage bug reports. We do all that stuff""" start="00:10:04.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""very, very smoothly. And it doesn't really""" start="00:10:07.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""matter in a sense, what is the medium?""" start="00:10:10.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""It happens to be email.""" start="00:10:11.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""Technically it could be anything,""" start="00:10:13.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""but email really has that type of staying""" start="00:10:16.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""power where we've been able to use it for a""" start="00:10:19.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""long time. And this is how,""" start="00:10:20.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""and we're still able to use it.""" start="00:10:23.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""And this is how free software was always""" start="00:10:25.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""developed in the past.""" start="00:10:26.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Only in the last, let's say 10,""" start="00:10:28.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""15 years, We've had more development taking""" start="00:10:32.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""place perhaps on forges like GitHub,""" start="00:10:35.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""GitLab, whatever. But we are 1 of the""" start="00:10:39.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""holdouts. I mean, there are others,""" start="00:10:40.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""of course, like the Linux kernel has mailing""" start="00:10:42.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""lists. They're not trying to do that scale""" start="00:10:44.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""development on GitHub.""" start="00:10:47.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""And this is not just because we're Luddites""" start="00:10:50.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""that refuse to change.""" start="00:10:53.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""We just have to do it in the old way,""" start="00:10:55.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""because it is the old way,""" start="00:10:56.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""and that's the way it should be.""" start="00:10:58.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""No, it's actually because we,""" start="00:10:59.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""as core developers, the core development team""" start="00:11:03.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""and the people already involved and doing""" start="00:11:05.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""tremendous, I mean large amounts of work in""" start="00:11:08.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs has very efficient workflows built up""" start="00:11:11.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""based on this. So of course,""" start="00:11:15.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean moving to something else is something""" start="00:11:17.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""that we might like to do,""" start="00:11:19.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""but we're not yet clear on how to do it""" start="00:11:24.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""exactly and what to move to.""" start="00:11:25.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""So these are the types of discussions that""" start="00:11:27.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""we're looking at. Can we still support a""" start="00:11:30.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""mailing, an email type workflow while moving""" start="00:11:33.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""to something else? That would be 1 of the big""" start="00:11:35.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""ones. I think another thing that trips people""" start="00:11:38.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""up is that we used a bug tracker that,""" start="00:11:40.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, maybe some people,""" start="00:11:42.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""I've heard people say it's archaic.""" start="00:11:45.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's called Debugs. I think maybe Debugs gets""" start="00:11:49.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""a bit of a bad rap. I think that bugs is a""" start="00:11:51.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""good piece of software.""" start="00:11:52.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""It wasn't developed in 2023.""" start="00:11:54.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, that's much as clear.""" start="00:11:57.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's a little bit older,""" start="00:11:58.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""but it really is a workhorse of the Debian""" start="00:12:00.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""project, which is obviously a project that's""" start="00:12:03.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""developed in a very different way than Emacs""" start="00:12:08.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""is. It's on a completely different scale,""" start="00:12:11.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""of course, much bigger,""" start="00:12:12.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""many more developers, and so on.""" start="00:12:14.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I think the developers did a good job for""" start="00:12:17.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""the time. But it might be showing its age,""" start="00:12:19.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps, in places. Perhaps,""" start="00:12:22.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""again, it's the email workflow.""" start="00:12:24.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""And people see that as a little bit of a""" start="00:12:27.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""threshold. It seems alien.""" start="00:12:29.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's a little bit strange,""" start="00:12:30.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""the types of workflows that you have there.""" start="00:12:34.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we are seeing some limitations with that""" start="00:12:38.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""box. And again, how do you report bugs?""" start="00:12:40.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Well, in a sense, it's easy.""" start="00:12:42.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""You send an email to bug-gnu-emacs at gnu.org""" start="00:12:46.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""and you copy in whatever you get from,""" start="00:12:51.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, report the EMAX bug or if you have,""" start="00:12:53.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, send mail set up locally,""" start="00:12:54.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""just hit control C, control C and it's sent""" start="00:12:58.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""to the bug tracker and that's fine.""" start="00:13:01.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""But also I have to mention that there is this""" start="00:13:08.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""very good package on GNU Elpas.""" start="00:13:10.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""If you're ever trying to read the Emacs bug""" start="00:13:13.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""tracker or following along in Emacs""" start="00:13:16.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""development, I really recommend install the""" start="00:13:18.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""package devbugs from GNU Elpa.""" start="00:13:20.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's so good. And again,""" start="00:13:23.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's built on GNU, it's all integrated in""" start="00:13:26.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs, it's so much better than using the web""" start="00:13:29.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""and so on. And if you really want to get into""" start="00:13:32.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""it, you can download the bug tracker archives""" start="00:13:37.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""and the mailing list archives,""" start="00:13:39.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""and you can put them locally,""" start="00:13:40.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""you can have them searchable,""" start="00:13:41.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""and you can have whatever experience you""" start="00:13:44.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""like. So, I mean, it's really a flexible""" start="00:13:46.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""workflow, but it's a bit strange,""" start="00:13:50.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps, to some people.""" start="00:13:52.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we also think supporting only this""" start="00:13:57.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""workflow might be a little bit too limiting.""" start="00:13:59.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we do want to move over to something like""" start="00:14:03.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""GitLab, perhaps Sourcehat or something""" start="00:14:06.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""similar. We've had a couple of discussions""" start="00:14:09.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""about that over the last couple of years.""" start="00:14:13.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think even before that,""" start="00:14:15.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""but that's how far back I've been involved,""" start="00:14:18.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""and definitely it's come up occasionally.""" start="00:14:21.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think we are less far away than perhaps""" start="00:14:27.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""ever is how I would express that,""" start="00:14:30.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""and in the sense that the remaining blockers""" start="00:14:36.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""for just making the shift,""" start="00:14:38.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's say, are I think,""" start="00:14:39.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, first of all, we're talking about""" start="00:14:41.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""limitations, perhaps in the software,""" start="00:14:43.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""they're well defined, and they're not as""" start="00:14:46.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""amountable. I don't think they have to be in""" start="00:14:48.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""any case. We should be able to make some""" start="00:14:50.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""progress. The main thing that we're lacking""" start="00:14:54.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""now is not more discussion or more people""" start="00:14:57.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""prodding us to just please switch over.""" start="00:15:02.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""No, we're looking for volunteers.""" start="00:15:04.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""If you think that you,""" start="00:15:07.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, have what it takes to sort of come""" start="00:15:10.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""in and help us do something like that and""" start="00:15:13.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""work together with us,""" start="00:15:14.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, to see what can be done,""" start="00:15:16.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps some, a few things would need to be""" start="00:15:19.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""changed in GitLab. I don't think anything""" start="00:15:22.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""huge, but maybe there are some patches to be""" start="00:15:25.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""written and sent upstream,""" start="00:15:27.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""or maybe we need to do some local hacks or""" start="00:15:30.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""whatever. If you wanna do that,""" start="00:15:32.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""please contact us, emacsdevil.""" start="00:15:34.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""We'll be very happy to talk to you.""" start="00:15:38.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""And then we can start making progress.""" start="00:15:39.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""So I'm really hoping that that sound like""" start="00:15:42.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""will come into place. But we need to,""" start="00:15:46.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""if we do switch over, we need to preserve the""" start="00:15:52.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""good parts of our email-based workflows.""" start="00:15:54.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""So there are requirements there so that we""" start="00:15:56.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""can continue to do our job as maintainers,""" start="00:15:59.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you like. Another thing is that we've""" start="00:16:04.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""sometimes seen that there's a bit of a""" start="00:16:08.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""different culture perhaps on mailing lists""" start="00:16:11.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""and on Emacs devil than what many people are""" start="00:16:14.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""used to, especially like you've used perhaps,""" start="00:16:17.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""many people might be in university and""" start="00:16:20.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""they've started using Emacs,""" start="00:16:23.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe got into a little bit of package""" start="00:16:25.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""development and starting to get the ropes of""" start="00:16:28.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""that and are very used to working on places""" start="00:16:32.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""like GitLab or something like that,""" start="00:16:34.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""then the type of culture and way of""" start="00:16:37.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""communicating that we use in Emacs might be a""" start="00:16:41.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit different. And of course,""" start="00:16:43.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's different in the sense that mailing""" start="00:16:46.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""lists have always, I mean,""" start="00:16:49.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's say hacker culture,""" start="00:16:50.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""whatever you want to call it,""" start="00:16:51.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""have always communicated in a particular way""" start="00:16:53.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""using mailing lists. So it's like succinct to""" start="00:16:58.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""the point, perhaps I'm skipping a few""" start="00:16:59.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""pleasantries. And the idea is that you should""" start="00:17:03.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""just use it in as effective way as possible,""" start="00:17:07.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""so that also the archives are usable.""" start="00:17:10.599" video="mainVideo-core" id="subtitle"]] -[[!template text="""And the other thing is that generally people""" start="00:17:13.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""involved in developing free software has to""" start="00:17:16.319" video="mainVideo-core" id="subtitle"]] -[[!template text="""deal with a lot of incoming traffic,""" start="00:17:19.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""emails. They don't have the bandwidth if it's""" start="00:17:25.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""too much noise. You really need to be strict""" start="00:17:27.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""to keep the signal to noise ratio high.""" start="00:17:31.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""We have some weird terminology on the Emacs""" start="00:17:34.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""devil. People tell us,""" start="00:17:37.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""we say sometimes install patches which""" start="00:17:40.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""basically means push to master or merge pull""" start="00:17:43.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""requests because we've used other version""" start="00:17:46.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""control systems in the past where it might""" start="00:17:48.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""have made more sense to say install patches.""" start="00:17:50.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""And then you sort of, I don't know,""" start="00:17:52.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""I say it. Don't ask me why.""" start="00:17:54.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""But it feels natural after a while.""" start="00:17:55.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""You install a patch. It's clear what you""" start="00:17:57.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""mean. You don't have to worry about which""" start="00:18:02.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""branch it's on. So it's a little bit""" start="00:18:05.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""historical there. So there is some of that""" start="00:18:09.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""culture going on. It might be different.""" start="00:18:11.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""We don't use emojis that much.""" start="00:18:13.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's another thing. There is no like,""" start="00:18:16.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""you can click the little like button at the""" start="00:18:20.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""bottom of a comment or an email as you could""" start="00:18:24.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""on GitHub. But there are exceptions and it's""" start="00:18:27.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""not like someone will send you angry emails""" start="00:18:29.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you use an emoji or something like that.""" start="00:18:31.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""But it can come off as perhaps Because people""" start="00:18:33.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""are pressed for time also when replying to""" start="00:18:36.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""all these emails. So it might come off as a""" start="00:18:39.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit short, but that's just how it is.""" start="00:18:42.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think We have heard this comment before""" start="00:18:46.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""that mailing lists are scary or Emacs devil""" start="00:18:50.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""is scary or core development is scary.""" start="00:18:53.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I've touched a few of these points a""" start="00:18:58.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit already. I think,""" start="00:18:59.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""yeah, maybe a little bit.""" start="00:19:01.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""For example, we don't use emojis very short""" start="00:19:05.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""in the communication. And we always use""" start="00:19:10.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""correct grammar and spelling.""" start="00:19:12.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""We take that seriously because it's important""" start="00:19:15.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""for being clear in your written communication""" start="00:19:18.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""when all you have is written communication.""" start="00:19:21.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's really important.""" start="00:19:23.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""But it's not like If you come in there and""" start="00:19:31.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""you don't know all these cultural rules and""" start="00:19:33.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""all these patterns, then you know you will We""" start="00:19:36.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""won't talk to you No Actually,""" start="00:19:37.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""we try to be as welcoming as we can and and""" start="00:19:40.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""be mindful and you know people not Everyone""" start="00:19:44.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""has English as their native language,""" start="00:19:46.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""for example. So perhaps someone says""" start="00:19:48.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""something, and it might come off as rude,""" start="00:19:50.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""but maybe it's just a direct translation.""" start="00:19:52.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we're trying to give a lot of whatever the""" start="00:19:56.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""native language is. So we try to give a lot""" start="00:19:59.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""of leeway and just be a little bit,""" start="00:20:01.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, flexible and focus on,""" start="00:20:03.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, the key, key points,""" start="00:20:04.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""which are the technical things,""" start="00:20:06.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""the technical decisions,""" start="00:20:07.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""technical arguments, rather than,""" start="00:20:09.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, getting bogged down in a lot of,""" start="00:20:11.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, personal, you know,""" start="00:20:15.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""discussions and flame wars.""" start="00:20:18.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""So, I mean, there are these things to be""" start="00:20:21.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""aware of, you know, it's just a little bit""" start="00:20:22.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""different. I don't think it's anything huge.""" start="00:20:24.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I wouldn't be, you know,""" start="00:20:26.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think it would be sad if people felt too""" start="00:20:30.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""intimidated by that. It just is what it is.""" start="00:20:32.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""And if you spend some time there,""" start="00:20:33.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""you'll see how people generally communicate.""" start="00:20:35.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes, there are a lot of people on""" start="00:20:41.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""EmacsDevil. It's a public mailing list.""" start="00:20:43.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""A lot of people just sign up to follow Emacs""" start="00:20:45.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""development. Sometimes they chime in.""" start="00:20:48.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think this is in general a good thing.""" start="00:20:50.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think it should be a public mailing list.""" start="00:20:52.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes this leads to weird situations from""" start="00:20:59.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""just a point of view as an Emacs maintainer,""" start="00:21:02.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? I mean, I try to say something and it""" start="00:21:06.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""doesn't always say, oh,""" start="00:21:07.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""he's the maintainer or whatever.""" start="00:21:09.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""So when I say something,""" start="00:21:10.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""it should carry a little bit more weight than""" start="00:21:13.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""some unknown person from the internet who has""" start="00:21:15.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""an opinion and decided to send it to""" start="00:21:17.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""EmacsDevil. So it's good to be a little bit""" start="00:21:20.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""aware of who is a little bit more involved""" start="00:21:22.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""with the project. I would check out the""" start="00:21:25.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""maintainers file. I would check,""" start="00:21:26.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""see in the Git log, do these people actually""" start="00:21:30.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""have any anything in core?""" start="00:21:32.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""And if not, maybe, you know,""" start="00:21:34.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""there, we won't really,""" start="00:21:38.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""even if they express an opinion very""" start="00:21:40.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""strongly, even if they're a little bit rude,""" start="00:21:42.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe they're not even involved in Emacs""" start="00:21:44.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""development. I mean, often,""" start="00:21:45.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's the case we have some people,""" start="00:21:48.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""unfortunately, at times,""" start="00:21:49.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""we have random people from the internet come""" start="00:21:52.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""in on the mailing list and they're just a""" start="00:21:54.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit rude, or they say an opinion""" start="00:21:56.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's not exactly helpful.""" start="00:21:59.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think you need to be aware.""" start="00:22:02.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, these things happen in any forum,""" start="00:22:03.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""but it happens on EmacsDevO as well.""" start="00:22:07.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""So just be a little bit aware of who you're""" start="00:22:10.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""talking to, what people are doing.""" start="00:22:13.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""It can help to Check the archives,""" start="00:22:15.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""see who writes what, and so on.""" start="00:22:17.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""But it's not something that I think is a huge""" start="00:22:22.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""problem. It is just, again,""" start="00:22:23.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""something to be aware of.""" start="00:22:25.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""We have the new kind of communication""" start="00:22:27.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""guidelines in place, which basically says""" start="00:22:30.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""that you should be nice to people and stay""" start="00:22:33.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""focused on the technical problem,""" start="00:22:35.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""try to see things from another person's point""" start="00:22:38.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""of view, this kind of stuff.""" start="00:22:39.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we're really trying to be as inclusive as""" start="00:22:41.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""possible and just stay correct in general.""" start="00:22:46.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""And sometimes, I mean,""" start="00:22:48.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""not everyone, it's a public list.""" start="00:22:49.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""We moderate it, but not to a huge extent,""" start="00:22:52.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? So sometimes people get away with a""" start="00:22:57.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit of perhaps stretching the""" start="00:23:02.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""boundaries of what might be included in the""" start="00:23:04.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""kind communication guidelines,""" start="00:23:06.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""sort of the fences and limitations of that.""" start="00:23:10.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I would just ignore that.""" start="00:23:13.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes it happens that we,""" start="00:23:15.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""as happens in any forum,""" start="00:23:16.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""by the way, you just, we have these very big""" start="00:23:19.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""threads. We start discussing something else.""" start="00:23:21.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""Perhaps you send us a patch and it just""" start="00:23:23.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""devolves into us discussing something""" start="00:23:25.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""completely different. And of course I partake""" start="00:23:28.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""in that, not better than anyone else,""" start="00:23:30.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""but it just happens. I mean,""" start="00:23:32.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's not your fault. It's just what happens""" start="00:23:34.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""sometimes in forums, and don't mind that.""" start="00:23:37.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it's a little bit easier to do that in""" start="00:23:38.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""emails, because you just change the subject,""" start="00:23:41.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""and now it's supposed to be a different""" start="00:23:43.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""thread, but it comes as replies usually to""" start="00:23:45.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""you, which wouldn't happen perhaps in a""" start="00:23:48.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""different workflow. So it's something to be""" start="00:23:49.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""aware of as well. Another thing is that,""" start="00:23:53.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""of course, in written communication,""" start="00:23:54.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""tone doesn't always come across.""" start="00:23:56.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""If someone sounds negative,""" start="00:23:58.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""sometimes it's just them being neutral.""" start="00:24:00.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes you get no replies.""" start="00:24:04.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""You send something, you get no replies.""" start="00:24:06.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""And this could mean, actually it could mean,""" start="00:24:08.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""yeah, what you said was uncontroversial.""" start="00:24:11.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""We think it was a good idea.""" start="00:24:12.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""No 1 replied to it because either someone""" start="00:24:16.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""else would reply or just there was no need to""" start="00:24:18.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""reply because, yeah, why not?""" start="00:24:20.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""So but if you do send a patch and you don't""" start="00:24:23.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""get an answer, wait. I mean,""" start="00:24:26.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""don't wait 1, 2 days. Maybe we're busy or""" start="00:24:29.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""we're sick or whatever.""" start="00:24:30.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""Wait 2 weeks. It's fine to just send it""" start="00:24:32.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""again. If you send the patch to EmacsDevil,""" start="00:24:34.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""send it to the bug mailing list,""" start="00:24:36.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""because we lose track of stuff on EmacsDevil.""" start="00:24:38.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's just the reality of it.""" start="00:24:41.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""So if you propose making a change and no 1""" start="00:24:45.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""commented, feel free to ask us again if a""" start="00:24:48.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""patch would be welcome and we will clarify.""" start="00:24:50.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""Bug reports, unfortunately,""" start="00:24:54.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you get no answer, I mean,""" start="00:24:55.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""we do have a limited amount of time to work""" start="00:24:59.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""on bugs. If you're looking to get started in""" start="00:25:02.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs development, this is an excellent way""" start="00:25:05.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""to start getting involved.""" start="00:25:06.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""What I'd recommend is start looking into""" start="00:25:09.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""bugs. I'd install that bug,""" start="00:25:11.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'd see about the mailing workflow and set""" start="00:25:13.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""that up a little bit, or not.""" start="00:25:15.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's up to you. You can reply to an email""" start="00:25:17.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""without setting any of that stuff up.""" start="00:25:19.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""But just help us try out your bugs,""" start="00:25:21.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""send patches, do that type of stuff.""" start="00:25:24.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, that's an excellent way,""" start="00:25:26.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""and extremely welcome.""" start="00:25:27.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""We're so happy to see when people pick up bug""" start="00:25:30.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""reports that have been left by the wayside""" start="00:25:32.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""and just fix them, send us a patch,""" start="00:25:34.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""and we can just apply it.""" start="00:25:37.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""So that's really your starting point if you""" start="00:25:40.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""want to get involved in Emacs core""" start="00:25:43.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""development. I also want to say that be aware""" start="00:25:50.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""that you know Emacs is the editor of the GNU""" start="00:25:53.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""operating system and this makes the project""" start="00:25:56.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""political a little bit whether you like it or""" start="00:25:58.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""not. Luckily the you know the politics are""" start="00:26:00.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""limited enough that we can find broad""" start="00:26:03.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""agreement on it. So we want to promote,""" start="00:26:05.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""we want to create free software.""" start="00:26:07.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's sort of it. That's it.""" start="00:26:10.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""And there shouldn't be too much more to it,""" start="00:26:13.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? We want to rid the world of""" start="00:26:15.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""proprietary software as an evil thing.""" start="00:26:19.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""Ideally, all software should be free.""" start="00:26:21.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""But these are just the goals of the free""" start="00:26:24.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""software movement. So we're very strict with""" start="00:26:27.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""some things. We don't recommend non-free""" start="00:26:29.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""proprietary software. Of course,""" start="00:26:31.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""we have no problem mentioning Microsoft""" start="00:26:32.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""Windows because everyone knows that there's""" start="00:26:34.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""this obscure operating system developed in""" start="00:26:39.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""California that some people insist on using.""" start="00:26:41.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""We use, many of us use GNU plus Linux.""" start="00:26:44.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""Actually, some core developers happen to use""" start="00:26:46.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""exactly, you know, not GNU plus Linux,""" start="00:26:50.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""but that's fine as well,""" start="00:26:52.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? We take a little bit of a pragmatic""" start="00:26:54.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""view, but we don't wanna do,""" start="00:26:56.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""what we don't wanna do is promote like this""" start="00:26:58.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""small, unknown piece of non-free software and""" start="00:27:04.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""sort of help the non-free software in that""" start="00:27:08.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""way. That's where we try to draw the line,""" start="00:27:11.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, in just expressing just a few""" start="00:27:15.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""words. So that's 1 thing.""" start="00:27:17.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""We're, I think, very pragmatic on this point,""" start="00:27:21.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""but we do try to follow the principle.""" start="00:27:24.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""We also require copyright assignment.""" start="00:27:26.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think in general,""" start="00:27:29.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""the argument is that we require a copyright""" start="00:27:34.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""assignment, because that makes it easier to""" start="00:27:38.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""defend the legal status of the GNU Emacs""" start="00:27:42.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""source code. So if there's ever a legal""" start="00:27:45.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""battle, the idea is that if it's only 1""" start="00:27:47.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""copyright holder and you have a GPL""" start="00:27:49.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""violation, i.e. Someone might change Emacs""" start="00:27:53.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""and then distribute it as proprietary""" start="00:27:55.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""software or something nasty like that,""" start="00:27:57.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""then we have an easier way of defending it in""" start="00:28:00.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""court if there is only 1 copyright holder.""" start="00:28:02.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we assigned copyright to the Free Software""" start="00:28:04.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Foundation. And I think there,""" start="00:28:08.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, sometimes people oppose this for""" start="00:28:12.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""various reasons, you know,""" start="00:28:13.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""people see it as, you know,""" start="00:28:15.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe some people might say,""" start="00:28:16.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, it's ideological,""" start="00:28:17.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, who goes, you know,""" start="00:28:19.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""the FSF goes too far with this.""" start="00:28:20.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""And, and, I mean, that's fine.""" start="00:28:23.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""You that's, that's an opinion.""" start="00:28:25.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""And the there, then other people are more""" start="00:28:28.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""practical, you know, it's just,""" start="00:28:29.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's a hassle, basically,""" start="00:28:30.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""we don't want to sign these papers.""" start="00:28:32.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I'm not really here to tell anyone that""" start="00:28:35.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""they're wrong. I've expressed my views on""" start="00:28:37.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""this in the past. But just for now,""" start="00:28:40.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm just very practical for the purposes of""" start="00:28:43.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""this talk. So I signed the papers.""" start="00:28:46.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's Maybe it didn't take me many minutes.""" start="00:28:48.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""And in most cases, it shouldn't really.""" start="00:28:51.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it's something that I found worth doing,""" start="00:28:54.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""because that way I could focus on continuing""" start="00:28:58.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""to improve Emacs instead of discussing the""" start="00:29:01.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""finer points of copyright law.""" start="00:29:02.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""You could write patches and stuff,""" start="00:29:04.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""that kind of thing. So,""" start="00:29:06.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, this is something that trips people""" start="00:29:08.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""up and, you know, it's fine that people have""" start="00:29:10.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""different opinions on it and so on,""" start="00:29:13.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""but I think for now that's just something to""" start="00:29:19.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""be aware of. So that's,""" start="00:29:22.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, I mean, there's much more that could""" start="00:29:25.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""be said. Ideally, I would like to have a""" start="00:29:27.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""practical part to this talk as well.""" start="00:29:30.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I wanted to say something about the""" start="00:29:34.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""packages in Emacs. Because as we know,""" start="00:29:36.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, Emacs is the, I can't remember what""" start="00:29:40.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""it says, it's like a visual,""" start="00:29:41.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""there's in the manual it says,""" start="00:29:43.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""oh, Emacs is an advanced text editor.""" start="00:29:45.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's visual, which, I mean,""" start="00:29:47.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's not ed, the whole Unix ed,""" start="00:29:49.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""so that's cool. It's also customizable,""" start="00:29:52.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? So that's always been a thing.""" start="00:29:55.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""And what makes Emacs so amazing.""" start="00:29:59.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""And some people described it as,""" start="00:30:01.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""I can't remember who said that there has been""" start="00:30:03.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""a Cambrian explosion of packages in Emacs.""" start="00:30:09.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think that's true.""" start="00:30:10.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, if you look at something like Melpa,""" start="00:30:12.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think they have over 5,000""" start="00:30:13.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""packages now. It's like truly impressive,""" start="00:30:15.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""just an immense amount of work and immense""" start="00:30:18.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""amount of packages. And really,""" start="00:30:21.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""this shows the strength,""" start="00:30:23.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, of the Emacs community,""" start="00:30:26.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""of Emacs itself as an idea.""" start="00:30:28.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think it's also just tremendous work""" start="00:30:30.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's been done by the maintainers.""" start="00:30:33.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""And they do get a lot of recognition for""" start="00:30:35.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""that. And rightly so, in my opinion.""" start="00:30:38.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's done so much, I think,""" start="00:30:41.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""for our community. The other package archive""" start="00:30:43.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""that we have is GNU-ELPA.""" start="00:30:45.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""And that's been enabled since when packages""" start="00:30:49.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""first got introduced back in,""" start="00:30:50.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, Emacs, was it 23?""" start="00:30:52.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""And probably, I mean, the main thing why a""" start="00:30:59.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""package goes onto GNU Elpa is,""" start="00:31:01.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, it should be installable out of the""" start="00:31:03.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""box. So, I mean, that's a big benefit in a""" start="00:31:07.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""sense. It's also a requirement for GNU Alpa""" start="00:31:10.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""that the copyright, again,""" start="00:31:11.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""just as GNU Emacs, the copyright is assigned""" start="00:31:14.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""to the Free Software Foundation.""" start="00:31:16.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""And some very hugely popular packages,""" start="00:31:19.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""like YaSnippet, for example,""" start="00:31:20.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""is on GNU Alpa. And we were discussing this""" start="00:31:24.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""just 2 months back. And Joe Tavora,""" start="00:31:29.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""I can't say his name, G-O-A-O,""" start="00:31:31.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Tavora. He made the point that he's never""" start="00:31:35.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""seen a problem in any of his packages with""" start="00:31:40.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""copyright assignment in particular.""" start="00:31:41.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's never been a problem to get people to be""" start="00:31:44.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""involved in the development of those packages""" start="00:31:46.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""just because of the copyright assignment""" start="00:31:47.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""requirements. So I mean,""" start="00:31:50.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's his perspective on that.""" start="00:31:53.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think it was worth relating his""" start="00:32:00.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""experience here. So we also have this new""" start="00:32:06.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""package archive called non-GNU-alpha,""" start="00:32:08.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""which is now enabled by default as well.""" start="00:32:12.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think for practical purposes,""" start="00:32:13.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""you could get into it a little bit more,""" start="00:32:16.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, why we created non-NUELPA,""" start="00:32:18.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""and perhaps that's something we can discuss""" start="00:32:21.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""in the Q&A section. For practical purposes,""" start="00:32:25.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""the main thing to be aware of is,""" start="00:32:27.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""yes, we don't promote non-free software on""" start="00:32:30.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""there, And we also don't have the copyright""" start="00:32:36.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""assignment requirement.""" start="00:32:38.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think this is probably for new packages.""" start="00:32:43.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's generally better if they go to GNU Elpa,""" start="00:32:47.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""if there is any type of idea or ambition""" start="00:32:50.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""that, you know, at some point it would be""" start="00:32:53.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""good or it might be good to eventually have""" start="00:32:56.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""some type of functionality like this shipped""" start="00:32:58.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""with Emacs itself. So I think this is""" start="00:33:01.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""something that perhaps package authors could""" start="00:33:03.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""also be aware of, that occasionally we do""" start="00:33:07.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""bring in functionality from GNU Elpa into""" start="00:33:09.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""core Emacs because we feel that it should be""" start="00:33:11.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""better integrated with Emacs itself.""" start="00:33:15.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""So if I could give any type of""" start="00:33:18.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""recommendation, of course,""" start="00:33:19.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""you do. These are your packages,""" start="00:33:21.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? In an ideal world,""" start="00:33:25.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""we would only use this for legacy packages""" start="00:33:28.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""where people contributed in the past,""" start="00:33:30.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""but you didn't worry about the copyright""" start="00:33:31.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""assignment. But where possible,""" start="00:33:33.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think there is benefit in putting it on GNU""" start="00:33:36.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""Elpa. And I wanted to end a little bit on a""" start="00:33:42.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""more, you know, the more opinionated perhaps""" start="00:33:44.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""part of my talk and not just talk about""" start="00:33:47.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""processes. I see that I'm running out of""" start="00:33:49.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""time. So I will say Emacs is hackable.""" start="00:33:51.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think that's a blessing and a curse.""" start="00:33:54.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""And if you think about something like,""" start="00:33:55.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""the types of choices that you can make,""" start="00:34:00.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""perhaps when you implement something,""" start="00:34:02.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""There are choices, different choices between""" start="00:34:06.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""something like common list,""" start="00:34:07.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""which is like bigger, more batteries""" start="00:34:08.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""included, and something like scheme,""" start="00:34:10.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""which is more minimal.""" start="00:34:11.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think we have some of those,""" start="00:34:13.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, this kind of tension also in the""" start="00:34:16.159" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs itself. What should be in Emacs core?""" start="00:34:17.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""Should we have a lean Emacs core?""" start="00:34:19.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Should we have more stuff in Emacs core?""" start="00:34:21.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think these are good discussions to""" start="00:34:26.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""have. And there are various challenges that""" start="00:34:29.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""are associated with each of those choices.""" start="00:34:31.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think what will never change is that Emacs""" start="00:34:34.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""is hackable. Emacs is customizable.""" start="00:34:36.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""This is the key strength.""" start="00:34:38.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""This is why we love and use Emacs.""" start="00:34:40.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think fundamentally,""" start="00:34:41.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""whether you do it a lot or not,""" start="00:34:43.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""this is what at core is bringing you that""" start="00:34:46.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""amazing user experience.""" start="00:34:48.679" video="mainVideo-core" id="subtitle"]] -[[!template text="""However, the flip side of that sometimes is""" start="00:34:53.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""that it's so easy to hack Emacs so that we""" start="00:34:56.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""hack around bugs instead of fixing them.""" start="00:34:58.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""We do some tweak and our customers say,""" start="00:35:00.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""okay, this is a little bit broken,""" start="00:35:01.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""Let me just fix it. I'll put an advice on""" start="00:35:03.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""this function. I'll do this customization.""" start="00:35:05.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""Or we accept limitations in Emacs core.""" start="00:35:08.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think it's fine.""" start="00:35:11.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, this will never change.""" start="00:35:13.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""That will always be core to what Emacs is,""" start="00:35:16.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? However, I think that the flip side of""" start="00:35:20.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""that is that I think sometimes we could be""" start="00:35:22.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""better at just taking those few extra steps""" start="00:35:26.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""to also make Emacs better itself and solve""" start="00:35:29.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""this for all users. And I think if we can""" start="00:35:31.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""build a little bit more of a culture like""" start="00:35:33.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""that, I mean, we already have that culture to""" start="00:35:35.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""a large extent, don't get me wrong,""" start="00:35:36.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""we do, but if we can get a little bit more of""" start="00:35:39.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""that culture, let's get that into core,""" start="00:35:41.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's get that problem fixed,""" start="00:35:43.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""that frustration. I can tell you that,""" start="00:35:45.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""I just started a new assignment at work,""" start="00:35:48.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""I already told you, so I'm going to write a""" start="00:35:51.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""lot of Python, okay? So I need to keep track""" start="00:35:53.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""of something called virtual environments,""" start="00:35:55.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""and that's just a way to install these""" start="00:35:57.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""dependencies just locally per directory or""" start="00:36:01.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""per repository kind of thing.""" start="00:36:02.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I've used various packages for that.""" start="00:36:05.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""There are like 4 packages,""" start="00:36:07.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""5 packages, maybe. And 1 is called VM,""" start="00:36:10.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""and 1 is called VirtualM,""" start="00:36:11.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""and 1 is called Python-VM.""" start="00:36:13.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""And now I'm using, you know,""" start="00:36:16.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm using a different 1.""" start="00:36:17.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it's just a little bit,""" start="00:36:19.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""why doesn't this work out of the box in""" start="00:36:22.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs? Why? I don't think there's a really""" start="00:36:25.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""good fundamental good reason why something""" start="00:36:28.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""like that doesn't work in Emacs.""" start="00:36:29.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""So I think that's really,""" start="00:36:31.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, I'm sure there are other things like""" start="00:36:34.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""that, other fundamental features.""" start="00:36:36.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""Why is it that for the last 20 years,""" start="00:36:39.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""we've shipped Emacs with no PHP support out""" start="00:36:43.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""of the box? I mean, I'm not a PHP programmer.""" start="00:36:47.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""I don't really have a lot of love for PHP,""" start="00:36:50.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's say. To me, it's a very funny-looking""" start="00:36:55.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""language, but okay, still it's been very""" start="00:36:59.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""popular. Why haven't we supported it?""" start="00:37:01.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, it's just strange.""" start="00:37:02.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""You install Emacs on some machine,""" start="00:37:04.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""you open a PHP file, you get fundamental""" start="00:37:06.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""mode. It's not the best user experience,""" start="00:37:08.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""in my opinion. So I think there are some""" start="00:37:12.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""things where we really could do a little bit""" start="00:37:15.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""better. And I'm seeing this all the time.""" start="00:37:19.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""Just this week, this new assignment was""" start="00:37:22.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""interesting. There was this Emacs user.""" start="00:37:24.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""Turns out we have the exact same hack in both""" start="00:37:26.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""of our init files. So we had created the""" start="00:37:29.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""exact same mode for DIRED,""" start="00:37:31.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""actually, to hide dot files.""" start="00:37:33.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""You know, dot something is supposed to be""" start="00:37:36.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""hidden on a Unix system.""" start="00:37:38.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""So we had DERED hide dot files mode to just""" start="00:37:43.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""hide them. And why isn't that in DERED?""" start="00:37:46.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""Or should it be in DERED?""" start="00:37:47.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""Should it be a package on the new Elpa?""" start="00:37:50.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Where should it be? Why is it just local""" start="00:37:52.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""hack? Should it be on a wiki somewhere?""" start="00:37:54.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, sometimes that's the correct answer.""" start="00:37:56.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes the correct answer is,""" start="00:37:58.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""yes, it should be a package.""" start="00:37:59.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sometimes the correct answer is,""" start="00:38:02.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""yes, it should really be in core.""" start="00:38:03.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""So what I want to promote is more like,""" start="00:38:05.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""let's just take a step back and just ask""" start="00:38:08.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""yourself, what's the best solution if we look""" start="00:38:11.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""at the overall picture?""" start="00:38:11.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""Should I hack this into my configuration?""" start="00:38:13.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""In many cases, yes, that's the right thing to""" start="00:38:16.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""do. We don't want to proliferate just random""" start="00:38:19.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""solutions all over Emacs for no reason.""" start="00:38:21.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""But sometimes we want to fix it once and for""" start="00:38:24.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""all. We want to do that in core.""" start="00:38:27.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""So you could send stuff like that to us as""" start="00:38:30.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""patches or as packages.""" start="00:38:30.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""And we can discuss a little bit about where""" start="00:38:34.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""should we solve this? What's the right level""" start="00:38:35.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""of abstraction? I'm seeing that I'm running""" start="00:38:40.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""out of time. I had an Emacs wish list.""" start="00:38:43.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""Maybe we can take more of that in the Q&A.""" start="00:38:46.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I want to say, like,""" start="00:38:49.107" video="mainVideo-core" id="subtitle"]] -[[!template text="""in VS Code, you just start VS Code.""" start="00:38:50.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""You open a Python file,""" start="00:38:51.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""and you get, like, hey,""" start="00:38:52.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""are you trying to use Python?""" start="00:38:54.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""Click here, install Python.""" start="00:38:55.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""You get all the nice things out of the box.""" start="00:38:58.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""And my argument is, why can't we have more of""" start="00:39:01.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""that in Emacs? I don't think it's necessarily""" start="00:39:03.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""hard, but it does take a little bit of work.""" start="00:39:05.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""The challenges here are more social,""" start="00:39:08.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, than technical.""" start="00:39:10.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I think it's worth doing,""" start="00:39:12.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""because it's not just Python.""" start="00:39:13.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's just There are always these small things""" start="00:39:16.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""where it just really should work,""" start="00:39:18.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""and that would be a much better experience.""" start="00:39:20.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""And then you could customize not that thing""" start="00:39:23.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""that should just work,""" start="00:39:24.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""but you could customize more fun and""" start="00:39:26.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""exploratory things instead of people""" start="00:39:29.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""reinventing the wheel over and over again.""" start="00:39:31.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""So I'm very excited about what's happening in""" start="00:39:33.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs. I think we should be proud of what""" start="00:39:35.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""we've accomplished. It's so many things to""" start="00:39:37.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""many different people,""" start="00:39:37.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""an environment for hacking,""" start="00:39:39.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""just a productivity system.""" start="00:39:41.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""Other sees us as a different way of looking""" start="00:39:43.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""at computing, you know,""" start="00:39:45.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""the embodiment of the ideal of the Lisp""" start="00:39:47.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""machine if you want to talk big words and""" start="00:39:49.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""stuff like that. And of course,""" start="00:39:50.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs are all those things and so many more.""" start="00:39:52.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""And that's what makes Emacs so amazing.""" start="00:39:54.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""And in some sense, we should be care that""" start="00:40:00.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""people are satisfied with using lesser text""" start="00:40:02.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""editors. How could they be happy running""" start="00:40:05.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""that? I mean, I'm sure it's fine,""" start="00:40:07.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""but it sure as hell isn't Emacs.""" start="00:40:09.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""So don't we owe it to the world and to them""" start="00:40:12.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""and to ourselves to make a great Emacs.""" start="00:40:13.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""That will be my ending words.""" start="00:40:15.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I hope to see you all in the Q&A.""" start="00:40:17.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""Thank you all. And thank you so much,""" start="00:40:22.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Stefan. That was a wonderful presentation.""" start="00:40:23.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I just want to give you the opportunity.""" start="00:40:26.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""You said that you perhaps had,""" start="00:40:29.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Not the practical stuff,""" start="00:40:31.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""but you wanted to do a demo or something like""" start="00:40:33.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""this? What did you mention exactly?""" start="00:40:34.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, we didn't have time really.""" start="00:40:37.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yes, I'm not sure. I didn't prepare anything""" start="00:40:41.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""so that we can do it live.""" start="00:40:43.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""But maybe for next time,""" start="00:40:44.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""I will do a demo. Don't hold me to it.""" start="00:40:48.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""Or someone else could.""" start="00:40:50.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""That would be really amazing.""" start="00:40:52.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right. Well, thank you,""" start="00:40:53.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""Stéphane. You've been already into so much""" start="00:40:56.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""detail of so many... So much of the intricacy""" start="00:41:00.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""of the maintenance. And as someone who's been""" start="00:41:04.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""95% of the time developing for Melpa,""" start="00:41:07.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""I feel like this talk was very geared to a""" start="00:41:10.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""lot of us who tend to experiment in this""" start="00:41:13.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""Cambrian stage of Emacs evolution,""" start="00:41:15.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""where we get to deploy a lot of creativity""" start="00:41:19.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""whilst also feeling pretty agile in a way we""" start="00:41:23.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""come up with solutions to problems.""" start="00:41:25.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""But you've won me over with your discussion""" start="00:41:28.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""about potentially moving some of this stuff""" start="00:41:31.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""to core. And I think this particularly""" start="00:41:32.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""resonated at the end with this tension that""" start="00:41:35.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""you feel about problems that you encounter.""" start="00:41:38.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Do you fix them in Melpa?""" start="00:41:40.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Do you fix them in core?""" start="00:41:41.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""Is it not something that is supposed to be an""" start="00:41:43.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""option? I love this tension and it's""" start="00:41:46.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""something that we've been exploring for the""" start="00:41:47.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""last 3 edition of Emacs Cons.""" start="00:41:49.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's really what is to be the interaction""" start="00:41:51.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""between this pool of very clever developers""" start="00:41:55.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""who are on Melpa but who are perhaps a little""" start="00:41:57.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""bit afraid of joining Core and the wonderful""" start="00:42:00.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""job that you do that, yes,""" start="00:42:02.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""seems archaic from the outside,""" start="00:42:05.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""but as you've been at length today in your""" start="00:42:07.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""presentation, is actually just a better way""" start="00:42:09.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""to work, a very pragmatic way to get a lot of""" start="00:42:11.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""work done. So, thank you so much for your""" start="00:42:13.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""presentation. Thank you,""" start="00:42:15.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""Leo. So, we have about 12 minutes now to go""" start="00:42:20.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""through as many questions as possible.""" start="00:42:22.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""You have obviously had a lot of questions""" start="00:42:25.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""throughout your presentation.""" start="00:42:26.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""Do you have access to the pad,""" start="00:42:28.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""or do you want me to share the question and""" start="00:42:30.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""feed them to you? Yes,""" start="00:42:32.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""could you start with sharing them?""" start="00:42:34.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'll see if I can get it on my screen.""" start="00:42:35.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sure, I'll do that. Please let me know if my""" start="00:42:39.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""microphone is clipping because my OBS setup""" start="00:42:42.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""sometimes is a little bit janky.""" start="00:42:44.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I'm going to try to read the questions""" start="00:42:45.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""for now. It's tipping,""" start="00:42:47.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I can hear you okay. Okay,""" start="00:42:51.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""so bear with the clicking,""" start="00:42:53.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""we'll switch as soon as possible to Stefan""" start="00:42:56.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""reading the question, but I'll read the first""" start="00:42:57.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""1. Can you tell us some about your,""" start="00:43:02.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""can you tell us some more I assume,""" start="00:43:03.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""about your background with Emacs development""" start="00:43:05.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""and programming in general,""" start="00:43:07.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""your professional work possibly?""" start="00:43:08.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, sure. Okay, I studied computer science""" start="00:43:15.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""at university. I started programming on a""" start="00:43:19.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""Commodore 64. I started with BASIC and then I""" start="00:43:23.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""did a couple of versions of BASIC as a kid.""" start="00:43:26.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""But then really things took off when I""" start="00:43:31.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""started using GNU Linux.""" start="00:43:33.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""I can't remember which year,""" start="00:43:35.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe it was early 2000,""" start="00:43:36.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""something like that, late.""" start="00:43:39.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""No, it must've been before that actually,""" start="00:43:41.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""because I remember I was 14.""" start="00:43:43.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, okay, so let's say 1999,""" start="00:43:45.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""1998, somewhere there around.""" start="00:43:48.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""Then I started with Perl,""" start="00:43:49.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""and I did Perl for a good long while.""" start="00:43:52.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""I learned C++, I learned C,""" start="00:43:54.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I did all kinds of stuff,""" start="00:43:56.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""and then I went to university,""" start="00:43:58.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""computer science, and I've been working,""" start="00:44:01.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, in various roles.""" start="00:44:03.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right now, I'm coding Python.""" start="00:44:05.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""Up until last Friday, I was writing firmware""" start="00:44:09.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""in C for a small microcontroller,""" start="00:44:11.819" video="mainVideo-core" id="subtitle"]] -[[!template text="""which is pretty different than writing""" start="00:44:15.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""Python, that's for sure.""" start="00:44:16.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""So yeah, so that's a little bit about me.""" start="00:44:19.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I got interested in free software,""" start="00:44:21.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, also at a very young age.""" start="00:44:24.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""So, I mean, I've been following these,""" start="00:44:26.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, ideological discussions and""" start="00:44:28.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""debates, read all this stuff by Richard""" start="00:44:31.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Stallman and so on and so forth.""" start="00:44:33.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""But yeah, that's it. Great,""" start="00:44:37.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""thank you. I'll move on to the next question.""" start="00:44:40.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""You'll have to listen to me because if I""" start="00:44:42.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""start sharing my screen again,""" start="00:44:44.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""we're going to get some clicks.""" start="00:44:45.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""So the question. Do you think that 1 day""" start="00:44:50.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""there will be a native I'll start again,""" start="00:44:53.914" video="mainVideo-core" id="subtitle"]] -[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:54.065" video="mainVideo-core" id="subtitle"]] -[[!template text="""a native... I'll start again,""" start="00:44:54.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:56.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""a native graphical web browser in Emacs or is""" start="00:44:58.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""it kind of against its philosophy and""" start="00:45:00.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""architecture? So will we stick just with EWW""" start="00:45:03.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""and EAF or similar workaround tricks?""" start="00:45:06.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""So if, I don't know if people have seen,""" start="00:45:10.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""there is a talk by, I think,""" start="00:45:12.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""Perry Metzger, is that the name?""" start="00:45:14.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sorry if I got the name wrong.""" start="00:45:16.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""Perry Metzger, I think.""" start="00:45:17.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's like, he marks a text editor for the""" start="00:45:20.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""next 40 years. He makes an excellent point""" start="00:45:22.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""there that 1 of the things that we need to do""" start="00:45:24.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""is really get a proper HTML rendering in""" start="00:45:27.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs. It's like a dream at this point.""" start="00:45:29.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""No 1 is actively working on something like""" start="00:45:32.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""that. I think that, you know,""" start="00:45:33.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""there, first of all, you'd need to rewrite""" start="00:45:35.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""the display engine. So that's a big job.""" start="00:45:39.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""It is. I'm not saying,""" start="00:45:40.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, it can't be done,""" start="00:45:42.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""but you need to start there.""" start="00:45:44.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right? Second of all, you need to think""" start="00:45:47.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""about, you know, with all the Emacs Lisp code""" start="00:45:50.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""out there, is really assuming,""" start="00:45:51.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, 1 paradigm, which is that you have""" start="00:45:54.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""a square, and basically you have columns and""" start="00:45:57.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""you have rows, and everything is in there,""" start="00:45:59.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""even images, is basically in a column,""" start="00:46:01.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, in a column on a row somewhere.""" start="00:46:04.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""Whereas, you know, when you just start doing""" start="00:46:07.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""the more web stuff and web rendering,""" start="00:46:09.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""you already have like a seaplane.""" start="00:46:11.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""You have different types of geometries that""" start="00:46:14.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""are possible. And what does it mean to go to""" start="00:46:16.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""the logical next line in that kind of sense?""" start="00:46:19.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean these types of things I'm not saying""" start="00:46:21.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""it can't be done. I'm saying there are there""" start="00:46:23.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""are definitely some challenges there It would""" start="00:46:27.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""be amazing I mean, but we need someone with""" start="00:46:30.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, the inclination and talent I think""" start="00:46:32.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""to work on that's a job posting if I've ever""" start="00:46:37.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""had 1. So good luck to whoever's willing to""" start="00:46:40.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""apply for this 1. I think it's a tough 1.""" start="00:46:41.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""It is, yes. Go on. Okay,""" start="00:46:45.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""do you happen to have the questions in front""" start="00:46:47.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""of you? Can I just read them to you so that""" start="00:46:50.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""you can also have a feedback in front of you?""" start="00:46:52.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yes, I have the pad here.""" start="00:46:56.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""Okay, cool. So I'll read the next question""" start="00:46:58.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""and this way I don't have to worry too much""" start="00:47:00.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""about me butchering every word in the""" start="00:47:02.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""sentence. So, Emacs development and""" start="00:47:04.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""communication still is very much focused on""" start="00:47:06.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""email mailing lists. I like this,""" start="00:47:08.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""but what do you think about introducing other""" start="00:47:10.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""channels for talking to users,""" start="00:47:11.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""like the Emacs project community could set up""" start="00:47:14.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""a master on instance of its own,""" start="00:47:16.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""for instance? I think from the point of view""" start="00:47:19.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""of the Emacs core team,""" start="00:47:21.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""we don't really have a lot of resources or""" start="00:47:23.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""people inclined to be working on stuff like""" start="00:47:25.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""that. But I mean, there is so much going on.""" start="00:47:27.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs is a very, you know,""" start="00:47:28.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's a big community, frankly,""" start="00:47:32.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? So people working on emacs.com,""" start="00:47:34.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""there are people in the IRC channel,""" start="00:47:36.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""the emacs IRC channel,""" start="00:47:38.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""there's the emacs subreddit.""" start="00:47:40.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""And I mean, people are doing an incredible""" start="00:47:42.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""job. And I think if people wanna do more""" start="00:47:45.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""stuff like that, I mean,""" start="00:47:46.359" video="mainVideo-core" id="subtitle"]] -[[!template text="""Don't wait for Argo, just go for it.""" start="00:47:48.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""Great. Moving on to the next question.""" start="00:47:54.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sorry, I'm not commenting anymore because we""" start="00:47:56.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""have so many questions and I'd love for you""" start="00:47:58.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""to answer as many people as possible because""" start="00:48:00.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""we have about 6 minutes technically,""" start="00:48:02.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""but we can go perhaps a little bit over.""" start="00:48:04.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""If you have the time, Stefan,""" start="00:48:05.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""though. Yeah. Okay, great.""" start="00:48:08.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""What are some features or packages you'd like""" start="00:48:11.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""to see developed by the community?""" start="00:48:12.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""We've already talked about the native HTTP""" start="00:48:15.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""display, but do you have any others?""" start="00:48:17.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""So, I mean, developed by the community,""" start="00:48:21.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""it depends what you mean.""" start="00:48:23.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""So do you mean sending stuff that people""" start="00:48:27.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""could be working on in general?""" start="00:48:29.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think for now, like let's say the roadmap,""" start="00:48:32.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'll just give some of the things that I""" start="00:48:34.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""think should happen right now and that I""" start="00:48:36.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""would love for people to send patches for.""" start="00:48:38.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's what I'm gonna be answering because""" start="00:48:40.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's what I think I can answer.""" start="00:48:42.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Tree-sitter is a new thing,""" start="00:48:44.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? Improving and working on new modes""" start="00:48:48.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""for, you know, TreeSitter,""" start="00:48:49.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's not very hard. I think many people get""" start="00:48:52.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""into it and make sure to integrate them in""" start="00:48:55.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs core. I think that would be,""" start="00:48:57.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, on my wishlist.""" start="00:48:59.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""The other thing that is that we've asked for""" start="00:49:01.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""someone perhaps with a little bit more""" start="00:49:03.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""experience, I think, but working on""" start="00:49:05.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""refactoring capabilities in Emacs and a more""" start="00:49:08.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""general framework, I think,""" start="00:49:11.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""for that. There are probably many more ideas""" start="00:49:13.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""that I could give people,""" start="00:49:14.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""but those would be the 2 big ones,""" start="00:49:17.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, that are also very uncontroversial.""" start="00:49:19.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's funny because for me,""" start="00:49:23.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""I don't think refactoring would count as a""" start="00:49:26.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""feature, but it's so vital to allowing""" start="00:49:29.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""further features to be developed.""" start="00:49:31.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Otherwise, I remember the way Org Mode used""" start="00:49:33.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""to be before we had Org Element and stuff""" start="00:49:36.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""like this. It was really complicated to write""" start="00:49:38.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""any kind of parsing stuff for it.""" start="00:49:40.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""And now that we've got it,""" start="00:49:42.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""it just opened up a world of possibility""" start="00:49:43.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""where parsing an Org Mode file is just made""" start="00:49:45.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""so much easier. So I think that's a wonderful""" start="00:49:47.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""answer because it goes,""" start="00:49:49.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""it's multi-layered as you would expect from""" start="00:49:51.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""something that concerns the whole of Emacs.""" start="00:49:53.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""Moving on to the next question.""" start="00:49:56.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""What is the hardest decision being made""" start="00:49:59.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""within Emacs dev for the last 3 years.""" start="00:50:02.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm not sure, is it the decision in the last""" start="00:50:04.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""3 years or I'll let you interpret the""" start="00:50:07.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""question however you want.""" start="00:50:08.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""Okay, well, I'll say this.""" start="00:50:10.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""I started in August and I haven't had any""" start="00:50:13.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""really hard decisions so far.""" start="00:50:16.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""So good news. Maybe Eli will have more for""" start="00:50:20.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""the last 3 years. Keep it simple.""" start="00:50:22.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""Thanks. Cool. Next question.""" start="00:50:28.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Any plans to integrate XWM into core?""" start="00:50:31.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs is a really good Winters manager.""" start="00:50:33.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's super cool. I think EXWM is cool.""" start="00:50:37.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think they need to upgrade to Wayland""" start="00:50:39.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""somehow and that's not clear yet,""" start="00:50:41.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""but you know, we don't have any current plans""" start="00:50:44.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""to integrate it, no. Right,""" start="00:50:48.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""Next question. Do you think it is a good idea""" start="00:50:51.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""to choose Org Mode for writing documentation""" start="00:50:53.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""instead of tech info? I think that whatever""" start="00:50:57.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""we do, it should be the people that are""" start="00:50:59.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""working on the documentation that should make""" start="00:51:01.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""that choice. Currently we have,""" start="00:51:03.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, Modus themes and Org Mode itself is""" start="00:51:05.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""writing their documentation in Org Mode,""" start="00:51:07.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's fine by me. It has some drawbacks,""" start="00:51:10.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""it has some benefits, but most documentation""" start="00:51:12.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""is still in tech info.""" start="00:51:14.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""Maybe we'd need to replace that at some""" start="00:51:17.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""point, I don't know. But for now,""" start="00:51:19.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's what people know and use.""" start="00:51:21.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""And if you find that as a barrier to""" start="00:51:24.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""contribute to Emacs, I mean,""" start="00:51:25.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""just really write it as plain text.""" start="00:51:26.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""We'll be happy to help you with the markup.""" start="00:51:28.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's a little bit, you know,""" start="00:51:30.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""finicky and stuff like that.""" start="00:51:31.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""Great. Thanks for that.""" start="00:51:34.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""Next question. What do you plan to work on in""" start="00:51:37.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs Core in the future?""" start="00:51:38.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm a little bit hesitant to reply to that.""" start="00:51:42.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Of course I have ideas.""" start="00:51:43.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Of course there are projects that I'm working""" start="00:51:45.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""on. However, if I say it here,""" start="00:51:47.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""I feel like, you know,""" start="00:51:48.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""then you'll hold me to it later and come ask,""" start="00:51:50.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""where is that feature?""" start="00:51:51.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""So I'll just say there is plenty of stuff""" start="00:51:54.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""that I'm working on, and if you want to know""" start="00:51:57.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""some of the stuff that I have been working""" start="00:51:58.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""on, check the Git log.""" start="00:51:59.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think that's just really as much as I want""" start="00:52:02.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""to say about that right now.""" start="00:52:04.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""You've added folks to just look at the path""" start="00:52:07.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""with the changelog and that's all you need.""" start="00:52:09.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""All right, moving on to the next question.""" start="00:52:12.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""What do you use Emacs for in your life other""" start="00:52:15.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""than working on Emacs itself?""" start="00:52:17.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""Oh shit. So the big thing is programming,""" start="00:52:20.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? Now I work as a programmer.""" start="00:52:23.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""But in general, I use org mode heavily.""" start="00:52:28.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use it for all my writing.""" start="00:52:30.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use it to write, prepare this talk.""" start="00:52:32.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use it as a productivity system.""" start="00:52:34.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use it for emails. I use it as an RSS""" start="00:52:41.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""reader. I do most of my computing.""" start="00:52:43.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""I also have Firefox. So it's like Emacs and""" start="00:52:46.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""Firefox for some reason.""" start="00:52:48.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""I do read documentation in Emacs as well in""" start="00:52:51.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""you, but yeah. Great. I'm still,""" start="00:52:57.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""I do very much the same thing with you.""" start="00:53:00.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""Like You've described exactly what I do.""" start="00:53:01.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""I work as a programmer,""" start="00:53:02.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use Augment for a lot of stuff,""" start="00:53:04.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""and I think that describes a whole lot of""" start="00:53:06.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""people currently watching the stream.""" start="00:53:07.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""Moving on to the next question.""" start="00:53:10.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""What could we do in order to make Emacs more""" start="00:53:12.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""attractive for younger users?""" start="00:53:13.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""This is an amazing question and I feel wholly""" start="00:53:17.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""unprepared to answer this.""" start="00:53:20.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""Probably more introductory material aimed at""" start="00:53:23.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""that age group. What do you mean by younger""" start="00:53:26.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""users? You know what would be really cool if""" start="00:53:28.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""you had an Emacs for kids project?""" start="00:53:30.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""That would be amazing.""" start="00:53:31.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm not sure if that's what people are""" start="00:53:34.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""thinking about, but yeah,""" start="00:53:36.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""that's about what I can say for now.""" start="00:53:39.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""Good question. It is a very good question,""" start="00:53:43.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""like it comes back always to a key topic in""" start="00:53:45.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""EmacsConf, which is, how do we get more""" start="00:53:47.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""people to join us? Because it's a wonderful""" start="00:53:49.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""community. And how do we onboard people who""" start="00:53:51.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""are not programmers or people who are younger""" start="00:53:53.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""than the average Joe coming in those""" start="00:53:56.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""meetings? There's this Excellent article by""" start="00:54:01.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""Paul Graham, I think, where he was describing""" start="00:54:05.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""how they used Emacs as the sort of customer""" start="00:54:08.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""service system. They built the customer""" start="00:54:11.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""service system for the early days of Amazon""" start="00:54:13.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""in Emacs Lisp. And then they switched and all""" start="00:54:17.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""the employees were sad.""" start="00:54:18.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""So definitely there's more stuff that could""" start="00:54:21.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""be done in Emacs and be done better in Emacs.""" start="00:54:24.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""So for sure, if people want to explore more""" start="00:54:27.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""stuff like that, that's amazing.""" start="00:54:28.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah. And for people who weren't around""" start="00:54:31.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""earlier today, we've had a presentation about""" start="00:54:33.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""how to get computer science students to use""" start="00:54:36.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs and trying to provide as much""" start="00:54:40.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""information and as much tutorial as needed""" start="00:54:43.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""for them to understand what is the philosophy""" start="00:54:45.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""behind Emacs and how it influences the way""" start="00:54:47.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""you work and so forth.""" start="00:54:49.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""So you might want to revisit this discussion.""" start="00:54:51.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""And we also have plenty of talks talking""" start="00:54:53.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""about this issue. And I can just add that I""" start="00:54:57.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""think it's very important for us as a""" start="00:55:00.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""community to just be enthusiastic to get more""" start="00:55:02.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""people involved. Because I mean,""" start="00:55:04.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""look, there's this meme where it's like,""" start="00:55:06.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use Arch Linux, by the way,""" start="00:55:08.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""I use Arch, by the way.""" start="00:55:09.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""And for some reason, people using Arch keep""" start="00:55:12.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""telling you that they're using Arch.""" start="00:55:13.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""That's fine. Use whatever you want.""" start="00:55:15.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's free software, I don't care.""" start="00:55:17.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think if you look at Vim users,""" start="00:55:21.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""they're very almost militant,""" start="00:55:22.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""oh, we're Vim, and Vim is the thing.""" start="00:55:25.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""And Emacs users sometimes,""" start="00:55:26.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""and it's fine. We take a bit of a more""" start="00:55:29.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""laid-back approach. We're like,""" start="00:55:30.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""yeah, I use Emacs, you use Vim,""" start="00:55:32.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""whatever. And that's fine.""" start="00:55:35.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, that's the correct approach,""" start="00:55:36.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think. You should respect what people want""" start="00:55:38.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""to use. I don't care that people use VS Code""" start="00:55:40.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""or whatever. I'm not going to use that""" start="00:55:42.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""because it's too limiting.""" start="00:55:43.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's not really a workable environment.""" start="00:55:45.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I think it's OK to be enthusiastic.""" start="00:55:48.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think it's okay to talk about that type of""" start="00:55:51.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""enthusiasm and anything that can help""" start="00:55:53.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""increase the enthusiasm around Emacs can only""" start="00:55:56.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""help the longevity of Emacs.""" start="00:56:00.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""I agree and that's also 1 of the key""" start="00:56:04.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""objectives of EmacsConf.""" start="00:56:04.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's about bringing a lot of amazing people""" start="00:56:07.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""to come talk, like you,""" start="00:56:08.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""about stuff that is very dear to you.""" start="00:56:10.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it's very tangible how much you care,""" start="00:56:13.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""all of you, about what you're presenting.""" start="00:56:15.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""And it's amazing to put all of you people on""" start="00:56:18.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""just 48 hours talking about all of this and""" start="00:56:20.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""then creating so much content for people to""" start="00:56:22.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""watch. And I think it's really helping the""" start="00:56:24.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""enthusiasm to live on and to gather a little""" start="00:56:27.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""more snow as it comes down.""" start="00:56:29.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, I watch you Max Conf every year.""" start="00:56:31.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think it's a lot of fun.""" start="00:56:32.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""Thank you. I'll take the compliment for""" start="00:56:37.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""everyone else in the team.""" start="00:56:38.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""We're going to go a little bit longer with""" start="00:56:40.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""the Q&A because we still have a lot of""" start="00:56:42.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""questions and if Stéphane is still willing to""" start="00:56:44.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""answer, I'm still willing to not go too bad""" start="00:56:47.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""to hear a lot more of it.""" start="00:56:49.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, for me it's fine.""" start="00:56:50.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""I have time. Great. So I think I've done this""" start="00:56:55.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""question. So, all right.""" start="00:56:56.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""How are we going to make sure that a cool""" start="00:56:59.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""idea is going to pass it through for the next""" start="00:57:01.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""generation, let's say 20 years later,""" start="00:57:03.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""the generation still have the good knowledge""" start="00:57:05.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""we have today. Yeah, so I mean,""" start="00:57:09.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""if you think about what does EMAX need to""" start="00:57:12.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""have staying power, so in general,""" start="00:57:14.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""they say, you know, if if when you start a""" start="00:57:16.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""company, if you have a company for 1 year,""" start="00:57:18.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""then in all likelihood,""" start="00:57:19.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""you're going to have it for 2 years because,""" start="00:57:21.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, it's just so if you've had Emacs""" start="00:57:23.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""for 4 years, I'm saying that we're going to""" start="00:57:25.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""have Emacs for the next 4 years as well.""" start="00:57:27.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""Just based on that, I'm not sure the logic""" start="00:57:30.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""holds up, but you know,""" start="00:57:31.700" video="mainVideo-core" id="subtitle"]] -[[!template text="""how does Emacs stay relevant?""" start="00:57:33.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think is the question.""" start="00:57:35.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""Well, I think we need to continue working on""" start="00:57:37.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""all the types of exploratory work that people""" start="00:57:41.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""are doing in the community.""" start="00:57:43.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think there is fundamental stuff that needs""" start="00:57:45.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""to be done. I mean, if people want to work""" start="00:57:47.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""on, you know, web rendering and Emacs,""" start="00:57:49.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe that's the next,""" start="00:57:50.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, revolutionary step that we need""" start="00:57:53.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""that could, you know, really showcase what""" start="00:57:55.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs, you know, as, you know,""" start="00:57:57.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""an idea, even if not Emacs as a software""" start="00:58:00.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""could be and, you know,""" start="00:58:01.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""Because there is huge potential in the idea""" start="00:58:04.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""as such. So maybe that's something.""" start="00:58:06.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I mean, from the point of view of core""" start="00:58:09.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""development, I think we need to just continue""" start="00:58:11.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""working on the fundamental technologies.""" start="00:58:14.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""1 thing that I would like to eventually see""" start="00:58:17.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""is a better garbage collector.""" start="00:58:19.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""We've talked about that for a long time,""" start="00:58:22.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""but I mean, we need someone to do the job""" start="00:58:24.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""really. It's not very easy.""" start="00:58:27.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's very hard, actually.""" start="00:58:29.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""So just continues working on stuff like that,""" start="00:58:33.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""continue with the exploration,""" start="00:58:34.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""continue using and being excited about Emacs.""" start="00:58:39.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think that's the best guarantee that we""" start="00:58:42.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""have. Yeah, and perhaps to echo something""" start="00:58:45.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""that you said earlier,""" start="00:58:46.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""the tools that you're using,""" start="00:58:47.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""like the emails, they've been around forever,""" start="00:58:49.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""they will be around forever.""" start="00:58:50.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""This pragmatic stance on the tools that""" start="00:58:53.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""you're using, they might look stayed from the""" start="00:58:56.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""outside, but ultimately they are what permits""" start="00:58:58.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""a sense of longevity to any kind of project""" start="00:59:01.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""you embark upon. Also,""" start="00:59:05.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""in a sense, I think that the expectations""" start="00:59:06.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""might be changing in the sense that,""" start="00:59:09.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, when I started using GNU Linux,""" start="00:59:12.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know what the first thing I did was,""" start="00:59:14.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""because I couldn't get Xorg to run.""" start="00:59:16.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""So the first thing you had to do was you had""" start="00:59:18.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""to compile your own Linux kernel.""" start="00:59:20.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""So you sit there and make manuconfig and""" start="00:59:22.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""you'll like, try to read it and you've never""" start="00:59:24.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""done anything like this before.""" start="00:59:25.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""You know, I was just a kid.""" start="00:59:27.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""I had never been at this kind of,""" start="00:59:29.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, whatever. So I had to start with""" start="00:59:31.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""that. And then you have to write the X or""" start="00:59:33.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""configuration file. And I had the patience""" start="00:59:35.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""for that. But nowadays,""" start="00:59:36.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""people have different expectations.""" start="00:59:38.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""You just install something,""" start="00:59:39.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""and it works. And we need to keep that in""" start="00:59:42.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""mind as well. So that's why I keep pushing as""" start="00:59:45.100" video="mainVideo-core" id="subtitle"]] -[[!template text="""1 of my big things. We need to build a more""" start="00:59:48.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""cohesive experience out of the box.""" start="00:59:50.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""Of course, that can be customizable.""" start="00:59:52.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""You shouldn't shoehorn anything in just for""" start="00:59:55.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""the sake of it. But you could get some things""" start="00:59:58.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""a little bit more for free.""" start="01:00:00.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""And maybe some of us that have our own""" start="01:00:02.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""configs and we've been doing this for you""" start="01:00:04.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""know, 2, 05:10, even 20 years,""" start="01:00:07.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""we could also see, you know,""" start="01:00:09.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""from the point of view of a new user that""" start="01:00:11.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""just installs VS Code and then they click,""" start="01:00:13.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""yes I use Python, yes I use that,""" start="01:00:15.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""and then it just automatically works.""" start="01:00:18.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""You know what I mean? I mean,""" start="01:00:20.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""then could we get closer to that perhaps a""" start="01:00:24.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""little bit? I think that would also help.""" start="01:00:25.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, I think that's what we call the""" start="01:00:28.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""configuration wizard. And we were talking""" start="01:00:30.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""about this, I think, a couple of years ago at""" start="01:00:32.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""EmacsConf. I can't remember if it was with""" start="01:00:34.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""Adam in the chat. Adam,""" start="01:00:35.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean Alpha Papa, or if it was with Bastien,""" start="01:00:37.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""but I remember the idea cropping off.""" start="01:00:40.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""Like, it's either you get a tutorial for""" start="01:00:42.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs, a proper tutorial,""" start="01:00:43.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""or you get a wizard, or you get both,""" start="01:00:45.140" video="mainVideo-core" id="subtitle"]] -[[!template text="""and then all is right for the world.""" start="01:00:47.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""But definitely cool ideas being evoked.""" start="01:00:48.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm gonna say I need to decree the time when""" start="01:00:52.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""we finish because for me it is 11.15""" start="01:00:53.940" video="mainVideo-core" id="subtitle"]] -[[!template text="""p.m. And I think my co-organizers are also""" start="01:00:59.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""willing to end the day and go rest because""" start="01:01:01.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""we've got another day to go tomorrow.""" start="01:01:03.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""So how about we take 3 minutes and 30 seconds""" start="01:01:05.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""to try to answer a little bit more succinctly""" start="01:01:07.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""the questions we've got left.""" start="01:01:09.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""How does that sound, Stefan?""" start="01:01:10.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sounds great. Cool, so I'll start reading the""" start="01:01:15.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""questions then that we've got left.""" start="01:01:16.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""So this 1 we've got. If you're willing to""" start="01:01:20.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""discuss it, what do you think about the""" start="01:01:22.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""recent controversy about use of CLLib in""" start="01:01:24.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs call code? Am I willing to discuss""" start="01:01:29.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""that? I have said my opinion on Emacs,""" start="01:01:35.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""Devel, I think. And I think I understand,""" start="01:01:40.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, the viewpoints of both sides in that""" start="01:01:44.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""discussion. It is true that some things,""" start="01:01:46.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, we have to think about that.""" start="01:01:49.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""There is a real problem,""" start="01:01:49.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think, when we have 3 different APIs for""" start="01:01:53.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""doing the same thing in Emacs.""" start="01:01:54.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""And can we make that a little bit better?""" start="01:01:56.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, perhaps we could,""" start="01:01:58.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""right? So that's about as much as I'd like to""" start="01:02:03.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""say. Fair enough. I would have also accepted""" start="01:02:06.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""that CL loops are ugly to write and they""" start="01:02:09.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""don't feel very lispy.""" start="01:02:09.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""But I'll take your answer as well.""" start="01:02:11.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, some people think that.""" start="01:02:14.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""I understand that position as well.""" start="01:02:17.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right. Okay, next question.""" start="01:02:20.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""When we find a bug in our Emacs,""" start="01:02:22.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""do we need to try to replicate it on our side""" start="01:02:24.840" video="mainVideo-core" id="subtitle"]] -[[!template text="""version, on our SID version,""" start="01:02:26.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""sorry, then update all the usual list package""" start="01:02:29.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""we use, and if we succeed to replicate the""" start="01:02:31.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""bug in this version, only then go to""" start="01:02:33.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""development version 30 and do the same.""" start="01:02:34.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""Then only ask for assistance in reporting the""" start="01:02:37.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""bug we found. So I believe when they""" start="01:02:40.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""encounter a bug, are people supposed to go to""" start="01:02:43.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""master to pull main and just to make sure""" start="01:02:47.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""that they are on the latest version.""" start="01:02:48.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""Is this something that you require?""" start="01:02:49.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""We don't require that,""" start="01:02:51.460" video="mainVideo-core" id="subtitle"]] -[[!template text="""but we do try to encourage you to reproduce""" start="01:02:54.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""it on master if we think that it matters.""" start="01:02:56.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, so if you can, that's even better.""" start="01:03:00.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""But if the bug is there in Emacs 29,""" start="01:03:03.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""maybe we want to fix it in Emacs 29.2.""" start="01:03:05.500" video="mainVideo-core" id="subtitle"]] -[[!template text="""So the latest point release is also fine.""" start="01:03:09.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""Bugs in Emacs 28 at this point,""" start="01:03:12.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""like the previous major version,""" start="01:03:14.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""we might ask you to try to reproduce it on""" start="01:03:17.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs 29 because we're not planning more""" start="01:03:19.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""releases of old major versions.""" start="01:03:21.200" video="mainVideo-core" id="subtitle"]] -[[!template text="""So that's the fundamental reason for that.""" start="01:03:23.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""Great. Thank you for your answer.""" start="01:03:25.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""All right. Moving on to the next question.""" start="01:03:27.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""On branching off sub-threads,""" start="01:03:28.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""I note that they are less visible compared to""" start="01:03:31.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""starting a new thread in practice.""" start="01:03:32.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""I am wondering if it is just my impression or""" start="01:03:35.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""something devs also observe.""" start="01:03:36.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, it's true. That's correct.""" start="01:03:39.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""I don't know what to do about it.""" start="01:03:42.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""If you want more visibility,""" start="01:03:43.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""I guess just start a new thread.""" start="01:03:45.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""I don't know. I can only agree,""" start="01:03:48.480" video="mainVideo-core" id="subtitle"]] -[[!template text="""really. I concur. That's true.""" start="01:03:50.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""Okay. Next question. What about rewriting""" start="01:03:53.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""Emacs in Rust? Use Guile instead of Elisp.""" start="01:03:56.600" video="mainVideo-core" id="subtitle"]] -[[!template text="""Multi-threaded Emacs. Make Emacs prettier and""" start="01:03:59.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""shiny. And of course, same defaults.""" start="01:04:01.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""Just kidding. We are spoiled children because""" start="01:04:04.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""you and Eli, Lars, and etc do an impressive""" start="01:04:07.280" video="mainVideo-core" id="subtitle"]] -[[!template text="""work. I live in Emacs since 2001.""" start="01:04:10.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""Thanks. That was a good 1.""" start="01:04:13.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""Sane defaults. Okay, Well,""" start="01:04:17.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""thank you. Thanks for that comment.""" start="01:04:20.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""That made me chuckle. Next question by the""" start="01:04:23.300" video="mainVideo-core" id="subtitle"]] -[[!template text="""same person, I assume.""" start="01:04:24.060" video="mainVideo-core" id="subtitle"]] -[[!template text="""The only downside I see with copyright""" start="01:04:26.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""assignment is that 1 has to disclose their""" start="01:04:28.400" video="mainVideo-core" id="subtitle"]] -[[!template text="""real identity. Would it be a possibility to""" start="01:04:31.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""assign a copyright under a nickname?""" start="01:04:32.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, you don't have to say a real name.""" start="01:04:34.640" video="mainVideo-core" id="subtitle"]] -[[!template text="""Just register some pseudonym.""" start="01:04:36.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""The FSF does need your real name,""" start="01:04:39.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""but that's kept private only.""" start="01:04:40.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""So feel free to reach out to assign at""" start="01:04:45.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""gnu.org and ask more about that.""" start="01:04:47.860" video="mainVideo-core" id="subtitle"]] -[[!template text="""Right. All right, next question.""" start="01:04:51.180" video="mainVideo-core" id="subtitle"]] -[[!template text="""Do you think it is possible to reach an""" start="01:04:53.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""agreement on sane defaults for better""" start="01:04:54.880" video="mainVideo-core" id="subtitle"]] -[[!template text="""out-of-the-box experience?""" start="01:04:56.720" video="mainVideo-core" id="subtitle"]] -[[!template text="""Yeah, so your sane is not my sane""" start="01:04:59.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""necessarily. So that's the fundamental""" start="01:05:01.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""problem that we're discussing here.""" start="01:05:02.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""I think it's a social,""" start="01:05:03.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""not a technical problem.""" start="01:05:04.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""We do change defaults sometimes,""" start="01:05:07.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""but I mean, there is also some staying power.""" start="01:05:09.620" video="mainVideo-core" id="subtitle"]] -[[!template text="""So it's understandable that,""" start="01:05:11.980" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, it's, we can't just change them""" start="01:05:13.780" video="mainVideo-core" id="subtitle"]] -[[!template text="""willy nilly and then flip flop between,""" start="01:05:15.580" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, 1 or the other kind of thing.""" start="01:05:18.080" video="mainVideo-core" id="subtitle"]] -[[!template text="""So it does take a little bit more time.""" start="01:05:19.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""But yeah, sure, we can.""" start="01:05:22.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""We do change defaults at times.""" start="01:05:25.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""But it's perhaps more slower than what some""" start="01:05:29.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""people would prefer, for sure.""" start="01:05:30.920" video="mainVideo-core" id="subtitle"]] -[[!template text="""So that's, yeah. Right,""" start="01:05:35.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""all right. We have 2 more questions.""" start="01:05:37.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""So will XWidgets have a future?""" start="01:05:39.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""Seeing the new bugs popping up in the latest""" start="01:05:41.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""XWidget dev. Not sure if there was the rest""" start="01:05:45.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""of the question, But on XWidgets,""" start="01:05:46.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""can you tell us a little more?""" start="01:05:47.440" video="mainVideo-core" id="subtitle"]] -[[!template text="""I'm not really following now.""" start="01:05:50.380" video="mainVideo-core" id="subtitle"]] -[[!template text="""I mean, I'm not seeing a lot of development""" start="01:05:51.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""on XWidgets currently.""" start="01:05:53.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""Some people have done work in fixing up a few""" start="01:05:56.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""bugs, but I think that feature really needs""" start="01:05:59.820" video="mainVideo-core" id="subtitle"]] -[[!template text="""more love. So I think we need,""" start="01:06:01.800" video="mainVideo-core" id="subtitle"]] -[[!template text="""you know, help is welcome,""" start="01:06:03.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""patch is welcome. That's what I can say about""" start="01:06:05.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""that. All right, and our final question of""" start="01:06:11.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""the day. Have you voted for Emacs as the""" start="01:06:13.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""software of the year on the Tuxes by Jupyter""" start="01:06:14.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""Broadcasting? I did because Emacs 29 is""" start="01:06:17.320" video="mainVideo-core" id="subtitle"]] -[[!template text="""great. Thank you. Okay,""" start="01:06:19.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""well, good job voting.""" start="01:06:20.160" video="mainVideo-core" id="subtitle"]] -[[!template text="""I didn't know, I don't know what Tuxy is on""" start="01:06:22.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""Jupyter broadcasting, but look it up and go""" start="01:06:25.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""vote. So I wish I could tell you,""" start="01:06:27.660" video="mainVideo-core" id="subtitle"]] -[[!template text="""I assume with Tux, it might be something""" start="01:06:29.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""related to Linux, but that's as much as I can""" start="01:06:32.680" video="mainVideo-core" id="subtitle"]] -[[!template text="""say. All right, well, Stefan,""" start="01:06:34.340" video="mainVideo-core" id="subtitle"]] -[[!template text="""thank you so much for taking the time not""" start="01:06:36.420" video="mainVideo-core" id="subtitle"]] -[[!template text="""only to do a wonderful presentation,""" start="01:06:37.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""but also for answering all the questions of""" start="01:06:39.520" video="mainVideo-core" id="subtitle"]] -[[!template text="""the community. Do you have anything else to""" start="01:06:41.040" video="mainVideo-core" id="subtitle"]] -[[!template text="""add? Just really thanks for all the questions""" start="01:06:44.900" video="mainVideo-core" id="subtitle"]] -[[!template text="""and thanks for staying.""" start="01:06:46.260" video="mainVideo-core" id="subtitle"]] -[[!template text="""It's been a long day, a long conference,""" start="01:06:49.120" video="mainVideo-core" id="subtitle"]] -[[!template text="""so thanks for staying and listening to my""" start="01:06:51.020" video="mainVideo-core" id="subtitle"]] -[[!template text="""talk as well. Really appreciate it.""" start="01:06:52.360" video="mainVideo-core" id="subtitle"]] -[[!template text="""Appreciate the good work you guys are doing""" start="01:06:54.000" video="mainVideo-core" id="subtitle"]] -[[!template text="""behind the scenes, organizing,""" start="01:06:54.960" video="mainVideo-core" id="subtitle"]] -[[!template text="""setting everything up.""" start="01:06:56.240" video="mainVideo-core" id="subtitle"]] -[[!template text="""And really humbled to be a part of this""" start="01:07:00.220" video="mainVideo-core" id="subtitle"]] -[[!template text="""community. So thank you all.""" start="01:07:01.560" video="mainVideo-core" id="subtitle"]] -[[!template text="""Well I can assure you that no 1 either in the""" start="01:07:05.740" video="mainVideo-core" id="subtitle"]] -[[!template text="""organization team or the people watching now""" start="01:07:07.540" video="mainVideo-core" id="subtitle"]] -[[!template text="""felt like it was tiring to stay and listen to""" start="01:07:10.760" video="mainVideo-core" id="subtitle"]] -[[!template text="""your answers. So thank you so much Stefan.""" start="01:07:12.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""All right. Hi again, everyone.""" start="00:00:02.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's been a while. Well,""" start="00:00:03.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""actually, it's been like 2 minutes tops.""" start="00:00:04.839" video="mainVideo-core" id="subtitle"]] +[[!template text="""We were just with John Wheatley,""" start="00:00:07.819" video="mainVideo-core" id="subtitle"]] +[[!template text="""and now we are with Stefan Krangas.""" start="00:00:09.099" video="mainVideo-core" id="subtitle"]] +[[!template text="""Hi. Hi. So as we said before,""" start="00:00:11.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Stefan is co-maintainer now of Is it the""" start="00:00:16.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""entire Emacs project? How do you describe""" start="00:00:20.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""this? Yeah, co-maintainer of GNU Emacs.""" start="00:00:22.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right, perfect. So you know what?""" start="00:00:27.439" video="mainVideo-core" id="subtitle"]] +[[!template text="""Because I'm sure everyone is dying to hear""" start="00:00:29.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""everything you've got to say in your""" start="00:00:32.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""presentation I'm just going to shut up now""" start="00:00:33.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""and leave the floor to you.""" start="00:00:36.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Do you need to share your screen or anything?""" start="00:00:37.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""No. Okay great well I'll just cut my webcam""" start="00:00:40.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""off I'll still be in the background so do not""" start="00:00:45.239" video="mainVideo-core" id="subtitle"]] +[[!template text="""hesitate if you've got any problem I'm still""" start="00:00:47.059" video="mainVideo-core" id="subtitle"]] +[[!template text="""around And I'll see you just beacon whenever""" start="00:00:48.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""you're done. And I'll show up with the""" start="00:00:52.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""questions. All right? Thank you,""" start="00:00:53.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""Leo. And thank you, everyone,""" start="00:00:56.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""for being here. I'm Stefan Kangas.""" start="00:00:58.739" video="mainVideo-core" id="subtitle"]] +[[!template text="""So as Leo explained, I am recently appointed""" start="00:01:02.739" video="mainVideo-core" id="subtitle"]] +[[!template text="""as a co-maintainer of GNU Emacs,""" start="00:01:06.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""which a role that I'm fulfilling currently""" start="00:01:10.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""with Eli Sretsky, who's been co-maintainer""" start="00:01:13.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""for quite some time. So I got the question to""" start="00:01:18.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""be a co-maintainer from Richard in August""" start="00:01:23.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""this year. And of course,""" start="00:01:26.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""when you get a question like that,""" start="00:01:29.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""I couldn't not say yes.""" start="00:01:31.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""So here we are. I can't tell you how excited""" start="00:01:34.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""I am to have this opportunity to address the""" start="00:01:39.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""community in this way.""" start="00:01:45.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm really humbled, of course,""" start="00:01:47.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""to be part of it, and to be able to serve the""" start="00:01:50.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""community in this capacity.""" start="00:01:55.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I've used Emacs, I think many of you might""" start="00:02:00.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""also have used Emacs for quite some time,""" start="00:02:04.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""but I'm going on 2 decades as an Emacs user.""" start="00:02:06.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""My involvement in Emacs Lisp development is,""" start="00:02:11.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, almost as long,""" start="00:02:14.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""but my core development goes back only 4,""" start="00:02:16.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""5 years. I have to also thank the EmacsConf""" start="00:02:19.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""organizers who are doing,""" start="00:02:27.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, a tremendous job and have done a""" start="00:02:29.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""tremendous job over the years in really""" start="00:02:31.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""building and strengthening what I think is""" start="00:02:34.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""this fantastic community of users and""" start="00:02:38.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""developers and people interested in Emacs.""" start="00:02:42.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""I actually had the chance to meet up with Eli""" start="00:02:46.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sretzky, as well as another Emacs hacker,""" start="00:02:50.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""Andrea Corallo, when I was at the GNU""" start="00:02:53.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""project's 40 years celebration,""" start="00:02:57.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""40 years since the GNU project was announced.""" start="00:03:00.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it was very inspiring in general to meet""" start="00:03:05.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""people. And I think EmacsConf should also,""" start="00:03:09.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, serve to inspire and sort of help""" start="00:03:12.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""bring something to the type of work that many""" start="00:03:19.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""of us are doing to improve Emacs,""" start="00:03:22.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""whether it's in package development or in""" start="00:03:24.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""core, to bring out the new and exciting ideas""" start="00:03:26.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""and get people enthusiastic about Emacs,""" start="00:03:29.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""about hacking on Emacs.""" start="00:03:34.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""This is my little attempt to contribute with""" start="00:03:38.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's say 2 things. I will first try to""" start="00:03:45.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""present how we do Emacs core development and""" start="00:03:49.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""why we've done some of the choices that we""" start="00:03:54.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""have, because We have seen at times that""" start="00:03:58.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps people aren't always clear on this or""" start="00:04:02.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""that aspect. So maybe this will be""" start="00:04:06.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""enlightening. I will also try to present some""" start="00:04:08.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""kind of vision for what Emacs could be with""" start="00:04:12.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""your help. Emacs is already very good,""" start="00:04:18.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""as we all know, but we could be even better.""" start="00:04:21.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's the reality of any type of software""" start="00:04:27.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""development. So the overall idea of this talk""" start="00:04:30.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""is to tell you, if you're an Emacs list""" start="00:04:35.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""package developer today,""" start="00:04:38.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""why you should become an Emacs core""" start="00:04:40.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""developer, and the sort of steps that you""" start="00:04:44.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""might want to take to do that,""" start="00:04:47.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""or how you can help Emacs core development.""" start="00:04:49.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Even if you're just a user and you found a""" start="00:04:52.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""bug, report it. Perhaps you have a feature""" start="00:04:54.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""request that you'd like to discuss.""" start="00:04:57.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think we need more interaction in general""" start="00:04:58.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""between Emacs core developers,""" start="00:05:02.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""typically on emacsdevil.gnu.org,""" start="00:05:05.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""the mailing list that we use to coordinate""" start="00:05:08.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""our development efforts,""" start="00:05:12.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""between Emacs devil package developers and""" start="00:05:15.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""users, Because there is so much great stuff""" start="00:05:19.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""really going on in the community.""" start="00:05:22.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I think sometimes the step to core""" start="00:05:25.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""development seems big and perhaps even a""" start="00:05:28.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit scary. So I'm hoping to be able to""" start="00:05:32.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""help bridge that gap, even if just a little""" start="00:05:35.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""bit. We need more people contributing to""" start="00:05:38.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs itself. And also a small disclaimer""" start="00:05:43.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""here, in this talk I will only be able to""" start="00:05:46.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""speak for myself, not for GNU or the Emacs""" start="00:05:49.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""project, even if it's like a little bit more""" start="00:05:53.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""official, but I will also try to give the""" start="00:05:56.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""view of the project where it makes sense to""" start="00:05:58.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""do so. Keep in mind, I'm only 1 of the""" start="00:06:01.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""maintainers, the co-maintainer together with""" start="00:06:04.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""Eli, and I can't just make decisions""" start="00:06:06.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""arbitrarily. In a sense,""" start="00:06:09.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm as a co-maintainer and trusted as a""" start="00:06:11.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""steward and trusted by,""" start="00:06:14.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""of course, the GNU project,""" start="00:06:15.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""but also by the community That we really""" start="00:06:16.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""can't just take decisions,""" start="00:06:22.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, arbitrarily. Even if it sometimes""" start="00:06:24.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps may seem so, or it may feel that way,""" start="00:06:27.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""we really have to realize that we can't just""" start="00:06:31.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""push too much of just a personal agenda to""" start="00:06:35.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""the extent that it doesn't line up with what""" start="00:06:39.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""is best for eMacs going forward,""" start="00:06:41.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""and the more overall picture of that.""" start="00:06:47.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""So there are limitations that come with the""" start="00:06:50.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""job, if you like. So 1 question I often,""" start="00:06:52.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""I actually got this week when I started a new""" start="00:07:00.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""assignment at work, and I got the question""" start="00:07:02.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""when I said I'm involved in Emacs""" start="00:07:06.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""development. And then someone asked,""" start="00:07:08.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""oh, is Emacs still developed?""" start="00:07:10.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""Isn't it done almost? And I answered to that,""" start="00:07:12.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""yes, we are still around.""" start="00:07:16.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""We're going on 40 years now as a software""" start="00:07:17.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""project. Not many projects actually can claim""" start="00:07:21.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""that type of longevity.""" start="00:07:26.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""But Emacs is among those few that can.""" start="00:07:29.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""And of course, we have had some very exciting""" start="00:07:33.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""developments in recent versions.""" start="00:07:36.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think John just gave you an update on that.""" start="00:07:38.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""But we had just some highlights out of many""" start="00:07:41.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""highlights that you could give,""" start="00:07:46.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""really, we got the TreeSetter support in""" start="00:07:48.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs 29 that we now need to sort of extend""" start="00:07:50.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""and develop. We have merged EGLOT,""" start="00:07:54.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""so we have LSP support out of the box,""" start="00:07:56.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think is a huge improvement.""" start="00:07:59.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Native compilation, of course,""" start="00:08:01.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""a big feature. I mean,""" start="00:08:02.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""that was Andrea's job,""" start="00:08:06.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""really, for performance.""" start="00:08:08.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it turns out that in many types of""" start="00:08:11.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""workloads and the types of stuff that people""" start="00:08:14.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""are doing, it often matters.""" start="00:08:15.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""And we're hoping to make that the default,""" start="00:08:18.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps already in Emacs 30.""" start="00:08:21.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""So there are things that are happening that""" start="00:08:24.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""fundamentally make Emacs better at a very""" start="00:08:26.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""core level. So, of course,""" start="00:08:32.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""why wouldn't you want to be involved in such""" start="00:08:37.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""an exciting and, I think,""" start="00:08:41.679" video="mainVideo-core" id="subtitle"]] +[[!template text="""dynamic project? How is Emacs developed?""" start="00:08:43.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Well, this is, I think,""" start="00:08:51.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps to some people,""" start="00:08:53.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""a little bit more of a threshold,""" start="00:08:54.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you like, because I think all of us know""" start="00:08:56.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""really that there is exciting and cool stuff""" start="00:08:59.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""that is going on in Emacs and has been going""" start="00:09:02.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""on over the last couple of years and we'll""" start="00:09:06.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""see even more of that,""" start="00:09:08.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, going forward.""" start="00:09:10.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""1 thing is that communication still takes""" start="00:09:12.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""place over a mailing list in 2023.""" start="00:09:16.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we have emacsdevil at gnu.org,""" start="00:09:21.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""and that's where we develop Emacs.""" start="00:09:24.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""We use, we send patches back and forth,""" start="00:09:26.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""we comment on patches.""" start="00:09:30.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""And actually this workflow is very good,""" start="00:09:32.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you're used to it. Because guess what?""" start="00:09:36.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""As Emacs users, we like doing everything we""" start="00:09:39.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""can in Emacs, especially the core tasks that""" start="00:09:42.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""we're doing, such as developing Emacs itself.""" start="00:09:45.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""Of course, you want to do that fully within""" start="00:09:50.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs. So we hack Emacs Lisp in Emacs,""" start="00:09:52.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""we hack C in Emacs, we respond to emails also""" start="00:09:55.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""from Emacs, respond to bug reports,""" start="00:10:00.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""manage bug reports. We do all that stuff""" start="00:10:02.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""very, very smoothly. And it doesn't really""" start="00:10:05.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""matter in a sense, what is the medium?""" start="00:10:07.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""It happens to be email.""" start="00:10:10.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""Technically it could be anything,""" start="00:10:12.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""but email really has that type of staying""" start="00:10:14.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""power where we've been able to use it for a""" start="00:10:16.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""long time. And this is how,""" start="00:10:19.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""and we're still able to use it.""" start="00:10:22.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""And this is how free software was always""" start="00:10:24.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""developed in the past.""" start="00:10:25.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""Only in the last, let's say 10,""" start="00:10:26.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""15 years, We've had more development taking""" start="00:10:28.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""place perhaps on forges like GitHub,""" start="00:10:32.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""GitLab, whatever. But we are 1 of the""" start="00:10:35.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""holdouts. I mean, there are others,""" start="00:10:39.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""of course, like the Linux kernel has mailing""" start="00:10:40.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""lists. They're not trying to do that scale""" start="00:10:42.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""development on GitHub.""" start="00:10:44.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""And this is not just because we're Luddites""" start="00:10:49.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""that refuse to change.""" start="00:10:51.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""We just have to do it in the old way,""" start="00:10:53.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""because it is the old way,""" start="00:10:55.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""and that's the way it should be.""" start="00:10:57.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""No, it's actually because we,""" start="00:10:58.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""as core developers, the core development team""" start="00:11:01.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""and the people already involved and doing""" start="00:11:03.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""tremendous, I mean large amounts of work in""" start="00:11:05.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs has very efficient workflows built up""" start="00:11:08.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""based on this. So of course,""" start="00:11:12.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean moving to something else is something""" start="00:11:15.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""that we might like to do,""" start="00:11:18.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""but we're not yet clear on how to do it""" start="00:11:20.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""exactly and what to move to.""" start="00:11:24.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""So these are the types of discussions that""" start="00:11:26.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""we're looking at. Can we still support a""" start="00:11:28.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""mailing, an email type workflow while moving""" start="00:11:30.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""to something else? That would be 1 of the big""" start="00:11:34.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""ones. I think another thing that trips people""" start="00:11:36.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""up is that we used a bug tracker that,""" start="00:11:38.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, maybe some people,""" start="00:11:40.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I've heard people say it's archaic.""" start="00:11:42.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's called Debugs. I think maybe Debugs gets""" start="00:11:47.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""a bit of a bad rap. I think that bugs is a""" start="00:11:49.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""good piece of software.""" start="00:11:52.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""It wasn't developed in 2023.""" start="00:11:53.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, that's much as clear.""" start="00:11:55.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's a little bit older,""" start="00:11:57.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""but it really is a workhorse of the Debian""" start="00:11:59.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""project, which is obviously a project that's""" start="00:12:01.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""developed in a very different way than Emacs""" start="00:12:03.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""is. It's on a completely different scale,""" start="00:12:09.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""of course, much bigger,""" start="00:12:11.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""many more developers, and so on.""" start="00:12:12.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I think the developers did a good job for""" start="00:12:15.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""the time. But it might be showing its age,""" start="00:12:17.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps, in places. Perhaps,""" start="00:12:20.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""again, it's the email workflow.""" start="00:12:23.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""And people see that as a little bit of a""" start="00:12:25.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""threshold. It seems alien.""" start="00:12:27.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's a little bit strange,""" start="00:12:30.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""the types of workflows that you have there.""" start="00:12:32.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we are seeing some limitations with that""" start="00:12:35.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""box. And again, how do you report bugs?""" start="00:12:38.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""Well, in a sense, it's easy.""" start="00:12:41.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""You send an email to bug-gnu-emacs at gnu.org""" start="00:12:42.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""and you copy in whatever you get from,""" start="00:12:47.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, report the EMAX bug or if you have,""" start="00:12:51.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, send mail set up locally,""" start="00:12:53.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""just hit control C, control C and it's sent""" start="00:12:55.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""to the bug tracker and that's fine.""" start="00:12:58.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""But also I have to mention that there is this""" start="00:13:03.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""very good package on GNU Elpas.""" start="00:13:08.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""If you're ever trying to read the Emacs bug""" start="00:13:10.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""tracker or following along in Emacs""" start="00:13:13.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""development, I really recommend install the""" start="00:13:16.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""package devbugs from GNU Elpa.""" start="00:13:19.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's so good. And again,""" start="00:13:22.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's built on GNU, it's all integrated in""" start="00:13:24.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs, it's so much better than using the web""" start="00:13:26.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""and so on. And if you really want to get into""" start="00:13:30.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""it, you can download the bug tracker archives""" start="00:13:33.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""and the mailing list archives,""" start="00:13:38.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""and you can put them locally,""" start="00:13:39.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""you can have them searchable,""" start="00:13:41.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""and you can have whatever experience you""" start="00:13:42.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""like. So, I mean, it's really a flexible""" start="00:13:44.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""workflow, but it's a bit strange,""" start="00:13:48.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps, to some people.""" start="00:13:51.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we also think supporting only this""" start="00:13:53.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""workflow might be a little bit too limiting.""" start="00:13:58.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we do want to move over to something like""" start="00:14:00.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""GitLab, perhaps Sourcehat or something""" start="00:14:04.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""similar. We've had a couple of discussions""" start="00:14:06.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""about that over the last couple of years.""" start="00:14:10.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think even before that,""" start="00:14:14.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""but that's how far back I've been involved,""" start="00:14:15.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""and definitely it's come up occasionally.""" start="00:14:18.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think we are less far away than perhaps""" start="00:14:23.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""ever is how I would express that,""" start="00:14:27.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""and in the sense that the remaining blockers""" start="00:14:30.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""for just making the shift,""" start="00:14:36.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's say, are I think,""" start="00:14:38.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, first of all, we're talking about""" start="00:14:40.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""limitations, perhaps in the software,""" start="00:14:42.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""they're well defined, and they're not as""" start="00:14:44.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""amountable. I don't think they have to be in""" start="00:14:46.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""any case. We should be able to make some""" start="00:14:49.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""progress. The main thing that we're lacking""" start="00:14:50.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""now is not more discussion or more people""" start="00:14:54.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""prodding us to just please switch over.""" start="00:15:00.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""No, we're looking for volunteers.""" start="00:15:03.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""If you think that you,""" start="00:15:05.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, have what it takes to sort of come""" start="00:15:08.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""in and help us do something like that and""" start="00:15:10.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""work together with us,""" start="00:15:14.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, to see what can be done,""" start="00:15:15.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps some, a few things would need to be""" start="00:15:16.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""changed in GitLab. I don't think anything""" start="00:15:20.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""huge, but maybe there are some patches to be""" start="00:15:23.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""written and sent upstream,""" start="00:15:26.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""or maybe we need to do some local hacks or""" start="00:15:27.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""whatever. If you wanna do that,""" start="00:15:30.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""please contact us, emacsdevil.""" start="00:15:33.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""We'll be very happy to talk to you.""" start="00:15:35.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""And then we can start making progress.""" start="00:15:38.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""So I'm really hoping that that sound like""" start="00:15:40.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""will come into place. But we need to,""" start="00:15:42.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""if we do switch over, we need to preserve the""" start="00:15:46.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""good parts of our email-based workflows.""" start="00:15:52.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""So there are requirements there so that we""" start="00:15:54.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""can continue to do our job as maintainers,""" start="00:15:57.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you like. Another thing is that we've""" start="00:16:01.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""sometimes seen that there's a bit of a""" start="00:16:04.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""different culture perhaps on mailing lists""" start="00:16:08.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""and on Emacs devil than what many people are""" start="00:16:11.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""used to, especially like you've used perhaps,""" start="00:16:15.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""many people might be in university and""" start="00:16:17.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""they've started using Emacs,""" start="00:16:20.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe got into a little bit of package""" start="00:16:23.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""development and starting to get the ropes of""" start="00:16:25.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""that and are very used to working on places""" start="00:16:29.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""like GitLab or something like that,""" start="00:16:32.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""then the type of culture and way of""" start="00:16:35.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""communicating that we use in Emacs might be a""" start="00:16:38.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit different. And of course,""" start="00:16:42.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's different in the sense that mailing""" start="00:16:44.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""lists have always, I mean,""" start="00:16:47.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's say hacker culture,""" start="00:16:49.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""whatever you want to call it,""" start="00:16:51.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""have always communicated in a particular way""" start="00:16:52.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""using mailing lists. So it's like succinct to""" start="00:16:54.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""the point, perhaps I'm skipping a few""" start="00:16:58.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""pleasantries. And the idea is that you should""" start="00:17:00.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""just use it in as effective way as possible,""" start="00:17:03.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""so that also the archives are usable.""" start="00:17:08.359" video="mainVideo-core" id="subtitle"]] +[[!template text="""And the other thing is that generally people""" start="00:17:11.319" video="mainVideo-core" id="subtitle"]] +[[!template text="""involved in developing free software has to""" start="00:17:13.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""deal with a lot of incoming traffic,""" start="00:17:16.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""emails. They don't have the bandwidth if it's""" start="00:17:19.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""too much noise. You really need to be strict""" start="00:17:25.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""to keep the signal to noise ratio high.""" start="00:17:28.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""We have some weird terminology on the Emacs""" start="00:17:31.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""devil. People tell us,""" start="00:17:35.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""we say sometimes install patches which""" start="00:17:38.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""basically means push to master or merge pull""" start="00:17:40.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""requests because we've used other version""" start="00:17:44.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""control systems in the past where it might""" start="00:17:46.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""have made more sense to say install patches.""" start="00:17:48.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""And then you sort of, I don't know,""" start="00:17:51.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""I say it. Don't ask me why.""" start="00:17:52.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""But it feels natural after a while.""" start="00:17:54.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""You install a patch. It's clear what you""" start="00:17:56.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""mean. You don't have to worry about which""" start="00:17:57.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""branch it's on. So it's a little bit""" start="00:18:02.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""historical there. So there is some of that""" start="00:18:06.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""culture going on. It might be different.""" start="00:18:10.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""We don't use emojis that much.""" start="00:18:11.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's another thing. There is no like,""" start="00:18:14.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""you can click the little like button at the""" start="00:18:16.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""bottom of a comment or an email as you could""" start="00:18:20.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""on GitHub. But there are exceptions and it's""" start="00:18:25.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""not like someone will send you angry emails""" start="00:18:27.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you use an emoji or something like that.""" start="00:18:29.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""But it can come off as perhaps Because people""" start="00:18:31.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""are pressed for time also when replying to""" start="00:18:34.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""all these emails. So it might come off as a""" start="00:18:37.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit short, but that's just how it is.""" start="00:18:39.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think We have heard this comment before""" start="00:18:43.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""that mailing lists are scary or Emacs devil""" start="00:18:46.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""is scary or core development is scary.""" start="00:18:50.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I've touched a few of these points a""" start="00:18:54.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit already. I think,""" start="00:18:58.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""yeah, maybe a little bit.""" start="00:18:59.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""For example, we don't use emojis very short""" start="00:19:02.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""in the communication. And we always use""" start="00:19:06.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""correct grammar and spelling.""" start="00:19:10.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""We take that seriously because it's important""" start="00:19:13.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""for being clear in your written communication""" start="00:19:15.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""when all you have is written communication.""" start="00:19:19.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's really important.""" start="00:19:22.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""But it's not like If you come in there and""" start="00:19:26.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""you don't know all these cultural rules and""" start="00:19:31.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""all these patterns, then you know you will We""" start="00:19:33.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""won't talk to you No Actually,""" start="00:19:36.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""we try to be as welcoming as we can and and""" start="00:19:37.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""be mindful and you know people not Everyone""" start="00:19:41.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""has English as their native language,""" start="00:19:44.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""for example. So perhaps someone says""" start="00:19:47.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""something, and it might come off as rude,""" start="00:19:49.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""but maybe it's just a direct translation.""" start="00:19:51.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we're trying to give a lot of whatever the""" start="00:19:53.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""native language is. So we try to give a lot""" start="00:19:56.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""of leeway and just be a little bit,""" start="00:19:59.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, flexible and focus on,""" start="00:20:01.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, the key, key points,""" start="00:20:03.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""which are the technical things,""" start="00:20:04.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""the technical decisions,""" start="00:20:06.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""technical arguments, rather than,""" start="00:20:07.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, getting bogged down in a lot of,""" start="00:20:09.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, personal, you know,""" start="00:20:11.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""discussions and flame wars.""" start="00:20:15.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""So, I mean, there are these things to be""" start="00:20:19.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""aware of, you know, it's just a little bit""" start="00:20:21.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""different. I don't think it's anything huge.""" start="00:20:23.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I wouldn't be, you know,""" start="00:20:25.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think it would be sad if people felt too""" start="00:20:28.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""intimidated by that. It just is what it is.""" start="00:20:30.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""And if you spend some time there,""" start="00:20:32.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""you'll see how people generally communicate.""" start="00:20:33.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes, there are a lot of people on""" start="00:20:38.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""EmacsDevil. It's a public mailing list.""" start="00:20:41.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""A lot of people just sign up to follow Emacs""" start="00:20:43.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""development. Sometimes they chime in.""" start="00:20:46.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think this is in general a good thing.""" start="00:20:48.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think it should be a public mailing list.""" start="00:20:50.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes this leads to weird situations from""" start="00:20:53.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""just a point of view as an Emacs maintainer,""" start="00:21:00.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? I mean, I try to say something and it""" start="00:21:03.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""doesn't always say, oh,""" start="00:21:07.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""he's the maintainer or whatever.""" start="00:21:08.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""So when I say something,""" start="00:21:10.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""it should carry a little bit more weight than""" start="00:21:11.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""some unknown person from the internet who has""" start="00:21:13.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""an opinion and decided to send it to""" start="00:21:16.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""EmacsDevil. So it's good to be a little bit""" start="00:21:18.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""aware of who is a little bit more involved""" start="00:21:21.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""with the project. I would check out the""" start="00:21:23.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""maintainers file. I would check,""" start="00:21:25.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""see in the Git log, do these people actually""" start="00:21:27.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""have any anything in core?""" start="00:21:31.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""And if not, maybe, you know,""" start="00:21:33.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""there, we won't really,""" start="00:21:35.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""even if they express an opinion very""" start="00:21:39.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""strongly, even if they're a little bit rude,""" start="00:21:41.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe they're not even involved in Emacs""" start="00:21:42.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""development. I mean, often,""" start="00:21:44.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's the case we have some people,""" start="00:21:46.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""unfortunately, at times,""" start="00:21:48.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""we have random people from the internet come""" start="00:21:50.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""in on the mailing list and they're just a""" start="00:21:52.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit rude, or they say an opinion""" start="00:21:54.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's not exactly helpful.""" start="00:21:57.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think you need to be aware.""" start="00:22:00.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, these things happen in any forum,""" start="00:22:02.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""but it happens on EmacsDevO as well.""" start="00:22:04.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""So just be a little bit aware of who you're""" start="00:22:07.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""talking to, what people are doing.""" start="00:22:10.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""It can help to Check the archives,""" start="00:22:13.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""see who writes what, and so on.""" start="00:22:16.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""But it's not something that I think is a huge""" start="00:22:20.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""problem. It is just, again,""" start="00:22:23.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""something to be aware of.""" start="00:22:24.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""We have the new kind of communication""" start="00:22:25.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""guidelines in place, which basically says""" start="00:22:28.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""that you should be nice to people and stay""" start="00:22:30.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""focused on the technical problem,""" start="00:22:33.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""try to see things from another person's point""" start="00:22:36.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""of view, this kind of stuff.""" start="00:22:38.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we're really trying to be as inclusive as""" start="00:22:39.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""possible and just stay correct in general.""" start="00:22:42.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""And sometimes, I mean,""" start="00:22:46.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""not everyone, it's a public list.""" start="00:22:48.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""We moderate it, but not to a huge extent,""" start="00:22:50.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? So sometimes people get away with a""" start="00:22:52.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit of perhaps stretching the""" start="00:22:57.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""boundaries of what might be included in the""" start="00:23:02.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""kind communication guidelines,""" start="00:23:04.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""sort of the fences and limitations of that.""" start="00:23:08.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I would just ignore that.""" start="00:23:11.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes it happens that we,""" start="00:23:13.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""as happens in any forum,""" start="00:23:15.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""by the way, you just, we have these very big""" start="00:23:17.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""threads. We start discussing something else.""" start="00:23:19.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Perhaps you send us a patch and it just""" start="00:23:21.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""devolves into us discussing something""" start="00:23:24.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""completely different. And of course I partake""" start="00:23:26.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""in that, not better than anyone else,""" start="00:23:28.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""but it just happens. I mean,""" start="00:23:30.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's not your fault. It's just what happens""" start="00:23:32.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""sometimes in forums, and don't mind that.""" start="00:23:34.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it's a little bit easier to do that in""" start="00:23:37.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""emails, because you just change the subject,""" start="00:23:39.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""and now it's supposed to be a different""" start="00:23:41.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""thread, but it comes as replies usually to""" start="00:23:43.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""you, which wouldn't happen perhaps in a""" start="00:23:45.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""different workflow. So it's something to be""" start="00:23:48.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""aware of as well. Another thing is that,""" start="00:23:49.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""of course, in written communication,""" start="00:23:53.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""tone doesn't always come across.""" start="00:23:55.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""If someone sounds negative,""" start="00:23:57.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""sometimes it's just them being neutral.""" start="00:23:59.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes you get no replies.""" start="00:24:01.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""You send something, you get no replies.""" start="00:24:05.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""And this could mean, actually it could mean,""" start="00:24:07.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""yeah, what you said was uncontroversial.""" start="00:24:09.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""We think it was a good idea.""" start="00:24:11.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""No 1 replied to it because either someone""" start="00:24:13.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""else would reply or just there was no need to""" start="00:24:16.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""reply because, yeah, why not?""" start="00:24:18.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""So but if you do send a patch and you don't""" start="00:24:21.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""get an answer, wait. I mean,""" start="00:24:24.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""don't wait 1, 2 days. Maybe we're busy or""" start="00:24:26.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""we're sick or whatever.""" start="00:24:29.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""Wait 2 weeks. It's fine to just send it""" start="00:24:30.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""again. If you send the patch to EmacsDevil,""" start="00:24:32.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""send it to the bug mailing list,""" start="00:24:35.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""because we lose track of stuff on EmacsDevil.""" start="00:24:37.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's just the reality of it.""" start="00:24:39.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""So if you propose making a change and no 1""" start="00:24:43.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""commented, feel free to ask us again if a""" start="00:24:46.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""patch would be welcome and we will clarify.""" start="00:24:48.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Bug reports, unfortunately,""" start="00:24:53.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you get no answer, I mean,""" start="00:24:54.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""we do have a limited amount of time to work""" start="00:24:56.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""on bugs. If you're looking to get started in""" start="00:24:59.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs development, this is an excellent way""" start="00:25:02.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""to start getting involved.""" start="00:25:05.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""What I'd recommend is start looking into""" start="00:25:07.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""bugs. I'd install that bug,""" start="00:25:09.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'd see about the mailing workflow and set""" start="00:25:11.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""that up a little bit, or not.""" start="00:25:13.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's up to you. You can reply to an email""" start="00:25:16.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""without setting any of that stuff up.""" start="00:25:17.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""But just help us try out your bugs,""" start="00:25:20.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""send patches, do that type of stuff.""" start="00:25:22.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, that's an excellent way,""" start="00:25:24.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""and extremely welcome.""" start="00:25:26.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""We're so happy to see when people pick up bug""" start="00:25:27.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""reports that have been left by the wayside""" start="00:25:30.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""and just fix them, send us a patch,""" start="00:25:32.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""and we can just apply it.""" start="00:25:36.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""So that's really your starting point if you""" start="00:25:37.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""want to get involved in Emacs core""" start="00:25:40.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""development. I also want to say that be aware""" start="00:25:44.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""that you know Emacs is the editor of the GNU""" start="00:25:50.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""operating system and this makes the project""" start="00:25:54.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""political a little bit whether you like it or""" start="00:25:56.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""not. Luckily the you know the politics are""" start="00:25:58.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""limited enough that we can find broad""" start="00:26:01.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""agreement on it. So we want to promote,""" start="00:26:03.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""we want to create free software.""" start="00:26:05.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's sort of it. That's it.""" start="00:26:08.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""And there shouldn't be too much more to it,""" start="00:26:11.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? We want to rid the world of""" start="00:26:13.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""proprietary software as an evil thing.""" start="00:26:15.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""Ideally, all software should be free.""" start="00:26:19.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""But these are just the goals of the free""" start="00:26:23.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""software movement. So we're very strict with""" start="00:26:25.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""some things. We don't recommend non-free""" start="00:26:27.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""proprietary software. Of course,""" start="00:26:30.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""we have no problem mentioning Microsoft""" start="00:26:31.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""Windows because everyone knows that there's""" start="00:26:33.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""this obscure operating system developed in""" start="00:26:35.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""California that some people insist on using.""" start="00:26:39.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""We use, many of us use GNU plus Linux.""" start="00:26:42.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Actually, some core developers happen to use""" start="00:26:45.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""exactly, you know, not GNU plus Linux,""" start="00:26:47.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""but that's fine as well,""" start="00:26:50.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? We take a little bit of a pragmatic""" start="00:26:52.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""view, but we don't wanna do,""" start="00:26:54.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""what we don't wanna do is promote like this""" start="00:26:56.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""small, unknown piece of non-free software and""" start="00:26:59.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""sort of help the non-free software in that""" start="00:27:04.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""way. That's where we try to draw the line,""" start="00:27:08.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, in just expressing just a few""" start="00:27:12.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""words. So that's 1 thing.""" start="00:27:15.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""We're, I think, very pragmatic on this point,""" start="00:27:18.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""but we do try to follow the principle.""" start="00:27:21.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""We also require copyright assignment.""" start="00:27:25.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think in general,""" start="00:27:27.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""the argument is that we require a copyright""" start="00:27:30.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""assignment, because that makes it easier to""" start="00:27:34.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""defend the legal status of the GNU Emacs""" start="00:27:39.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""source code. So if there's ever a legal""" start="00:27:43.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""battle, the idea is that if it's only 1""" start="00:27:45.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""copyright holder and you have a GPL""" start="00:27:48.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""violation, i.e. Someone might change Emacs""" start="00:27:50.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""and then distribute it as proprietary""" start="00:27:54.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""software or something nasty like that,""" start="00:27:56.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""then we have an easier way of defending it in""" start="00:27:58.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""court if there is only 1 copyright holder.""" start="00:28:00.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we assigned copyright to the Free Software""" start="00:28:02.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""Foundation. And I think there,""" start="00:28:04.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, sometimes people oppose this for""" start="00:28:09.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""various reasons, you know,""" start="00:28:12.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""people see it as, you know,""" start="00:28:13.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe some people might say,""" start="00:28:15.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, it's ideological,""" start="00:28:16.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, who goes, you know,""" start="00:28:18.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""the FSF goes too far with this.""" start="00:28:19.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""And, and, I mean, that's fine.""" start="00:28:21.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""You that's, that's an opinion.""" start="00:28:23.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""And the there, then other people are more""" start="00:28:25.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""practical, you know, it's just,""" start="00:28:28.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's a hassle, basically,""" start="00:28:30.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""we don't want to sign these papers.""" start="00:28:31.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I'm not really here to tell anyone that""" start="00:28:33.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""they're wrong. I've expressed my views on""" start="00:28:35.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""this in the past. But just for now,""" start="00:28:37.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm just very practical for the purposes of""" start="00:28:40.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""this talk. So I signed the papers.""" start="00:28:43.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's Maybe it didn't take me many minutes.""" start="00:28:46.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""And in most cases, it shouldn't really.""" start="00:28:49.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it's something that I found worth doing,""" start="00:28:52.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""because that way I could focus on continuing""" start="00:28:55.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""to improve Emacs instead of discussing the""" start="00:28:58.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""finer points of copyright law.""" start="00:29:01.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""You could write patches and stuff,""" start="00:29:03.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""that kind of thing. So,""" start="00:29:05.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, this is something that trips people""" start="00:29:06.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""up and, you know, it's fine that people have""" start="00:29:08.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""different opinions on it and so on,""" start="00:29:11.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""but I think for now that's just something to""" start="00:29:14.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""be aware of. So that's,""" start="00:29:19.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, I mean, there's much more that could""" start="00:29:23.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""be said. Ideally, I would like to have a""" start="00:29:26.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""practical part to this talk as well.""" start="00:29:27.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I wanted to say something about the""" start="00:29:32.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""packages in Emacs. Because as we know,""" start="00:29:34.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, Emacs is the, I can't remember what""" start="00:29:37.159" video="mainVideo-core" id="subtitle"]] +[[!template text="""it says, it's like a visual,""" start="00:29:40.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""there's in the manual it says,""" start="00:29:42.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""oh, Emacs is an advanced text editor.""" start="00:29:43.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's visual, which, I mean,""" start="00:29:46.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's not ed, the whole Unix ed,""" start="00:29:47.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""so that's cool. It's also customizable,""" start="00:29:50.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? So that's always been a thing.""" start="00:29:53.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""And what makes Emacs so amazing.""" start="00:29:57.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""And some people described it as,""" start="00:30:00.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I can't remember who said that there has been""" start="00:30:01.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""a Cambrian explosion of packages in Emacs.""" start="00:30:03.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think that's true.""" start="00:30:09.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, if you look at something like Melpa,""" start="00:30:10.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think they have over 5,000""" start="00:30:12.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""packages now. It's like truly impressive,""" start="00:30:13.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""just an immense amount of work and immense""" start="00:30:16.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""amount of packages. And really,""" start="00:30:18.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""this shows the strength,""" start="00:30:22.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, of the Emacs community,""" start="00:30:24.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""of Emacs itself as an idea.""" start="00:30:26.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think it's also just tremendous work""" start="00:30:29.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's been done by the maintainers.""" start="00:30:31.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""And they do get a lot of recognition for""" start="00:30:33.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""that. And rightly so, in my opinion.""" start="00:30:36.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's done so much, I think,""" start="00:30:39.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""for our community. The other package archive""" start="00:30:41.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""that we have is GNU-ELPA.""" start="00:30:44.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""And that's been enabled since when packages""" start="00:30:46.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""first got introduced back in,""" start="00:30:49.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, Emacs, was it 23?""" start="00:30:51.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""And probably, I mean, the main thing why a""" start="00:30:55.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""package goes onto GNU Elpa is,""" start="00:30:59.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, it should be installable out of the""" start="00:31:01.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""box. So, I mean, that's a big benefit in a""" start="00:31:04.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""sense. It's also a requirement for GNU Alpa""" start="00:31:07.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""that the copyright, again,""" start="00:31:10.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""just as GNU Emacs, the copyright is assigned""" start="00:31:12.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""to the Free Software Foundation.""" start="00:31:15.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""And some very hugely popular packages,""" start="00:31:17.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""like YaSnippet, for example,""" start="00:31:20.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""is on GNU Alpa. And we were discussing this""" start="00:31:21.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""just 2 months back. And Joe Tavora,""" start="00:31:25.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""I can't say his name, G-O-A-O,""" start="00:31:30.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""Tavora. He made the point that he's never""" start="00:31:33.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""seen a problem in any of his packages with""" start="00:31:36.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""copyright assignment in particular.""" start="00:31:40.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's never been a problem to get people to be""" start="00:31:42.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""involved in the development of those packages""" start="00:31:44.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""just because of the copyright assignment""" start="00:31:46.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""requirements. So I mean,""" start="00:31:49.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's his perspective on that.""" start="00:31:51.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think it was worth relating his""" start="00:31:54.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""experience here. So we also have this new""" start="00:32:00.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""package archive called non-GNU-alpha,""" start="00:32:06.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""which is now enabled by default as well.""" start="00:32:08.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think for practical purposes,""" start="00:32:12.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""you could get into it a little bit more,""" start="00:32:14.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, why we created non-NUELPA,""" start="00:32:16.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""and perhaps that's something we can discuss""" start="00:32:19.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""in the Q&A section. For practical purposes,""" start="00:32:23.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""the main thing to be aware of is,""" start="00:32:26.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""yes, we don't promote non-free software on""" start="00:32:28.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""there, And we also don't have the copyright""" start="00:32:30.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""assignment requirement.""" start="00:32:36.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think this is probably for new packages.""" start="00:32:41.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's generally better if they go to GNU Elpa,""" start="00:32:43.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""if there is any type of idea or ambition""" start="00:32:48.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""that, you know, at some point it would be""" start="00:32:51.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""good or it might be good to eventually have""" start="00:32:53.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""some type of functionality like this shipped""" start="00:32:56.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""with Emacs itself. So I think this is""" start="00:32:58.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""something that perhaps package authors could""" start="00:33:01.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""also be aware of, that occasionally we do""" start="00:33:04.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""bring in functionality from GNU Elpa into""" start="00:33:07.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""core Emacs because we feel that it should be""" start="00:33:09.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""better integrated with Emacs itself.""" start="00:33:12.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""So if I could give any type of""" start="00:33:16.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""recommendation, of course,""" start="00:33:18.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""you do. These are your packages,""" start="00:33:19.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? In an ideal world,""" start="00:33:22.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""we would only use this for legacy packages""" start="00:33:25.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""where people contributed in the past,""" start="00:33:28.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""but you didn't worry about the copyright""" start="00:33:30.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""assignment. But where possible,""" start="00:33:32.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think there is benefit in putting it on GNU""" start="00:33:34.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""Elpa. And I wanted to end a little bit on a""" start="00:33:37.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""more, you know, the more opinionated perhaps""" start="00:33:42.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""part of my talk and not just talk about""" start="00:33:45.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""processes. I see that I'm running out of""" start="00:33:47.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""time. So I will say Emacs is hackable.""" start="00:33:49.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think that's a blessing and a curse.""" start="00:33:51.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""And if you think about something like,""" start="00:33:54.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""the types of choices that you can make,""" start="00:33:59.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""perhaps when you implement something,""" start="00:34:01.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""There are choices, different choices between""" start="00:34:03.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""something like common list,""" start="00:34:06.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""which is like bigger, more batteries""" start="00:34:07.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""included, and something like scheme,""" start="00:34:09.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""which is more minimal.""" start="00:34:11.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think we have some of those,""" start="00:34:12.239" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, this kind of tension also in the""" start="00:34:13.679" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs itself. What should be in Emacs core?""" start="00:34:16.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""Should we have a lean Emacs core?""" start="00:34:18.159" video="mainVideo-core" id="subtitle"]] +[[!template text="""Should we have more stuff in Emacs core?""" start="00:34:19.699" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think these are good discussions to""" start="00:34:22.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""have. And there are various challenges that""" start="00:34:26.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""are associated with each of those choices.""" start="00:34:29.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think what will never change is that Emacs""" start="00:34:32.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""is hackable. Emacs is customizable.""" start="00:34:35.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""This is the key strength.""" start="00:34:37.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""This is why we love and use Emacs.""" start="00:34:38.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think fundamentally,""" start="00:34:40.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""whether you do it a lot or not,""" start="00:34:42.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""this is what at core is bringing you that""" start="00:34:44.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""amazing user experience.""" start="00:34:47.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""However, the flip side of that sometimes is""" start="00:34:50.739" video="mainVideo-core" id="subtitle"]] +[[!template text="""that it's so easy to hack Emacs so that we""" start="00:34:53.199" video="mainVideo-core" id="subtitle"]] +[[!template text="""hack around bugs instead of fixing them.""" start="00:34:56.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""We do some tweak and our customers say,""" start="00:34:58.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""okay, this is a little bit broken,""" start="00:35:00.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""Let me just fix it. I'll put an advice on""" start="00:35:01.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""this function. I'll do this customization.""" start="00:35:03.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""Or we accept limitations in Emacs core.""" start="00:35:06.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think it's fine.""" start="00:35:09.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, this will never change.""" start="00:35:12.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""That will always be core to what Emacs is,""" start="00:35:13.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? However, I think that the flip side of""" start="00:35:16.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""that is that I think sometimes we could be""" start="00:35:20.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""better at just taking those few extra steps""" start="00:35:22.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""to also make Emacs better itself and solve""" start="00:35:26.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""this for all users. And I think if we can""" start="00:35:29.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""build a little bit more of a culture like""" start="00:35:31.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""that, I mean, we already have that culture to""" start="00:35:33.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""a large extent, don't get me wrong,""" start="00:35:35.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""we do, but if we can get a little bit more of""" start="00:35:37.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""that culture, let's get that into core,""" start="00:35:39.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's get that problem fixed,""" start="00:35:41.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""that frustration. I can tell you that,""" start="00:35:43.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""I just started a new assignment at work,""" start="00:35:47.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I already told you, so I'm going to write a""" start="00:35:48.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""lot of Python, okay? So I need to keep track""" start="00:35:51.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""of something called virtual environments,""" start="00:35:54.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""and that's just a way to install these""" start="00:35:56.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""dependencies just locally per directory or""" start="00:35:58.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""per repository kind of thing.""" start="00:36:01.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I've used various packages for that.""" start="00:36:03.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""There are like 4 packages,""" start="00:36:05.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""5 packages, maybe. And 1 is called VM,""" start="00:36:07.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""and 1 is called VirtualM,""" start="00:36:10.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""and 1 is called Python-VM.""" start="00:36:11.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""And now I'm using, you know,""" start="00:36:15.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm using a different 1.""" start="00:36:16.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it's just a little bit,""" start="00:36:18.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""why doesn't this work out of the box in""" start="00:36:20.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs? Why? I don't think there's a really""" start="00:36:22.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""good fundamental good reason why something""" start="00:36:25.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""like that doesn't work in Emacs.""" start="00:36:28.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""So I think that's really,""" start="00:36:30.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, I'm sure there are other things like""" start="00:36:32.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""that, other fundamental features.""" start="00:36:35.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""Why is it that for the last 20 years,""" start="00:36:37.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""we've shipped Emacs with no PHP support out""" start="00:36:39.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""of the box? I mean, I'm not a PHP programmer.""" start="00:36:43.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""I don't really have a lot of love for PHP,""" start="00:36:47.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's say. To me, it's a very funny-looking""" start="00:36:51.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""language, but okay, still it's been very""" start="00:36:57.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""popular. Why haven't we supported it?""" start="00:37:00.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, it's just strange.""" start="00:37:02.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""You install Emacs on some machine,""" start="00:37:03.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""you open a PHP file, you get fundamental""" start="00:37:05.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""mode. It's not the best user experience,""" start="00:37:07.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""in my opinion. So I think there are some""" start="00:37:09.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""things where we really could do a little bit""" start="00:37:12.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""better. And I'm seeing this all the time.""" start="00:37:15.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""Just this week, this new assignment was""" start="00:37:20.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""interesting. There was this Emacs user.""" start="00:37:22.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""Turns out we have the exact same hack in both""" start="00:37:24.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""of our init files. So we had created the""" start="00:37:26.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""exact same mode for DIRED,""" start="00:37:29.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""actually, to hide dot files.""" start="00:37:32.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""You know, dot something is supposed to be""" start="00:37:33.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""hidden on a Unix system.""" start="00:37:36.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""So we had DERED hide dot files mode to just""" start="00:37:40.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""hide them. And why isn't that in DERED?""" start="00:37:43.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""Or should it be in DERED?""" start="00:37:47.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""Should it be a package on the new Elpa?""" start="00:37:48.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""Where should it be? Why is it just local""" start="00:37:51.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""hack? Should it be on a wiki somewhere?""" start="00:37:53.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, sometimes that's the correct answer.""" start="00:37:54.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes the correct answer is,""" start="00:37:56.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""yes, it should be a package.""" start="00:37:59.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sometimes the correct answer is,""" start="00:38:00.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""yes, it should really be in core.""" start="00:38:02.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""So what I want to promote is more like,""" start="00:38:04.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""let's just take a step back and just ask""" start="00:38:06.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""yourself, what's the best solution if we look""" start="00:38:08.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""at the overall picture?""" start="00:38:11.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""Should I hack this into my configuration?""" start="00:38:12.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""In many cases, yes, that's the right thing to""" start="00:38:14.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""do. We don't want to proliferate just random""" start="00:38:16.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""solutions all over Emacs for no reason.""" start="00:38:19.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""But sometimes we want to fix it once and for""" start="00:38:22.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""all. We want to do that in core.""" start="00:38:24.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""So you could send stuff like that to us as""" start="00:38:27.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""patches or as packages.""" start="00:38:30.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""And we can discuss a little bit about where""" start="00:38:31.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""should we solve this? What's the right level""" start="00:38:34.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""of abstraction? I'm seeing that I'm running""" start="00:38:37.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""out of time. I had an Emacs wish list.""" start="00:38:41.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""Maybe we can take more of that in the Q&A.""" start="00:38:43.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I want to say, like,""" start="00:38:47.170" video="mainVideo-core" id="subtitle"]] +[[!template text="""in VS Code, you just start VS Code.""" start="00:38:49.226" video="mainVideo-core" id="subtitle"]] +[[!template text="""You open a Python file,""" start="00:38:50.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""and you get, like, hey,""" start="00:38:51.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""are you trying to use Python?""" start="00:38:53.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Click here, install Python.""" start="00:38:54.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""You get all the nice things out of the box.""" start="00:38:56.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""And my argument is, why can't we have more of""" start="00:38:59.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""that in Emacs? I don't think it's necessarily""" start="00:39:01.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""hard, but it does take a little bit of work.""" start="00:39:04.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""The challenges here are more social,""" start="00:39:06.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, than technical.""" start="00:39:09.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I think it's worth doing,""" start="00:39:10.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""because it's not just Python.""" start="00:39:12.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's just There are always these small things""" start="00:39:14.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""where it just really should work,""" start="00:39:16.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""and that would be a much better experience.""" start="00:39:18.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""And then you could customize not that thing""" start="00:39:20.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""that should just work,""" start="00:39:23.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""but you could customize more fun and""" start="00:39:24.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""exploratory things instead of people""" start="00:39:27.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""reinventing the wheel over and over again.""" start="00:39:29.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""So I'm very excited about what's happening in""" start="00:39:31.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs. I think we should be proud of what""" start="00:39:33.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""we've accomplished. It's so many things to""" start="00:39:35.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""many different people,""" start="00:39:37.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""an environment for hacking,""" start="00:39:38.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""just a productivity system.""" start="00:39:40.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Other sees us as a different way of looking""" start="00:39:41.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""at computing, you know,""" start="00:39:44.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""the embodiment of the ideal of the Lisp""" start="00:39:45.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""machine if you want to talk big words and""" start="00:39:47.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""stuff like that. And of course,""" start="00:39:49.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs are all those things and so many more.""" start="00:39:50.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""And that's what makes Emacs so amazing.""" start="00:39:53.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""And in some sense, we should be care that""" start="00:39:56.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""people are satisfied with using lesser text""" start="00:40:00.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""editors. How could they be happy running""" start="00:40:03.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""that? I mean, I'm sure it's fine,""" start="00:40:05.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""but it sure as hell isn't Emacs.""" start="00:40:07.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""So don't we owe it to the world and to them""" start="00:40:09.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""and to ourselves to make a great Emacs.""" start="00:40:12.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""That will be my ending words.""" start="00:40:14.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I hope to see you all in the Q&A.""" start="00:40:16.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Thank you all. And thank you so much,""" start="00:40:18.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Stefan. That was a wonderful presentation.""" start="00:40:22.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I just want to give you the opportunity.""" start="00:40:24.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""You said that you perhaps had,""" start="00:40:27.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Not the practical stuff,""" start="00:40:30.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""but you wanted to do a demo or something like""" start="00:40:31.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""this? What did you mention exactly?""" start="00:40:33.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, we didn't have time really.""" start="00:40:36.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yes, I'm not sure. I didn't prepare anything""" start="00:40:38.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""so that we can do it live.""" start="00:40:42.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""But maybe for next time,""" start="00:40:43.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""I will do a demo. Don't hold me to it.""" start="00:40:44.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""Or someone else could.""" start="00:40:49.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""That would be really amazing.""" start="00:40:51.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right. Well, thank you,""" start="00:40:53.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""Stéphane. You've been already into so much""" start="00:40:54.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""detail of so many... So much of the intricacy""" start="00:40:56.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""of the maintenance. And as someone who's been""" start="00:41:01.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""95% of the time developing for Melpa,""" start="00:41:05.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""I feel like this talk was very geared to a""" start="00:41:08.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""lot of us who tend to experiment in this""" start="00:41:11.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Cambrian stage of Emacs evolution,""" start="00:41:13.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""where we get to deploy a lot of creativity""" start="00:41:16.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""whilst also feeling pretty agile in a way we""" start="00:41:20.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""come up with solutions to problems.""" start="00:41:24.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""But you've won me over with your discussion""" start="00:41:25.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""about potentially moving some of this stuff""" start="00:41:29.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""to core. And I think this particularly""" start="00:41:31.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""resonated at the end with this tension that""" start="00:41:33.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""you feel about problems that you encounter.""" start="00:41:36.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Do you fix them in Melpa?""" start="00:41:39.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""Do you fix them in core?""" start="00:41:40.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""Is it not something that is supposed to be an""" start="00:41:42.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""option? I love this tension and it's""" start="00:41:43.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""something that we've been exploring for the""" start="00:41:46.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""last 3 edition of Emacs Cons.""" start="00:41:48.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's really what is to be the interaction""" start="00:41:49.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""between this pool of very clever developers""" start="00:41:52.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""who are on Melpa but who are perhaps a little""" start="00:41:55.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""bit afraid of joining Core and the wonderful""" start="00:41:58.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""job that you do that, yes,""" start="00:42:00.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""seems archaic from the outside,""" start="00:42:02.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""but as you've been at length today in your""" start="00:42:05.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""presentation, is actually just a better way""" start="00:42:07.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""to work, a very pragmatic way to get a lot of""" start="00:42:09.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""work done. So, thank you so much for your""" start="00:42:11.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""presentation. Thank you,""" start="00:42:13.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""Leo. So, we have about 12 minutes now to go""" start="00:42:15.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""through as many questions as possible.""" start="00:42:20.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""You have obviously had a lot of questions""" start="00:42:22.950" video="mainVideo-core" id="subtitle"]] +[[!template text="""throughout your presentation.""" start="00:42:26.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""Do you have access to the pad,""" start="00:42:27.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""or do you want me to share the question and""" start="00:42:28.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""feed them to you? Yes,""" start="00:42:30.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""could you start with sharing them?""" start="00:42:32.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'll see if I can get it on my screen.""" start="00:42:34.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sure, I'll do that. Please let me know if my""" start="00:42:36.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""microphone is clipping because my OBS setup""" start="00:42:39.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""sometimes is a little bit janky.""" start="00:42:42.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I'm going to try to read the questions""" start="00:42:44.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""for now. It's tipping,""" start="00:42:46.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""I can hear you okay. Okay,""" start="00:42:48.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""so bear with the clicking,""" start="00:42:51.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""we'll switch as soon as possible to Stefan""" start="00:42:54.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""reading the question, but I'll read the first""" start="00:42:56.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""1. Can you tell us some about your,""" start="00:42:58.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""can you tell us some more I assume,""" start="00:43:02.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""about your background with Emacs development""" start="00:43:04.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""and programming in general,""" start="00:43:06.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""your professional work possibly?""" start="00:43:07.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, sure. Okay, I studied computer science""" start="00:43:11.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""at university. I started programming on a""" start="00:43:15.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Commodore 64. I started with BASIC and then I""" start="00:43:19.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""did a couple of versions of BASIC as a kid.""" start="00:43:23.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""But then really things took off when I""" start="00:43:27.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""started using GNU Linux.""" start="00:43:31.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""I can't remember which year,""" start="00:43:34.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe it was early 2000,""" start="00:43:35.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""something like that, late.""" start="00:43:38.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""No, it must've been before that actually,""" start="00:43:39.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""because I remember I was 14.""" start="00:43:42.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, okay, so let's say 1999,""" start="00:43:44.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""1998, somewhere there around.""" start="00:43:46.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""Then I started with Perl,""" start="00:43:48.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""and I did Perl for a good long while.""" start="00:43:50.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""I learned C++, I learned C,""" start="00:43:52.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""I did all kinds of stuff,""" start="00:43:55.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""and then I went to university,""" start="00:43:56.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""computer science, and I've been working,""" start="00:43:59.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, in various roles.""" start="00:44:01.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right now, I'm coding Python.""" start="00:44:04.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""Up until last Friday, I was writing firmware""" start="00:44:06.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""in C for a small microcontroller,""" start="00:44:09.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""which is pretty different than writing""" start="00:44:12.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Python, that's for sure.""" start="00:44:15.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""So yeah, so that's a little bit about me.""" start="00:44:17.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""I got interested in free software,""" start="00:44:19.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, also at a very young age.""" start="00:44:22.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""So, I mean, I've been following these,""" start="00:44:24.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, ideological discussions and""" start="00:44:26.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""debates, read all this stuff by Richard""" start="00:44:29.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Stallman and so on and so forth.""" start="00:44:31.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""But yeah, that's it. Great,""" start="00:44:33.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""thank you. I'll move on to the next question.""" start="00:44:37.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""You'll have to listen to me because if I""" start="00:44:41.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""start sharing my screen again,""" start="00:44:42.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""we're going to get some clicks.""" start="00:44:45.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""So the question. Do you think that 1 day""" start="00:44:48.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""there will be a native I'll start again,""" start="00:44:50.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:53.930" video="mainVideo-core" id="subtitle"]] +[[!template text="""a native... I'll start again,""" start="00:44:54.079" video="mainVideo-core" id="subtitle"]] +[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:54.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""a native graphical web browser in Emacs or is""" start="00:44:56.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""it kind of against its philosophy and""" start="00:44:59.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""architecture? So will we stick just with EWW""" start="00:45:00.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""and EAF or similar workaround tricks?""" start="00:45:04.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""So if, I don't know if people have seen,""" start="00:45:08.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""there is a talk by, I think,""" start="00:45:11.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""Perry Metzger, is that the name?""" start="00:45:13.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sorry if I got the name wrong.""" start="00:45:15.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""Perry Metzger, I think.""" start="00:45:17.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's like, he marks a text editor for the""" start="00:45:18.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""next 40 years. He makes an excellent point""" start="00:45:20.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""there that 1 of the things that we need to do""" start="00:45:22.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""is really get a proper HTML rendering in""" start="00:45:24.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs. It's like a dream at this point.""" start="00:45:27.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""No 1 is actively working on something like""" start="00:45:30.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""that. I think that, you know,""" start="00:45:32.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""there, first of all, you'd need to rewrite""" start="00:45:34.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""the display engine. So that's a big job.""" start="00:45:36.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""It is. I'm not saying,""" start="00:45:39.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, it can't be done,""" start="00:45:41.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""but you need to start there.""" start="00:45:43.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right? Second of all, you need to think""" start="00:45:44.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""about, you know, with all the Emacs Lisp code""" start="00:45:47.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""out there, is really assuming,""" start="00:45:50.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, 1 paradigm, which is that you have""" start="00:45:52.090" video="mainVideo-core" id="subtitle"]] +[[!template text="""a square, and basically you have columns and""" start="00:45:54.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""you have rows, and everything is in there,""" start="00:45:57.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""even images, is basically in a column,""" start="00:45:59.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, in a column on a row somewhere.""" start="00:46:02.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""Whereas, you know, when you just start doing""" start="00:46:05.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""the more web stuff and web rendering,""" start="00:46:07.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""you already have like a seaplane.""" start="00:46:10.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""You have different types of geometries that""" start="00:46:12.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""are possible. And what does it mean to go to""" start="00:46:14.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""the logical next line in that kind of sense?""" start="00:46:16.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean these types of things I'm not saying""" start="00:46:19.370" video="mainVideo-core" id="subtitle"]] +[[!template text="""it can't be done. I'm saying there are there""" start="00:46:21.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""are definitely some challenges there It would""" start="00:46:23.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""be amazing I mean, but we need someone with""" start="00:46:27.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, the inclination and talent I think""" start="00:46:30.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""to work on that's a job posting if I've ever""" start="00:46:33.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""had 1. So good luck to whoever's willing to""" start="00:46:37.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""apply for this 1. I think it's a tough 1.""" start="00:46:40.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""It is, yes. Go on. Okay,""" start="00:46:43.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""do you happen to have the questions in front""" start="00:46:46.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""of you? Can I just read them to you so that""" start="00:46:48.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""you can also have a feedback in front of you?""" start="00:46:50.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yes, I have the pad here.""" start="00:46:54.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""Okay, cool. So I'll read the next question""" start="00:46:57.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""and this way I don't have to worry too much""" start="00:46:58.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""about me butchering every word in the""" start="00:47:00.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""sentence. So, Emacs development and""" start="00:47:02.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""communication still is very much focused on""" start="00:47:04.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""email mailing lists. I like this,""" start="00:47:06.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""but what do you think about introducing other""" start="00:47:08.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""channels for talking to users,""" start="00:47:10.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""like the Emacs project community could set up""" start="00:47:12.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""a master on instance of its own,""" start="00:47:15.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""for instance? I think from the point of view""" start="00:47:17.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""of the Emacs core team,""" start="00:47:20.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""we don't really have a lot of resources or""" start="00:47:21.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""people inclined to be working on stuff like""" start="00:47:23.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""that. But I mean, there is so much going on.""" start="00:47:25.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs is a very, you know,""" start="00:47:27.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's a big community, frankly,""" start="00:47:30.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? So people working on emacs.com,""" start="00:47:32.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""there are people in the IRC channel,""" start="00:47:34.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""the emacs IRC channel,""" start="00:47:37.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""there's the emacs subreddit.""" start="00:47:39.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""And I mean, people are doing an incredible""" start="00:47:40.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""job. And I think if people wanna do more""" start="00:47:43.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""stuff like that, I mean,""" start="00:47:45.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""Don't wait for Argo, just go for it.""" start="00:47:46.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""Great. Moving on to the next question.""" start="00:47:52.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sorry, I'm not commenting anymore because we""" start="00:47:54.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""have so many questions and I'd love for you""" start="00:47:56.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""to answer as many people as possible because""" start="00:47:58.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""we have about 6 minutes technically,""" start="00:48:00.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""but we can go perhaps a little bit over.""" start="00:48:02.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""If you have the time, Stefan,""" start="00:48:05.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""though. Yeah. Okay, great.""" start="00:48:06.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""What are some features or packages you'd like""" start="00:48:09.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""to see developed by the community?""" start="00:48:11.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""We've already talked about the native HTTP""" start="00:48:12.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""display, but do you have any others?""" start="00:48:15.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""So, I mean, developed by the community,""" start="00:48:19.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""it depends what you mean.""" start="00:48:22.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""So do you mean sending stuff that people""" start="00:48:23.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""could be working on in general?""" start="00:48:27.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think for now, like let's say the roadmap,""" start="00:48:30.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'll just give some of the things that I""" start="00:48:33.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""think should happen right now and that I""" start="00:48:35.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""would love for people to send patches for.""" start="00:48:36.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's what I'm gonna be answering because""" start="00:48:39.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's what I think I can answer.""" start="00:48:41.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Tree-sitter is a new thing,""" start="00:48:43.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? Improving and working on new modes""" start="00:48:45.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""for, you know, TreeSitter,""" start="00:48:48.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's not very hard. I think many people get""" start="00:48:50.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""into it and make sure to integrate them in""" start="00:48:52.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs core. I think that would be,""" start="00:48:55.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, on my wishlist.""" start="00:48:58.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""The other thing that is that we've asked for""" start="00:49:00.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""someone perhaps with a little bit more""" start="00:49:01.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""experience, I think, but working on""" start="00:49:03.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""refactoring capabilities in Emacs and a more""" start="00:49:05.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""general framework, I think,""" start="00:49:09.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""for that. There are probably many more ideas""" start="00:49:11.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""that I could give people,""" start="00:49:13.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""but those would be the 2 big ones,""" start="00:49:15.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, that are also very uncontroversial.""" start="00:49:17.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's funny because for me,""" start="00:49:22.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""I don't think refactoring would count as a""" start="00:49:24.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""feature, but it's so vital to allowing""" start="00:49:26.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""further features to be developed.""" start="00:49:30.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""Otherwise, I remember the way Org Mode used""" start="00:49:31.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""to be before we had Org Element and stuff""" start="00:49:34.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""like this. It was really complicated to write""" start="00:49:36.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""any kind of parsing stuff for it.""" start="00:49:38.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""And now that we've got it,""" start="00:49:41.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""it just opened up a world of possibility""" start="00:49:42.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""where parsing an Org Mode file is just made""" start="00:49:44.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""so much easier. So I think that's a wonderful""" start="00:49:46.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""answer because it goes,""" start="00:49:48.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""it's multi-layered as you would expect from""" start="00:49:49.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""something that concerns the whole of Emacs.""" start="00:49:52.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""Moving on to the next question.""" start="00:49:55.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""What is the hardest decision being made""" start="00:49:57.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""within Emacs dev for the last 3 years.""" start="00:49:59.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm not sure, is it the decision in the last""" start="00:50:02.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""3 years or I'll let you interpret the""" start="00:50:04.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""question however you want.""" start="00:50:07.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""Okay, well, I'll say this.""" start="00:50:09.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""I started in August and I haven't had any""" start="00:50:11.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""really hard decisions so far.""" start="00:50:14.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""So good news. Maybe Eli will have more for""" start="00:50:16.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""the last 3 years. Keep it simple.""" start="00:50:20.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""Thanks. Cool. Next question.""" start="00:50:25.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Any plans to integrate XWM into core?""" start="00:50:28.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs is a really good Winters manager.""" start="00:50:31.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's super cool. I think EXWM is cool.""" start="00:50:34.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think they need to upgrade to Wayland""" start="00:50:38.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""somehow and that's not clear yet,""" start="00:50:40.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""but you know, we don't have any current plans""" start="00:50:41.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""to integrate it, no. Right,""" start="00:50:44.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""Next question. Do you think it is a good idea""" start="00:50:49.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""to choose Org Mode for writing documentation""" start="00:50:51.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""instead of tech info? I think that whatever""" start="00:50:53.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""we do, it should be the people that are""" start="00:50:57.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""working on the documentation that should make""" start="00:50:59.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""that choice. Currently we have,""" start="00:51:01.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, Modus themes and Org Mode itself is""" start="00:51:03.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""writing their documentation in Org Mode,""" start="00:51:05.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's fine by me. It has some drawbacks,""" start="00:51:08.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""it has some benefits, but most documentation""" start="00:51:10.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""is still in tech info.""" start="00:51:13.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""Maybe we'd need to replace that at some""" start="00:51:15.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""point, I don't know. But for now,""" start="00:51:17.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's what people know and use.""" start="00:51:19.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""And if you find that as a barrier to""" start="00:51:22.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""contribute to Emacs, I mean,""" start="00:51:24.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""just really write it as plain text.""" start="00:51:25.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""We'll be happy to help you with the markup.""" start="00:51:27.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's a little bit, you know,""" start="00:51:29.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""finicky and stuff like that.""" start="00:51:30.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""Great. Thanks for that.""" start="00:51:33.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Next question. What do you plan to work on in""" start="00:51:35.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs Core in the future?""" start="00:51:38.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm a little bit hesitant to reply to that.""" start="00:51:40.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""Of course I have ideas.""" start="00:51:42.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""Of course there are projects that I'm working""" start="00:51:43.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""on. However, if I say it here,""" start="00:51:45.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""I feel like, you know,""" start="00:51:47.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""then you'll hold me to it later and come ask,""" start="00:51:48.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""where is that feature?""" start="00:51:51.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""So I'll just say there is plenty of stuff""" start="00:51:52.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""that I'm working on, and if you want to know""" start="00:51:55.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""some of the stuff that I have been working""" start="00:51:57.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""on, check the Git log.""" start="00:51:58.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think that's just really as much as I want""" start="00:52:00.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""to say about that right now.""" start="00:52:02.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""You've added folks to just look at the path""" start="00:52:05.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""with the changelog and that's all you need.""" start="00:52:07.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""All right, moving on to the next question.""" start="00:52:11.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""What do you use Emacs for in your life other""" start="00:52:14.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""than working on Emacs itself?""" start="00:52:16.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Oh shit. So the big thing is programming,""" start="00:52:18.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? Now I work as a programmer.""" start="00:52:21.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""But in general, I use org mode heavily.""" start="00:52:27.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use it for all my writing.""" start="00:52:29.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use it to write, prepare this talk.""" start="00:52:30.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use it as a productivity system.""" start="00:52:33.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use it for emails. I use it as an RSS""" start="00:52:35.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""reader. I do most of my computing.""" start="00:52:41.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""I also have Firefox. So it's like Emacs and""" start="00:52:44.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""Firefox for some reason.""" start="00:52:47.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I do read documentation in Emacs as well in""" start="00:52:48.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""you, but yeah. Great. I'm still,""" start="00:52:51.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""I do very much the same thing with you.""" start="00:52:59.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""Like You've described exactly what I do.""" start="00:53:00.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""I work as a programmer,""" start="00:53:02.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use Augment for a lot of stuff,""" start="00:53:02.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""and I think that describes a whole lot of""" start="00:53:04.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""people currently watching the stream.""" start="00:53:06.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Moving on to the next question.""" start="00:53:09.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""What could we do in order to make Emacs more""" start="00:53:10.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""attractive for younger users?""" start="00:53:12.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""This is an amazing question and I feel wholly""" start="00:53:14.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""unprepared to answer this.""" start="00:53:18.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""Probably more introductory material aimed at""" start="00:53:21.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""that age group. What do you mean by younger""" start="00:53:24.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""users? You know what would be really cool if""" start="00:53:26.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""you had an Emacs for kids project?""" start="00:53:28.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""That would be amazing.""" start="00:53:31.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm not sure if that's what people are""" start="00:53:32.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""thinking about, but yeah,""" start="00:53:34.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""that's about what I can say for now.""" start="00:53:37.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""Good question. It is a very good question,""" start="00:53:40.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""like it comes back always to a key topic in""" start="00:53:43.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""EmacsConf, which is, how do we get more""" start="00:53:45.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""people to join us? Because it's a wonderful""" start="00:53:47.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""community. And how do we onboard people who""" start="00:53:49.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""are not programmers or people who are younger""" start="00:53:51.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""than the average Joe coming in those""" start="00:53:54.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""meetings? There's this Excellent article by""" start="00:53:57.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""Paul Graham, I think, where he was describing""" start="00:54:01.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""how they used Emacs as the sort of customer""" start="00:54:06.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""service system. They built the customer""" start="00:54:09.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""service system for the early days of Amazon""" start="00:54:11.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""in Emacs Lisp. And then they switched and all""" start="00:54:14.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""the employees were sad.""" start="00:54:17.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""So definitely there's more stuff that could""" start="00:54:18.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""be done in Emacs and be done better in Emacs.""" start="00:54:21.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""So for sure, if people want to explore more""" start="00:54:25.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""stuff like that, that's amazing.""" start="00:54:27.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah. And for people who weren't around""" start="00:54:29.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""earlier today, we've had a presentation about""" start="00:54:32.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""how to get computer science students to use""" start="00:54:33.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs and trying to provide as much""" start="00:54:36.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""information and as much tutorial as needed""" start="00:54:41.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""for them to understand what is the philosophy""" start="00:54:43.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""behind Emacs and how it influences the way""" start="00:54:45.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""you work and so forth.""" start="00:54:48.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""So you might want to revisit this discussion.""" start="00:54:49.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""And we also have plenty of talks talking""" start="00:54:51.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""about this issue. And I can just add that I""" start="00:54:53.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""think it's very important for us as a""" start="00:54:57.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""community to just be enthusiastic to get more""" start="00:55:00.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""people involved. Because I mean,""" start="00:55:03.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""look, there's this meme where it's like,""" start="00:55:04.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use Arch Linux, by the way,""" start="00:55:06.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""I use Arch, by the way.""" start="00:55:08.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""And for some reason, people using Arch keep""" start="00:55:10.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""telling you that they're using Arch.""" start="00:55:12.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""That's fine. Use whatever you want.""" start="00:55:14.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's free software, I don't care.""" start="00:55:16.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think if you look at Vim users,""" start="00:55:20.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""they're very almost militant,""" start="00:55:21.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""oh, we're Vim, and Vim is the thing.""" start="00:55:23.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""And Emacs users sometimes,""" start="00:55:25.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""and it's fine. We take a bit of a more""" start="00:55:27.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""laid-back approach. We're like,""" start="00:55:29.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""yeah, I use Emacs, you use Vim,""" start="00:55:31.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""whatever. And that's fine.""" start="00:55:32.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, that's the correct approach,""" start="00:55:35.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think. You should respect what people want""" start="00:55:36.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""to use. I don't care that people use VS Code""" start="00:55:38.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""or whatever. I'm not going to use that""" start="00:55:40.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""because it's too limiting.""" start="00:55:42.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's not really a workable environment.""" start="00:55:43.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I think it's OK to be enthusiastic.""" start="00:55:46.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think it's okay to talk about that type of""" start="00:55:48.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""enthusiasm and anything that can help""" start="00:55:51.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""increase the enthusiasm around Emacs can only""" start="00:55:54.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""help the longevity of Emacs.""" start="00:55:56.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""I agree and that's also 1 of the key""" start="00:56:02.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""objectives of EmacsConf.""" start="00:56:04.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's about bringing a lot of amazing people""" start="00:56:05.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""to come talk, like you,""" start="00:56:07.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""about stuff that is very dear to you.""" start="00:56:09.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it's very tangible how much you care,""" start="00:56:11.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""all of you, about what you're presenting.""" start="00:56:14.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""And it's amazing to put all of you people on""" start="00:56:15.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""just 48 hours talking about all of this and""" start="00:56:18.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""then creating so much content for people to""" start="00:56:20.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""watch. And I think it's really helping the""" start="00:56:22.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""enthusiasm to live on and to gather a little""" start="00:56:24.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""more snow as it comes down.""" start="00:56:28.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, I watch you Max Conf every year.""" start="00:56:29.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think it's a lot of fun.""" start="00:56:31.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""Thank you. I'll take the compliment for""" start="00:56:34.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""everyone else in the team.""" start="00:56:37.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""We're going to go a little bit longer with""" start="00:56:39.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""the Q&A because we still have a lot of""" start="00:56:41.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""questions and if Stéphane is still willing to""" start="00:56:42.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""answer, I'm still willing to not go too bad""" start="00:56:44.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""to hear a lot more of it.""" start="00:56:48.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, for me it's fine.""" start="00:56:49.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""I have time. Great. So I think I've done this""" start="00:56:50.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""question. So, all right.""" start="00:56:55.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""How are we going to make sure that a cool""" start="00:56:58.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""idea is going to pass it through for the next""" start="00:57:00.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""generation, let's say 20 years later,""" start="00:57:01.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""the generation still have the good knowledge""" start="00:57:04.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""we have today. Yeah, so I mean,""" start="00:57:05.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""if you think about what does EMAX need to""" start="00:57:09.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""have staying power, so in general,""" start="00:57:12.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""they say, you know, if if when you start a""" start="00:57:15.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""company, if you have a company for 1 year,""" start="00:57:17.020" video="mainVideo-core" id="subtitle"]] +[[!template text="""then in all likelihood,""" start="00:57:19.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""you're going to have it for 2 years because,""" start="00:57:20.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, it's just so if you've had Emacs""" start="00:57:21.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""for 4 years, I'm saying that we're going to""" start="00:57:23.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""have Emacs for the next 4 years as well.""" start="00:57:25.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""Just based on that, I'm not sure the logic""" start="00:57:27.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""holds up, but you know,""" start="00:57:30.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""how does Emacs stay relevant?""" start="00:57:32.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think is the question.""" start="00:57:34.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Well, I think we need to continue working on""" start="00:57:35.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""all the types of exploratory work that people""" start="00:57:38.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""are doing in the community.""" start="00:57:41.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think there is fundamental stuff that needs""" start="00:57:43.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""to be done. I mean, if people want to work""" start="00:57:45.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""on, you know, web rendering and Emacs,""" start="00:57:47.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe that's the next,""" start="00:57:49.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, revolutionary step that we need""" start="00:57:50.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""that could, you know, really showcase what""" start="00:57:53.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs, you know, as, you know,""" start="00:57:55.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""an idea, even if not Emacs as a software""" start="00:57:57.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""could be and, you know,""" start="00:58:00.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""Because there is huge potential in the idea""" start="00:58:01.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""as such. So maybe that's something.""" start="00:58:05.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I mean, from the point of view of core""" start="00:58:07.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""development, I think we need to just continue""" start="00:58:09.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""working on the fundamental technologies.""" start="00:58:11.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""1 thing that I would like to eventually see""" start="00:58:15.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""is a better garbage collector.""" start="00:58:17.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""We've talked about that for a long time,""" start="00:58:19.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""but I mean, we need someone to do the job""" start="00:58:22.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""really. It's not very easy.""" start="00:58:25.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's very hard, actually.""" start="00:58:27.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""So just continues working on stuff like that,""" start="00:58:31.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""continue with the exploration,""" start="00:58:34.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""continue using and being excited about Emacs.""" start="00:58:35.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think that's the best guarantee that we""" start="00:58:40.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""have. Yeah, and perhaps to echo something""" start="00:58:43.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""that you said earlier,""" start="00:58:45.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""the tools that you're using,""" start="00:58:46.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""like the emails, they've been around forever,""" start="00:58:47.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""they will be around forever.""" start="00:58:49.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""This pragmatic stance on the tools that""" start="00:58:51.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""you're using, they might look stayed from the""" start="00:58:53.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""outside, but ultimately they are what permits""" start="00:58:56.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""a sense of longevity to any kind of project""" start="00:58:59.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""you embark upon. Also,""" start="00:59:03.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""in a sense, I think that the expectations""" start="00:59:05.460" video="mainVideo-core" id="subtitle"]] +[[!template text="""might be changing in the sense that,""" start="00:59:07.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, when I started using GNU Linux,""" start="00:59:09.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know what the first thing I did was,""" start="00:59:12.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""because I couldn't get Xorg to run.""" start="00:59:15.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""So the first thing you had to do was you had""" start="00:59:16.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""to compile your own Linux kernel.""" start="00:59:19.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""So you sit there and make manuconfig and""" start="00:59:20.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""you'll like, try to read it and you've never""" start="00:59:22.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""done anything like this before.""" start="00:59:24.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""You know, I was just a kid.""" start="00:59:26.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""I had never been at this kind of,""" start="00:59:27.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, whatever. So I had to start with""" start="00:59:29.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""that. And then you have to write the X or""" start="00:59:31.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""configuration file. And I had the patience""" start="00:59:34.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""for that. But nowadays,""" start="00:59:36.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""people have different expectations.""" start="00:59:37.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""You just install something,""" start="00:59:38.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""and it works. And we need to keep that in""" start="00:59:40.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""mind as well. So that's why I keep pushing as""" start="00:59:42.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""1 of my big things. We need to build a more""" start="00:59:45.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""cohesive experience out of the box.""" start="00:59:48.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""Of course, that can be customizable.""" start="00:59:51.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""You shouldn't shoehorn anything in just for""" start="00:59:52.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""the sake of it. But you could get some things""" start="00:59:55.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""a little bit more for free.""" start="00:59:58.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""And maybe some of us that have our own""" start="01:00:01.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""configs and we've been doing this for you""" start="01:00:03.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""know, 2, 05:10, even 20 years,""" start="01:00:04.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""we could also see, you know,""" start="01:00:08.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""from the point of view of a new user that""" start="01:00:09.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""just installs VS Code and then they click,""" start="01:00:11.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""yes I use Python, yes I use that,""" start="01:00:13.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""and then it just automatically works.""" start="01:00:15.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""You know what I mean? I mean,""" start="01:00:19.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""then could we get closer to that perhaps a""" start="01:00:20.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""little bit? I think that would also help.""" start="01:00:24.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, I think that's what we call the""" start="01:00:26.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""configuration wizard. And we were talking""" start="01:00:28.700" video="mainVideo-core" id="subtitle"]] +[[!template text="""about this, I think, a couple of years ago at""" start="01:00:30.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""EmacsConf. I can't remember if it was with""" start="01:00:32.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""Adam in the chat. Adam,""" start="01:00:34.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean Alpha Papa, or if it was with Bastien,""" start="01:00:35.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""but I remember the idea cropping off.""" start="01:00:38.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Like, it's either you get a tutorial for""" start="01:00:40.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs, a proper tutorial,""" start="01:00:42.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""or you get a wizard, or you get both,""" start="01:00:43.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""and then all is right for the world.""" start="01:00:45.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""But definitely cool ideas being evoked.""" start="01:00:47.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm gonna say I need to decree the time when""" start="01:00:50.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""we finish because for me it is 11.15""" start="01:00:52.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""p.m. And I think my co-organizers are also""" start="01:00:55.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""willing to end the day and go rest because""" start="01:00:59.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""we've got another day to go tomorrow.""" start="01:01:01.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""So how about we take 3 minutes and 30 seconds""" start="01:01:03.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""to try to answer a little bit more succinctly""" start="01:01:06.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""the questions we've got left.""" start="01:01:08.560" video="mainVideo-core" id="subtitle"]] +[[!template text="""How does that sound, Stefan?""" start="01:01:09.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sounds great. Cool, so I'll start reading the""" start="01:01:11.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""questions then that we've got left.""" start="01:01:15.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""So this 1 we've got. If you're willing to""" start="01:01:18.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""discuss it, what do you think about the""" start="01:01:20.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""recent controversy about use of CLLib in""" start="01:01:22.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs call code? Am I willing to discuss""" start="01:01:24.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""that? I have said my opinion on Emacs,""" start="01:01:29.980" video="mainVideo-core" id="subtitle"]] +[[!template text="""Devel, I think. And I think I understand,""" start="01:01:36.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, the viewpoints of both sides in that""" start="01:01:40.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""discussion. It is true that some things,""" start="01:01:44.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, we have to think about that.""" start="01:01:46.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""There is a real problem,""" start="01:01:49.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think, when we have 3 different APIs for""" start="01:01:50.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""doing the same thing in Emacs.""" start="01:01:53.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""And can we make that a little bit better?""" start="01:01:55.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, perhaps we could,""" start="01:01:57.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""right? So that's about as much as I'd like to""" start="01:01:59.760" video="mainVideo-core" id="subtitle"]] +[[!template text="""say. Fair enough. I would have also accepted""" start="01:02:04.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""that CL loops are ugly to write and they""" start="01:02:06.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""don't feel very lispy.""" start="01:02:09.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""But I'll take your answer as well.""" start="01:02:10.320" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, some people think that.""" start="01:02:13.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""I understand that position as well.""" start="01:02:15.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right. Okay, next question.""" start="01:02:19.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""When we find a bug in our Emacs,""" start="01:02:21.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""do we need to try to replicate it on our side""" start="01:02:23.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""version, on our SID version,""" start="01:02:25.200" video="mainVideo-core" id="subtitle"]] +[[!template text="""sorry, then update all the usual list package""" start="01:02:26.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""we use, and if we succeed to replicate the""" start="01:02:29.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""bug in this version, only then go to""" start="01:02:31.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""development version 30 and do the same.""" start="01:02:33.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Then only ask for assistance in reporting the""" start="01:02:35.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""bug we found. So I believe when they""" start="01:02:37.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""encounter a bug, are people supposed to go to""" start="01:02:40.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""master to pull main and just to make sure""" start="01:02:43.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""that they are on the latest version.""" start="01:02:47.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""Is this something that you require?""" start="01:02:48.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""We don't require that,""" start="01:02:50.660" video="mainVideo-core" id="subtitle"]] +[[!template text="""but we do try to encourage you to reproduce""" start="01:02:51.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""it on master if we think that it matters.""" start="01:02:54.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, so if you can, that's even better.""" start="01:02:57.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""But if the bug is there in Emacs 29,""" start="01:03:01.620" video="mainVideo-core" id="subtitle"]] +[[!template text="""maybe we want to fix it in Emacs 29.2.""" start="01:03:03.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""So the latest point release is also fine.""" start="01:03:06.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Bugs in Emacs 28 at this point,""" start="01:03:10.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""like the previous major version,""" start="01:03:12.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""we might ask you to try to reproduce it on""" start="01:03:15.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs 29 because we're not planning more""" start="01:03:17.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""releases of old major versions.""" start="01:03:19.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""So that's the fundamental reason for that.""" start="01:03:21.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""Great. Thank you for your answer.""" start="01:03:24.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""All right. Moving on to the next question.""" start="01:03:25.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""On branching off sub-threads,""" start="01:03:27.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I note that they are less visible compared to""" start="01:03:29.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""starting a new thread in practice.""" start="01:03:31.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I am wondering if it is just my impression or""" start="01:03:33.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""something devs also observe.""" start="01:03:35.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, it's true. That's correct.""" start="01:03:37.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""I don't know what to do about it.""" start="01:03:41.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""If you want more visibility,""" start="01:03:42.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""I guess just start a new thread.""" start="01:03:44.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""I don't know. I can only agree,""" start="01:03:47.080" video="mainVideo-core" id="subtitle"]] +[[!template text="""really. I concur. That's true.""" start="01:03:48.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""Okay. Next question. What about rewriting""" start="01:03:51.720" video="mainVideo-core" id="subtitle"]] +[[!template text="""Emacs in Rust? Use Guile instead of Elisp.""" start="01:03:54.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""Multi-threaded Emacs. Make Emacs prettier and""" start="01:03:57.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""shiny. And of course, same defaults.""" start="01:03:59.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""Just kidding. We are spoiled children because""" start="01:04:02.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""you and Eli, Lars, and etc do an impressive""" start="01:04:04.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""work. I live in Emacs since 2001.""" start="01:04:08.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""Thanks. That was a good 1.""" start="01:04:11.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""Sane defaults. Okay, Well,""" start="01:04:14.220" video="mainVideo-core" id="subtitle"]] +[[!template text="""thank you. Thanks for that comment.""" start="01:04:18.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""That made me chuckle. Next question by the""" start="01:04:20.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""same person, I assume.""" start="01:04:23.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""The only downside I see with copyright""" start="01:04:24.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""assignment is that 1 has to disclose their""" start="01:04:26.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""real identity. Would it be a possibility to""" start="01:04:28.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""assign a copyright under a nickname?""" start="01:04:31.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, you don't have to say a real name.""" start="01:04:33.160" video="mainVideo-core" id="subtitle"]] +[[!template text="""Just register some pseudonym.""" start="01:04:34.840" video="mainVideo-core" id="subtitle"]] +[[!template text="""The FSF does need your real name,""" start="01:04:37.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""but that's kept private only.""" start="01:04:39.440" video="mainVideo-core" id="subtitle"]] +[[!template text="""So feel free to reach out to assign at""" start="01:04:41.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""gnu.org and ask more about that.""" start="01:04:45.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""Right. All right, next question.""" start="01:04:49.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""Do you think it is possible to reach an""" start="01:04:51.820" video="mainVideo-core" id="subtitle"]] +[[!template text="""agreement on sane defaults for better""" start="01:04:53.400" video="mainVideo-core" id="subtitle"]] +[[!template text="""out-of-the-box experience?""" start="01:04:55.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""Yeah, so your sane is not my sane""" start="01:04:57.800" video="mainVideo-core" id="subtitle"]] +[[!template text="""necessarily. So that's the fundamental""" start="01:05:00.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""problem that we're discussing here.""" start="01:05:01.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""I think it's a social,""" start="01:05:02.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""not a technical problem.""" start="01:05:03.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""We do change defaults sometimes,""" start="01:05:05.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""but I mean, there is also some staying power.""" start="01:05:07.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""So it's understandable that,""" start="01:05:09.880" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, it's, we can't just change them""" start="01:05:12.260" video="mainVideo-core" id="subtitle"]] +[[!template text="""willy nilly and then flip flop between,""" start="01:05:13.940" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, 1 or the other kind of thing.""" start="01:05:15.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""So it does take a little bit more time.""" start="01:05:18.340" video="mainVideo-core" id="subtitle"]] +[[!template text="""But yeah, sure, we can.""" start="01:05:20.060" video="mainVideo-core" id="subtitle"]] +[[!template text="""We do change defaults at times.""" start="01:05:23.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""But it's perhaps more slower than what some""" start="01:05:26.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""people would prefer, for sure.""" start="01:05:29.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""So that's, yeah. Right,""" start="01:05:31.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""all right. We have 2 more questions.""" start="01:05:36.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""So will XWidgets have a future?""" start="01:05:37.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""Seeing the new bugs popping up in the latest""" start="01:05:40.120" video="mainVideo-core" id="subtitle"]] +[[!template text="""XWidget dev. Not sure if there was the rest""" start="01:05:42.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""of the question, But on XWidgets,""" start="01:05:45.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""can you tell us a little more?""" start="01:05:46.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""I'm not really following now.""" start="01:05:48.740" video="mainVideo-core" id="subtitle"]] +[[!template text="""I mean, I'm not seeing a lot of development""" start="01:05:50.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""on XWidgets currently.""" start="01:05:52.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""Some people have done work in fixing up a few""" start="01:05:54.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""bugs, but I think that feature really needs""" start="01:05:57.100" video="mainVideo-core" id="subtitle"]] +[[!template text="""more love. So I think we need,""" start="01:06:00.380" video="mainVideo-core" id="subtitle"]] +[[!template text="""you know, help is welcome,""" start="01:06:02.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""patch is welcome. That's what I can say about""" start="01:06:03.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""that. All right, and our final question of""" start="01:06:05.920" video="mainVideo-core" id="subtitle"]] +[[!template text="""the day. Have you voted for Emacs as the""" start="01:06:11.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""software of the year on the Tuxes by Jupyter""" start="01:06:13.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""Broadcasting? I did because Emacs 29 is""" start="01:06:15.140" video="mainVideo-core" id="subtitle"]] +[[!template text="""great. Thank you. Okay,""" start="01:06:17.480" video="mainVideo-core" id="subtitle"]] +[[!template text="""well, good job voting.""" start="01:06:19.300" video="mainVideo-core" id="subtitle"]] +[[!template text="""I didn't know, I don't know what Tuxy is on""" start="01:06:20.580" video="mainVideo-core" id="subtitle"]] +[[!template text="""Jupyter broadcasting, but look it up and go""" start="01:06:22.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""vote. So I wish I could tell you,""" start="01:06:25.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""I assume with Tux, it might be something""" start="01:06:28.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""related to Linux, but that's as much as I can""" start="01:06:29.500" video="mainVideo-core" id="subtitle"]] +[[!template text="""say. All right, well, Stefan,""" start="01:06:32.900" video="mainVideo-core" id="subtitle"]] +[[!template text="""thank you so much for taking the time not""" start="01:06:34.960" video="mainVideo-core" id="subtitle"]] +[[!template text="""only to do a wonderful presentation,""" start="01:06:36.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""but also for answering all the questions of""" start="01:06:38.000" video="mainVideo-core" id="subtitle"]] +[[!template text="""the community. Do you have anything else to""" start="01:06:39.640" video="mainVideo-core" id="subtitle"]] +[[!template text="""add? Just really thanks for all the questions""" start="01:06:41.240" video="mainVideo-core" id="subtitle"]] +[[!template text="""and thanks for staying.""" start="01:06:45.360" video="mainVideo-core" id="subtitle"]] +[[!template text="""It's been a long day, a long conference,""" start="01:06:47.780" video="mainVideo-core" id="subtitle"]] +[[!template text="""so thanks for staying and listening to my""" start="01:06:49.600" video="mainVideo-core" id="subtitle"]] +[[!template text="""talk as well. Really appreciate it.""" start="01:06:51.180" video="mainVideo-core" id="subtitle"]] +[[!template text="""Appreciate the good work you guys are doing""" start="01:06:52.540" video="mainVideo-core" id="subtitle"]] +[[!template text="""behind the scenes, organizing,""" start="01:06:54.280" video="mainVideo-core" id="subtitle"]] +[[!template text="""setting everything up.""" start="01:06:55.520" video="mainVideo-core" id="subtitle"]] +[[!template text="""And really humbled to be a part of this""" start="01:06:57.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""community. So thank you all.""" start="01:07:00.420" video="mainVideo-core" id="subtitle"]] +[[!template text="""Well I can assure you that no 1 either in the""" start="01:07:02.680" video="mainVideo-core" id="subtitle"]] +[[!template text="""organization team or the people watching now""" start="01:07:05.860" video="mainVideo-core" id="subtitle"]] +[[!template text="""felt like it was tiring to stay and listen to""" start="01:07:08.040" video="mainVideo-core" id="subtitle"]] +[[!template text="""your answers. So thank you so much Stefan.""" start="01:07:10.900" video="mainVideo-core" id="subtitle"]] Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20core%3A%20Emacs%20core%20development%3A%20how%20it%20works) diff --git a/2023/info/devel-after.md b/2023/info/devel-after.md index 633e38c0..297fbe3d 100644 --- a/2023/info/devel-after.md +++ b/2023/info/devel-after.md @@ -4,556 +4,556 @@ <a name="devel-mainVideo-transcript"></a> # Transcript (unedited) -[[!template text="""2 seconds. All right. I think we are live.""" start="00:00:08.099" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Yes. So, hi again, everyone.""" start="00:00:09.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I have the pleasure to welcome John Wheatley""" start="00:00:13.259" video="mainVideo-devel" id="subtitle"]] -[[!template text="""in person to this EmacsConf.""" start="00:00:14.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Hi, John. Hello there.""" start="00:00:16.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""How are you doing, Leo?""" start="00:00:18.592" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I am doing fantastic, and even more now that""" start="00:00:20.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I am in a room with you because we've been,""" start="00:00:23.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""we were reminiscing with Sasha.""" start="00:00:25.279" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So you had been there in person in 2013 And""" start="00:00:30.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""since we started doing those online,""" start="00:00:32.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Juan, since 2019, I think you've always been""" start="00:00:34.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""online, right? Usually it's a pre-recorded""" start="00:00:37.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""video. I think this will be the first 1 I do""" start="00:00:40.239" video="mainVideo-devel" id="subtitle"]] -[[!template text="""live in a long time. You're right.""" start="00:00:42.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm saying we are online right now,""" start="00:00:44.059" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but I just meant pre-recorded video.""" start="00:00:45.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So it's good to have you almost in person or""" start="00:00:48.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""at least live and we are excited to hear""" start="00:00:50.739" video="mainVideo-devel" id="subtitle"]] -[[!template text="""about some of the Emacs news.""" start="00:00:52.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So the floor is yours.""" start="00:00:54.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""All right, well welcome everybody.""" start="00:00:56.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""This is the yearly state of the Emacs union,""" start="00:00:59.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I guess, about how Emacs development is""" start="00:01:02.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""going. Just to note, I am not currently a""" start="00:01:05.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""maintainer of Emacs. So what I do to get""" start="00:01:07.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""these notes is I call up my friend,""" start="00:01:09.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Eli Zaretsky, 1 of the current Emacs""" start="00:01:11.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""maintainers, and he and I sit down for an""" start="00:01:13.700" video="mainVideo-devel" id="subtitle"]] -[[!template text="""hour, and he just gives me his dump of what's""" start="00:01:16.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""been going on. So I'm sort of just the""" start="00:01:19.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""messenger here. But thanks to Eli for these""" start="00:01:21.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""notes and all of the efforts that he""" start="00:01:24.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""contributes. So what he's been telling me is""" start="00:01:27.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that this Emacs 29 release that we had""" start="00:01:29.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""recently looks to have been very,""" start="00:01:31.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""very successful, which is some good news,""" start="00:01:33.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because there were a lot of new features,""" start="00:01:34.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and some of those features were actually""" start="00:01:37.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""quite radical. So far,""" start="00:01:39.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it's been quite a success,""" start="00:01:40.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""no serious problems with it,""" start="00:01:41.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and we have Emacs 29.2""" start="00:01:43.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""will be released very soon.""" start="00:01:46.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""They are thinking now about starting the""" start="00:01:49.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs 30 release cycle soon after 29.2""" start="00:01:52.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is released, where the release branch,""" start="00:01:55.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""which is called Emacs-30 usually,""" start="00:01:57.620" video="mainVideo-devel" id="subtitle"]] -[[!template text="""will be cut and then development will become""" start="00:02:01.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""frozen with only bug fixes going into that""" start="00:02:03.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""branch. That may take quite some time until""" start="00:02:06.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it actually comes to fruition as a release,""" start="00:02:09.199" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but at least it means that the release is""" start="00:02:11.500" video="mainVideo-devel" id="subtitle"]] -[[!template text="""going to start taking shape in that branch""" start="00:02:13.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""soon. So, for now, Emacs 30 looks like maybe""" start="00:02:17.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it's going to be a little less interesting""" start="00:02:19.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""than Emacs 29 was, meaning not a huge number""" start="00:02:22.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""of changing features. But there are still""" start="00:02:24.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""some new things going in.""" start="00:02:26.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So 1 of them is that Emacs 30 is going to""" start="00:02:29.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""have Android support. So you will be able to""" start="00:02:32.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""run Emacs 30 on your Android devices.""" start="00:02:34.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So if you've ever wanted to have native Emacs""" start="00:02:36.820" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on a tablet, which I know I've always wanted,""" start="00:02:39.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that will become possible with Emacs 30.""" start="00:02:42.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""There's also going to be much better support""" start="00:02:45.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for touchscreen devices,""" start="00:02:46.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""coincidentally, both laptops and tablets.""" start="00:02:49.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So that'll enhance that Android support.""" start="00:02:52.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""There will be some recently gained support""" start="00:02:56.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for LLDB in GUD.dl. So if you're on a Mac OS""" start="00:03:01.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""machine or a machine that uses just LLVM as""" start="00:03:05.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""part of the compilation process,""" start="00:03:06.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""then you probably are familiar with LLDB as""" start="00:03:10.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the command line debugger.""" start="00:03:10.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And that support for using LLDB through a GUD""" start="00:03:14.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""will become possible in Emacs 30.""" start="00:03:16.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm looking forward to this actually quite a""" start="00:03:18.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""bit as well. C Perl mode is being deprecated,""" start="00:03:22.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and all future work now is only being put""" start="00:03:25.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""towards C Perl mode. Another 1 is that there""" start="00:03:30.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""are going to be some new major modes based on""" start="00:03:32.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""TreeSitter. They will be for the languages""" start="00:03:35.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Lua, Elixir, and HTML.""" start="00:03:37.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And if you're not familiar,""" start="00:03:39.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I think TreeSitter was introduced in Emacs""" start="00:03:42.260" video="mainVideo-devel" id="subtitle"]] -[[!template text="""29. It's a library that allows you to specify""" start="00:03:46.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the grammar of a programming language as a""" start="00:03:49.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""BNF file, and I think using JavaScript,""" start="00:03:52.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and then with that file as input to Emacs,""" start="00:03:56.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it is then able to do syntax highlighting,""" start="00:03:59.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""syntax discovery, all of those things within""" start="00:04:02.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs without having to use elisp and regexps""" start="00:04:05.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""to discover the structure of the language.""" start="00:04:07.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""It defers the structure gathering to""" start="00:04:10.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""TreeSitter and then uses that information to""" start="00:04:13.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""navigate the language.""" start="00:04:14.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So, As time goes on, you'll see more and more""" start="00:04:17.079" video="mainVideo-devel" id="subtitle"]] -[[!template text="""languages taking on TreeSetter support.""" start="00:04:19.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So the next 3 coming up,""" start="00:04:20.899" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Lua, Elixir, and HTML.""" start="00:04:22.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And then the last feature for Emacs 30 is""" start="00:04:26.500" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that the byte compiler will now detect and""" start="00:04:29.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""warn about many more questionable constructs.""" start="00:04:32.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Things like empty macro bodies,""" start="00:04:34.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""missing lexical constructs,""" start="00:04:36.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""or say, condition case without any handlers.""" start="00:04:39.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Just silly stuff that might litter the code,""" start="00:04:43.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but now you'll get a warning about it from""" start="00:04:45.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the byte compiler to help you clean up the""" start="00:04:46.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""code and get rid of those potential sites of""" start="00:04:49.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""error. So this is the main thing that will be""" start="00:04:52.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""worked on for Emacs 30 and what's looked like""" start="00:04:54.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""shaping up for the release.""" start="00:04:55.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And also, he wanted me to announce that""" start="00:04:58.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Stefan Kongas is now a new co-maintainer.""" start="00:05:00.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And Stefan is, I believe,""" start="00:05:02.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""here with us in the conference and he'll be""" start="00:05:05.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""able, I hope, to help me answer any questions""" start="00:05:07.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""about future Emacs development because I'm""" start="00:05:09.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""not in the heat of it and don't have all""" start="00:05:12.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""those answers at the moment.""" start="00:05:13.100" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So That is all there is as far as a""" start="00:05:17.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""development update for now.""" start="00:05:18.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And I am available to take any questions.""" start="00:05:21.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""All right. Thank you so much,""" start="00:05:26.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Sean, for being the messenger of all this""" start="00:05:29.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""good news. I mean, you did start by saying""" start="00:05:31.500" video="mainVideo-devel" id="subtitle"]] -[[!template text="""this would not be as exciting,""" start="00:05:32.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""perhaps, as prior releases of Emacs,""" start="00:05:35.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but you then proceeded to say a lot of stuff""" start="00:05:38.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that it felt very exciting to me.""" start="00:05:40.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So good, good. Glad to hear that.""" start="00:05:43.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Right. So we do have questions coming in""" start="00:05:47.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""already and again people the link is on IRC""" start="00:05:49.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and also on the talks page if you want to""" start="00:05:51.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""start asking questions.""" start="00:05:52.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So John what I'm going to do I'm going to""" start="00:05:54.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""read you the questions and then you can""" start="00:05:56.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""answer them. Is that okay with you?""" start="00:05:57.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Absolutely. So starting with the first""" start="00:06:01.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question which changes in recent Emacs""" start="00:06:04.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""releases are you enjoying using?""" start="00:06:06.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I have really liked the visual line mode.""" start="00:06:11.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm not sure how recent that is.""" start="00:06:14.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Some of these features I only discovered""" start="00:06:16.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""quite late, the new display line number""" start="00:06:19.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""functionality, where it's much,""" start="00:06:21.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""much, much faster, and of course,""" start="00:06:22.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""native compilation. Native compilation has""" start="00:06:25.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""been quite brilliant for some of the larger""" start="00:06:27.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""packages that I use. I do a lot of stuff in""" start="00:06:29.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs. I use GNU's, I use E-Shell,""" start="00:06:31.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I use Org Mode quite a lot.""" start="00:06:33.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So native compilation has brought the user""" start="00:06:35.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""experience much closer to a modern app than""" start="00:06:39.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""some of the lagging and slowness that I might""" start="00:06:41.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""have experienced in the past.""" start="00:06:43.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Definitely. Moving on to the next question.""" start="00:06:46.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""What do you think the future in the area of""" start="00:06:49.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""artificial intelligence from the developer""" start="00:06:50.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""point of view? Could you say that 1 more""" start="00:06:53.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""time? Your voice broke up a little bit.""" start="00:06:54.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:55.009" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the area of artificial intelligence from the""" start="00:06:55.125" video="mainVideo-devel" id="subtitle"]] -[[!template text="""developer point of view?""" start="00:06:55.191" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Could you say that 1 more time?""" start="00:06:55.307" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Your voice broke up a little bit.""" start="00:06:55.423" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:57.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the area of artificial intelligence from the""" start="00:07:00.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""developer point of view?""" start="00:07:01.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""It's also a shaky question,""" start="00:07:02.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I think, but you get the point.""" start="00:07:04.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I do use chat-gpt-shell inside of Emacs quite""" start="00:07:08.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""a bit, actually, when doing development in""" start="00:07:10.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""other languages. Just the other day,""" start="00:07:12.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I was working on my Ledger accounting""" start="00:07:14.700" video="mainVideo-devel" id="subtitle"]] -[[!template text="""program, and I haven't done a lot of C++ in""" start="00:07:17.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""recent years. So I had forgotten how to""" start="00:07:20.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""exactly compare 2 strings only up to the""" start="00:07:23.620" video="mainVideo-devel" id="subtitle"]] -[[!template text="""length of the shortest string.""" start="00:07:24.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I know I could have cranked that out just""" start="00:07:26.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""writing it C style, but I didn't remember""" start="00:07:28.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""what the current state of the art is for C++""" start="00:07:30.300" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and the STL. So I just asked chatGPT.""" start="00:07:32.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I asked the exact question that I just said""" start="00:07:35.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""to you and sure enough it popped out the""" start="00:07:38.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""one-liner that was exactly what I needed.""" start="00:07:39.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So I think in terms of developer assistance,""" start="00:07:41.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""not having to keep all of standard libraries""" start="00:07:45.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""or common idioms in memory.""" start="00:07:46.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I don't know if other people are familiar""" start="00:07:48.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""with Rosetta Stone projects.""" start="00:07:50.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""They're projects where you have say a hundred""" start="00:07:53.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""different languages and there's a particular""" start="00:07:55.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question, say, how do I read a file and copy""" start="00:07:58.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it to another location?""" start="00:07:59.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And then it has an instance of doing that""" start="00:08:01.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""activity for every 1 of those languages.""" start="00:08:03.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""That's a great database,""" start="00:08:04.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and I've used them quite a bit in the past""" start="00:08:06.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for remembering how to do certain things,""" start="00:08:08.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""say, converting a string to UTF-8.""" start="00:08:12.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I think that AI does a great job of""" start="00:08:15.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""completely replacing the need for databases""" start="00:08:17.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""like that because you can just ask how do I""" start="00:08:19.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""copy a convert a string to UTF-8.""" start="00:08:21.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Yeah exactly and you know especially with""" start="00:08:27.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""languages which are tried well tried you know""" start="00:08:30.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it's very easy to get an answer that is""" start="00:08:32.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""correct. But sometimes what I find bothersome""" start="00:08:34.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""with this type of coding,""" start="00:08:37.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I think it's AI-aided coding,""" start="00:08:39.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but it's still coding,""" start="00:08:40.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is that, especially with C languages,""" start="00:08:42.799" video="mainVideo-devel" id="subtitle"]] -[[!template text="""sometimes you're going to end up with""" start="00:08:44.140" video="mainVideo-devel" id="subtitle"]] -[[!template text="""undefined behaviors and stuff like this just""" start="00:08:45.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because other people have been doing it,""" start="00:08:47.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""not because the algorithm or the model was""" start="00:08:50.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""trained with data that dates back to 10 years""" start="00:08:53.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""ago. At the time, C++ was a little different.""" start="00:08:59.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Anyway, I'm not here to talk,""" start="00:09:01.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""you are here to talk. Moving on to the next""" start="00:09:03.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question. People already get to hear my voice""" start="00:09:06.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""plenty, whereas yours are much sparser.""" start="00:09:09.140" video="mainVideo-devel" id="subtitle"]] -[[!template text="""All right. So, what is the future of Emacs on""" start="00:09:13.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""macOS? I understand that there are too few""" start="00:09:15.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""developers for the platform.""" start="00:09:16.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Is that still true? That's a good question.""" start="00:09:21.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I don't know what the current statistics are.""" start="00:09:23.300" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I've been a user of Emacs on Mac OS for""" start="00:09:26.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""decades now. It feels like the,""" start="00:09:29.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""There's also that Mac port version of Emacs,""" start="00:09:32.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""which builds Emacs more directly using the""" start="00:09:35.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""GUI libraries on the platform.""" start="00:09:37.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""That continues to be updated with every""" start="00:09:40.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""single new release that comes out.""" start="00:09:41.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So I'd say that the support may not be as""" start="00:09:45.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""great as it is on Linux and other platforms,""" start="00:09:47.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but to this day I haven't suffered from being""" start="00:09:50.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""a Mac user. Great. The only thing I remember""" start="00:09:54.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""about Emacs on macOS was that emojis made it""" start="00:10:00.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""inside the GUI first before they did it""" start="00:10:03.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""anywhere else. That's the 1 anecdote that I""" start="00:10:05.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""have on MacOS. Right. And historically that""" start="00:10:09.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""feature was removed in order to prevent Mac""" start="00:10:12.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""from having features that Linux did not.""" start="00:10:14.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I didn't want to go into that point.""" start="00:10:16.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I just wanted to mention the beginning of the""" start="00:10:18.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""anecdote and people can find it out.""" start="00:10:19.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But yes, that's also what it led to.""" start="00:10:21.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Moving on to the next question.""" start="00:10:24.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Why aren't you contributing to Emacs anymore?""" start="00:10:27.620" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Lack of time, I guess?""" start="00:10:28.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Lack of time, primarily.""" start="00:10:31.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Work has been very consuming.""" start="00:10:33.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""There are a lot of other projects and things""" start="00:10:35.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that I like doing. I still find Emacs Lisp""" start="00:10:38.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""very, very fun to write.""" start="00:10:39.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Just the other day, I was hacking up some""" start="00:10:42.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""extension macros for myself for org mode.""" start="00:10:45.260" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But to have the time needed to sit down and""" start="00:10:48.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""design a whole new mode and work on it.""" start="00:10:51.140" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I've been spending a lot of my time now in""" start="00:10:53.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""functional languages, especially theorem""" start="00:10:55.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""provers. I just find that so intellectually""" start="00:10:57.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""satisfying and interesting.""" start="00:10:59.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Plus it pays a lot better.""" start="00:11:01.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Never had a paying job as an Emacs list""" start="00:11:03.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""developer. So when it comes to now just being""" start="00:11:06.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""a fun language or a hobby language,""" start="00:11:07.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it is relegated to the time that I have free""" start="00:11:10.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""when it's available. Right.""" start="00:11:13.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Well, the good thing is that it's kind of""" start="00:11:15.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""like riding a bicycle,""" start="00:11:15.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""you know, writing a major mode,""" start="00:11:17.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it comes back relatively quickly and still""" start="00:11:19.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""enjoyable. You know, the other day,""" start="00:11:22.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""actually, I took notes on a mode that I""" start="00:11:25.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""wanted to write. There's an app I use on the""" start="00:11:27.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Mac called drafts, and I really love it.""" start="00:11:30.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I use it all the time.""" start="00:11:30.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I wanted to mimic the interface of this app""" start="00:11:34.300" video="mainVideo-devel" id="subtitle"]] -[[!template text="""in Emacs. So I could use Emacs as my drafts""" start="00:11:37.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""application rather than this separate 1.""" start="00:11:39.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So I noted down all the different user""" start="00:11:42.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""parameters and how it should function and""" start="00:11:44.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""everything to describe the app to myself as""" start="00:11:47.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""sort of notes to get me started on that work""" start="00:11:50.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""when I did have free time to work on it.""" start="00:11:51.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Somebody out there on the internet just saw""" start="00:11:54.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""these notes, because I keep a lot of my stuff""" start="00:11:56.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on GitHub. They fed it to chat GPT,""" start="00:11:59.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""going back to your AI question.""" start="00:12:01.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And they actually sent back to me a mode that""" start="00:12:04.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""implemented everything that I had said,""" start="00:12:06.140" video="mainVideo-devel" id="subtitle"]] -[[!template text="""which was effectively,""" start="00:12:07.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""chat GPT, seeing that what I had described""" start="00:12:10.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""was clear enough for it to derive most of the""" start="00:12:14.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""code that I would have wanted to write.""" start="00:12:16.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So maybe, maybe another thing that AI can do""" start="00:12:19.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is it can increase the value,""" start="00:12:20.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the efficiency of my free time.""" start="00:12:22.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Exactly. I think that's a wonderful point.""" start="00:12:26.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And phrasing it as efficiency of free time is""" start="00:12:29.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""great because you still have the expertise,""" start="00:12:30.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""obviously, that you're mobilizing into the""" start="00:12:33.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""design that you're formulating to charge DPT,""" start="00:12:35.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but then this expertise is turned into""" start="00:12:37.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""something that actually works.""" start="00:12:38.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Perhaps we're all going to become software""" start="00:12:41.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""architects at some point,""" start="00:12:42.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and then the busy work of actually coding the""" start="00:12:45.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""library and the software will be relegated to""" start="00:12:48.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""AI. That's an interesting future where we""" start="00:12:50.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""still, however, need to acquire the skills to""" start="00:12:54.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""know what is code, I suppose.""" start="00:12:56.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But that's an interesting future to think of.""" start="00:12:58.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""A fairly long question.""" start="00:13:01.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So 1 of the tricky things about running Emacs""" start="00:13:03.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on Android is do you use anything that""" start="00:13:06.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""requires extra packages?""" start="00:13:07.820" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Example like PDF tools with new PDF or going""" start="00:13:11.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""with a database, playing music or video with""" start="00:13:13.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""MPD or MPV on Bonga, LFeed.""" start="00:13:15.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Do you run Emacs Termex,""" start="00:13:17.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs APK, Emacs in virtual machine?""" start="00:13:19.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""This is also the case on Emacs for Windows to""" start="00:13:22.260" video="mainVideo-devel" id="subtitle"]] -[[!template text="""a lesser degree. So summarizing,""" start="00:13:23.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""how do you make Emacs work on Android if you""" start="00:13:27.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""do not have the synergy of stuff that you""" start="00:13:29.700" video="mainVideo-devel" id="subtitle"]] -[[!template text="""usually find on Linux systems like MPV and""" start="00:13:32.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""all the fancy applications like this?""" start="00:13:33.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""It's a good question. Since I'm not an""" start="00:13:38.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Android user and I've never tried running""" start="00:13:40.140" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs on Android platforms,""" start="00:13:41.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm not sure what's available out there to""" start="00:13:44.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""plug Emacs into. I mean,""" start="00:13:46.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""effectively, that question comes down to""" start="00:13:48.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""external dependencies and system support.""" start="00:13:49.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""That would be a great question for Stefan or""" start="00:13:53.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""somebody who has tried using Emacs,""" start="00:13:55.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the development version of Emacs on Android.""" start="00:13:58.100" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Great. We'll put a pin in this for Stéphane""" start="00:14:03.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""afterwards. Great, so moving on to the next""" start="00:14:07.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question. Will Org Tech someday become the""" start="00:14:09.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""default tech mode in Emacs?""" start="00:14:10.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And if so, when? Will Org what become?""" start="00:14:14.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Org Tech, you know, the LaTeX mode.""" start="00:14:17.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I do not know. It's been a while since I've""" start="00:14:24.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""done LaTeX. It must have been like 4 years,""" start="00:14:26.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but it was a pretty, the major mode for""" start="00:14:30.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""editing documents, like the state of the art""" start="00:14:32.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for editing latex documents in Emacs.""" start="00:14:34.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And apparently it's not default.""" start="00:14:35.820" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I assume there's latex mode or something that""" start="00:14:38.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is doing it. So were you saying octech,""" start="00:14:41.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""like A-U-C tech? Oh, did I not pronounce the""" start="00:14:44.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""C? Octech, yes. I thought you said org tech.""" start="00:14:47.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I wasn't familiar with that.""" start="00:14:49.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Octech is the only 1 I've ever used.""" start="00:14:52.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I know there is a built-in LaTeX mode,""" start="00:14:54.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but I've never used it.""" start="00:14:56.880" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I always just download whatever the latest""" start="00:14:58.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""version of Org Tech is and use that.""" start="00:15:00.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I don't know why it's not a standard package.""" start="00:15:03.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Becoming a standard package has its own costs""" start="00:15:06.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for the development cycle because it slows""" start="00:15:09.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""down release cycle quite a bit.""" start="00:15:11.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""It's now you have to create PRs that are""" start="00:15:14.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""reviewed by the Emacs Devel mailing list.""" start="00:15:16.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""It is a little more inertia.""" start="00:15:18.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Of course, it gets you more distribution""" start="00:15:21.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because it's a default package now,""" start="00:15:23.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and everybody can be using that.""" start="00:15:25.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But it's not something every developer""" start="00:15:28.100" video="mainVideo-devel" id="subtitle"]] -[[!template text="""decides to do. It took a few years,""" start="00:15:30.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""in fact, to get usePackage into Emacs core.""" start="00:15:34.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And that only happened after it was so stable""" start="00:15:36.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that it really wasn't receiving many changes""" start="00:15:38.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""anymore. Yeah, yeah it's it's the thing when""" start="00:15:44.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""you move into core you lose a lot of your""" start="00:15:46.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""agility in terms of how you're writing the""" start="00:15:49.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""code or how you expand code.""" start="00:15:50.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""That's why you have this vibrant community on""" start="00:15:54.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Melpa compared to core but you know it""" start="00:15:57.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""doesn't necessarily ought to be this way it""" start="00:15:59.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""could be a little different you know And it""" start="00:16:02.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""feels like there's this repetition between""" start="00:16:04.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""repartition, sorry, between people developing""" start="00:16:06.500" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for the core of Emacs and people developing""" start="00:16:08.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on Melpa, but at the end of the day those 2""" start="00:16:10.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""groups are constantly talking to 1 another""" start="00:16:12.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and taking cues from 1 another as well.""" start="00:16:14.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So that's great. And there's of course...""" start="00:16:17.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""May I jump in about this particular question""" start="00:16:21.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because I think I mean You know,""" start="00:16:24.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Org Mode doesn't really have any problems""" start="00:16:27.100" video="mainVideo-devel" id="subtitle"]] -[[!template text="""with releases Correct.""" start="00:16:28.980" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Just because it's distributed with Emacs so""" start="00:16:32.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""there is a difference between being in the""" start="00:16:34.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""core proper and being distributed with Emacs.""" start="00:16:37.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And for something like use packages,""" start="00:16:39.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it's really necessary to be in the core.""" start="00:16:41.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But for something like major mode,""" start="00:16:44.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it's a bit easier. That's a very very good""" start="00:16:48.620" video="mainVideo-devel" id="subtitle"]] -[[!template text="""point. Yeah, I'd forgotten about that""" start="00:16:50.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""distinction. Org mode does advance pretty""" start="00:16:52.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""rapidly and then it makes releases into the""" start="00:16:55.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""core distribution. Gianni,""" start="00:16:59.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I believe you also wanted to say something""" start="00:17:01.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""before someone started jumped in with a""" start="00:17:03.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question do you happen to remember okay""" start="00:17:08.460" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that's fine I lost her to lost to their time""" start="00:17:11.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'll be moving on to the next question then""" start="00:17:14.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and by the way feel free to interrupt us you""" start="00:17:17.280" video="mainVideo-devel" id="subtitle"]] -[[!template text="""know The whole point of this discussion is""" start="00:17:19.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""for you to ask questions to John Wheatley.""" start="00:17:20.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So whether it be via the other pad or via""" start="00:17:23.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""BBB, choose your weapon.""" start="00:17:25.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""All right, moving on to the next question in""" start="00:17:28.700" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the meantime. And we have about 7 minutes""" start="00:17:30.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""left of Q&A and then we'll be moving on to""" start="00:17:32.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Stéphane. So, do you use other IDEs for""" start="00:17:35.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""theorem proving work, notably VS Code for""" start="00:17:37.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Lean? Which languages and provers can or do""" start="00:17:42.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""you use Emacs for? I've only used Emacs.""" start="00:17:45.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I've used Emacs for working with ACL 2,""" start="00:17:49.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Coq, Agda, and Lean, and I really love""" start="00:17:53.300" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Proof-General. Coq is my favorite language to""" start="00:17:55.560" video="mainVideo-devel" id="subtitle"]] -[[!template text="""be working in. Agda has really great support""" start="00:17:57.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""as well, has a very nice Emacs mode.""" start="00:17:59.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm only just now starting to get into Lean""" start="00:18:02.500" video="mainVideo-devel" id="subtitle"]] -[[!template text="""4. So I have everything installed,""" start="00:18:04.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but I haven't really started coding in""" start="00:18:07.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""earnest. I'm still reading a lot of the""" start="00:18:08.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""tutorials and learning a bit about the""" start="00:18:10.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""language. There was a while there where I""" start="00:18:13.260" video="mainVideo-devel" id="subtitle"]] -[[!template text="""used a IDE for ACL 2 that was outside of""" start="00:18:17.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Emacs, only because it was the same IDE all""" start="00:18:19.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""my co-workers were using and it was easier to""" start="00:18:21.820" video="mainVideo-devel" id="subtitle"]] -[[!template text="""share tips and tricks with them.""" start="00:18:23.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But yeah, no, I found Emacs to be a great""" start="00:18:27.780" video="mainVideo-devel" id="subtitle"]] -[[!template text="""home for doing theorem proving.""" start="00:18:29.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Right. Next question. Can we see that AI""" start="00:18:36.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""generated draft? You know what you mentioned""" start="00:18:40.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""before about the draft that you then fed into""" start="00:18:43.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""ChargPT? Do you happen to have this draft""" start="00:18:45.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""anywhere? Let me see if it's still on GitHub.""" start="00:18:50.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Just take me 1 second to take a look here.""" start="00:18:53.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Take your time. The problem is I don't quite""" start="00:18:59.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""remember where I made the note.""" start="00:19:01.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""But no, I don't see it on GitHub,""" start="00:19:06.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""so I don't have it readily at hand.""" start="00:19:09.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Well, that's fine. We'll be able to...""" start="00:19:12.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Well, if you happen to find it,""" start="00:19:14.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""we'll make sure to add it on the pad and then""" start="00:19:17.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on the talks page. And I think we would all""" start="00:19:20.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""be interested to see what this design""" start="00:19:22.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""document that actually made something work""" start="00:19:26.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""afterwards in JudgeDPT with Elisp.""" start="00:19:28.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm very interested to see what it would do""" start="00:19:30.440" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because I tend to be very interested about""" start="00:19:32.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""this type of stuff I had generated but I""" start="00:19:34.640" video="mainVideo-devel" id="subtitle"]] -[[!template text="""never thought about doing it with Elisp""" start="00:19:36.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""because somehow it feels like 2 different""" start="00:19:38.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""worlds, like Elisp is kind of from the past,""" start="00:19:40.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""don't going me wrong, I love it and I use it""" start="00:19:43.540" video="mainVideo-devel" id="subtitle"]] -[[!template text="""every day But it's 2 different parts of my""" start="00:19:46.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""brain that I didn't think about linking.""" start="00:19:48.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So I'd be very excited to see this as well.""" start="00:19:50.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Moving on to the next question.""" start="00:19:54.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Oh, go on, please. I did find it.""" start="00:19:56.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm gonna have to give it to you as a link""" start="00:20:00.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""here. Sure, you can do it on the blue button""" start="00:20:03.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and I'll put it on the pad.""" start="00:20:05.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I put it into the public chat for Bibi.""" start="00:20:12.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Yes. So if anyone is interested,""" start="00:20:15.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm putting it right in the answer to the""" start="00:20:18.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question right here on my screen.""" start="00:20:19.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So feel free to click on it and explore it.""" start="00:20:21.820" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm kind of curious, so I'm gonna...""" start="00:20:23.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Can I click it on stream and can we look at""" start="00:20:25.400" video="mainVideo-devel" id="subtitle"]] -[[!template text="""it a little bit together?""" start="00:20:26.120" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Sure, sure. I haven't tried running it,""" start="00:20:28.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I can't say for its fitness,""" start="00:20:31.300" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but it's definitely enough of the groundwork""" start="00:20:33.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""done that it's absolutely an assistance.""" start="00:20:36.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Right. Okay, so it's loading up right now?""" start="00:20:39.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""You can see my webcam,""" start="00:20:42.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""right? I can see your browser attempting to""" start="00:20:45.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""load. There we go. Okay,""" start="00:20:47.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""cool. So I'm not sure what GitHub is doing.""" start="00:20:49.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Let me give it a little more room.""" start="00:20:51.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""The reactive setup is not working too well.""" start="00:20:53.860" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Oh, I see. You're viewing the...""" start="00:20:58.340" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I see. Can I see the file then?""" start="00:21:01.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I should be able to see the file.""" start="00:21:03.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I think he just mentions the code in that""" start="00:21:08.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""comment. So if there's a way to view only the""" start="00:21:11.480" video="mainVideo-devel" id="subtitle"]] -[[!template text="""comment it would make it clear.""" start="00:21:14.765" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Right. Okay. I'm loading the file separately.""" start="00:21:16.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""I'm checking the time.""" start="00:21:18.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""We have about 3 minutes left and I think we""" start="00:21:21.220" video="mainVideo-devel" id="subtitle"]] -[[!template text="""have a question. In the meantime,""" start="00:21:22.420" video="mainVideo-devel" id="subtitle"]] -[[!template text="""whilst I show this, I'm gonna launch another""" start="00:21:25.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""question, which was about Drafts.""" start="00:21:28.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""You are carrying, you're talking about""" start="00:21:30.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Drafts, but does that mean you're not using""" start="00:21:32.320" video="mainVideo-devel" id="subtitle"]] -[[!template text="""org anymore? Oh, no, I use org all the time.""" start="00:21:35.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""In fact, the way that I've configured drafts""" start="00:21:37.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is that after I type the thing in the note""" start="00:21:40.240" video="mainVideo-devel" id="subtitle"]] -[[!template text="""into drafts, I hit a key and it creates an""" start="00:21:43.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""org mode capture item for it.""" start="00:21:44.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""The reason why I use Drafts instead of Emacs""" start="00:21:48.060" video="mainVideo-devel" id="subtitle"]] -[[!template text="""is because it's always available.""" start="00:21:50.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""If Emacs is currently doing some job for me,""" start="00:21:53.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""say I'm running some long-running subshell""" start="00:21:55.840" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and the UI is frozen up whatnot,""" start="00:21:58.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Drafts is always 100% of the time instantly""" start="00:22:02.020" video="mainVideo-devel" id="subtitle"]] -[[!template text="""available. So that's why I tend to then lean""" start="00:22:04.600" video="mainVideo-devel" id="subtitle"]] -[[!template text="""on it a bit, but all of the destination of""" start="00:22:07.740" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that data is still Org Mode and everything""" start="00:22:09.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that I do gets tracked through Org Mode.""" start="00:22:11.960" video="mainVideo-devel" id="subtitle"]] -[[!template text="""That's also why I wanted to implement the UI""" start="00:22:15.720" video="mainVideo-devel" id="subtitle"]] -[[!template text="""scheme of drafts in Emacs so that I could""" start="00:22:18.580" video="mainVideo-devel" id="subtitle"]] -[[!template text="""drop the use of this external application.""" start="00:22:20.360" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And then, I mean, I would still have the""" start="00:22:23.040" video="mainVideo-devel" id="subtitle"]] -[[!template text="""problem of sometimes Emacs being unavailable,""" start="00:22:25.080" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but I would pay that price in order to have""" start="00:22:29.760" video="mainVideo-devel" id="subtitle"]] -[[!template text="""that good UI of drafts inside Emacs.""" start="00:22:32.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Great. I think we have,""" start="00:22:37.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""we might be too tight on time.""" start="00:22:39.520" video="mainVideo-devel" id="subtitle"]] -[[!template text="""We only have about 2 minutes and I need to""" start="00:22:41.200" video="mainVideo-devel" id="subtitle"]] -[[!template text="""jump room to go into Stephane's room as well.""" start="00:22:43.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So John, where I get to thank you so much for""" start="00:22:47.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""taking the time to answer our questions,""" start="00:22:52.660" video="mainVideo-devel" id="subtitle"]] -[[!template text="""but also doing a little bit of reporting on""" start="00:22:54.920" video="mainVideo-devel" id="subtitle"]] -[[!template text="""the state of Emacs. And now we'll get to""" start="00:22:57.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""continue this with Stéphane.""" start="00:22:58.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""So do you have any last words for everyone,""" start="00:23:00.900" video="mainVideo-devel" id="subtitle"]] -[[!template text="""John? No, no. I look forward to hearing""" start="00:23:03.380" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Stéphane speak. Okay, great.""" start="00:23:05.940" video="mainVideo-devel" id="subtitle"]] -[[!template text="""And we'll look forward,""" start="00:23:07.000" video="mainVideo-devel" id="subtitle"]] -[[!template text="""potentially, to having you again next year,""" start="00:23:08.800" video="mainVideo-devel" id="subtitle"]] -[[!template text="""potentially still doing news like this,""" start="00:23:12.180" video="mainVideo-devel" id="subtitle"]] -[[!template text="""and, fingers crossed, maybe having you live""" start="00:23:15.620" video="mainVideo-devel" id="subtitle"]] -[[!template text="""again. Maybe, maybe let's see what happens.""" start="00:23:18.160" video="mainVideo-devel" id="subtitle"]] -[[!template text="""All right, John. Thank you so much.""" start="00:23:20.680" video="mainVideo-devel" id="subtitle"]] -[[!template text="""Bye bye. Bye bye.""" start="00:23:21.780" video="mainVideo-devel" id="subtitle"]] +[[!template text="""2 seconds. All right. I think we are live.""" start="00:00:02.419" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Yes. So, hi again, everyone.""" start="00:00:08.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I have the pleasure to welcome John Wiegley""" start="00:00:10.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""in person to this EmacsConf.""" start="00:00:13.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Hi, John. Hello there.""" start="00:00:15.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""How are you doing, Leo?""" start="00:00:17.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I am doing fantastic, and even more now that""" start="00:00:18.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I am in a room with you because we've been,""" start="00:00:21.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""we were reminiscing with Sacha.""" start="00:00:24.279" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So you had been there in person in 2013 And""" start="00:00:25.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""since we started doing those online,""" start="00:00:30.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Juan, since 2019, I think you've always been""" start="00:00:32.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""online, right? Usually it's a pre-recorded""" start="00:00:35.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""video. I think this will be the first 1 I do""" start="00:00:38.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""live in a long time. You're right.""" start="00:00:40.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm saying we are online right now,""" start="00:00:42.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but I just meant pre-recorded video.""" start="00:00:44.239" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So it's good to have you almost in person or""" start="00:00:45.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""at least live and we are excited to hear""" start="00:00:48.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""about some of the Emacs news.""" start="00:00:50.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So the floor is yours.""" start="00:00:52.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""All right, well welcome everybody.""" start="00:00:55.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""This is the yearly state of the Emacs union,""" start="00:00:57.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I guess, about how Emacs development is""" start="00:01:00.239" video="mainVideo-devel" id="subtitle"]] +[[!template text="""going. Just to note, I am not currently a""" start="00:01:02.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""maintainer of Emacs. So what I do to get""" start="00:01:05.379" video="mainVideo-devel" id="subtitle"]] +[[!template text="""these notes is I call up my friend,""" start="00:01:07.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Eli Zaretsky, 1 of the current Emacs""" start="00:01:09.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""maintainers, and he and I sit down for an""" start="00:01:12.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""hour, and he just gives me his dump of what's""" start="00:01:13.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""been going on. So I'm sort of just the""" start="00:01:17.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""messenger here. But thanks to Eli for these""" start="00:01:19.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""notes and all of the efforts that he""" start="00:01:22.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""contributes. So what he's been telling me is""" start="00:01:24.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that this Emacs 29 release that we had""" start="00:01:27.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""recently looks to have been very,""" start="00:01:30.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""very successful, which is some good news,""" start="00:01:31.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because there were a lot of new features,""" start="00:01:33.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and some of those features were actually""" start="00:01:35.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""quite radical. So far,""" start="00:01:37.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it's been quite a success,""" start="00:01:39.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""no serious problems with it,""" start="00:01:40.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and we have Emacs 29.2""" start="00:01:42.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""will be released very soon.""" start="00:01:45.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""They are thinking now about starting the""" start="00:01:47.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs 30 release cycle soon after 29.2""" start="00:01:50.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is released, where the release branch,""" start="00:01:53.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""which is called Emacs-30 usually,""" start="00:01:55.880" video="mainVideo-devel" id="subtitle"]] +[[!template text="""will be cut and then development will become""" start="00:01:59.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""frozen with only bug fixes going into that""" start="00:02:01.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""branch. That may take quite some time until""" start="00:02:03.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it actually comes to fruition as a release,""" start="00:02:07.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but at least it means that the release is""" start="00:02:09.639" video="mainVideo-devel" id="subtitle"]] +[[!template text="""going to start taking shape in that branch""" start="00:02:11.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""soon. So, for now, Emacs 30 looks like maybe""" start="00:02:13.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it's going to be a little less interesting""" start="00:02:17.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""than Emacs 29 was, meaning not a huge number""" start="00:02:19.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""of changing features. But there are still""" start="00:02:23.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""some new things going in.""" start="00:02:25.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So 1 of them is that Emacs 30 is going to""" start="00:02:26.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""have Android support. So you will be able to""" start="00:02:29.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""run Emacs 30 on your Android devices.""" start="00:02:32.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So if you've ever wanted to have native Emacs""" start="00:02:35.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on a tablet, which I know I've always wanted,""" start="00:02:37.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that will become possible with Emacs 30.""" start="00:02:40.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""There's also going to be much better support""" start="00:02:43.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for touchscreen devices,""" start="00:02:45.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""coincidentally, both laptops and tablets.""" start="00:02:47.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So that'll enhance that Android support.""" start="00:02:50.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""There will be some recently gained support""" start="00:02:54.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for LLDB in GUD.dl. So if you're on a Mac OS""" start="00:02:57.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""machine or a machine that uses just LLVM as""" start="00:03:01.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""part of the compilation process,""" start="00:03:05.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""then you probably are familiar with LLDB as""" start="00:03:07.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the command line debugger.""" start="00:03:10.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And that support for using LLDB through a GUD""" start="00:03:11.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""will become possible in Emacs 30.""" start="00:03:15.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm looking forward to this actually quite a""" start="00:03:17.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""bit as well. C Perl mode is being deprecated,""" start="00:03:19.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and all future work now is only being put""" start="00:03:23.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""towards C Perl mode. Another 1 is that there""" start="00:03:25.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""are going to be some new major modes based on""" start="00:03:30.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""TreeSitter. They will be for the languages""" start="00:03:33.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Lua, Elixir, and HTML.""" start="00:03:35.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And if you're not familiar,""" start="00:03:38.800" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I think TreeSitter was introduced in Emacs""" start="00:03:40.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""29. It's a library that allows you to specify""" start="00:03:42.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the grammar of a programming language as a""" start="00:03:47.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""BNF file, and I think using JavaScript,""" start="00:03:49.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and then with that file as input to Emacs,""" start="00:03:53.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it is then able to do syntax highlighting,""" start="00:03:56.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""syntax discovery, all of those things within""" start="00:04:00.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs without having to use elisp and regexps""" start="00:04:03.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""to discover the structure of the language.""" start="00:04:06.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""It defers the structure gathering to""" start="00:04:08.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""TreeSitter and then uses that information to""" start="00:04:10.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""navigate the language.""" start="00:04:13.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So, As time goes on, you'll see more and more""" start="00:04:15.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""languages taking on TreeSetter support.""" start="00:04:17.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So the next 3 coming up,""" start="00:04:19.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Lua, Elixir, and HTML.""" start="00:04:21.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And then the last feature for Emacs 30 is""" start="00:04:24.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that the byte compiler will now detect and""" start="00:04:26.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""warn about many more questionable constructs.""" start="00:04:29.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Things like empty macro bodies,""" start="00:04:33.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""missing lexical constructs,""" start="00:04:35.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""or say, condition case without any handlers.""" start="00:04:37.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Just silly stuff that might litter the code,""" start="00:04:40.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but now you'll get a warning about it from""" start="00:04:43.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the byte compiler to help you clean up the""" start="00:04:45.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""code and get rid of those potential sites of""" start="00:04:46.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""error. So this is the main thing that will be""" start="00:04:49.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""worked on for Emacs 30 and what's looked like""" start="00:04:52.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""shaping up for the release.""" start="00:04:55.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And also, he wanted me to announce that""" start="00:04:56.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Stefan Kongas is now a new co-maintainer.""" start="00:04:58.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And Stefan is, I believe,""" start="00:05:01.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""here with us in the conference and he'll be""" start="00:05:03.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""able, I hope, to help me answer any questions""" start="00:05:05.500" video="mainVideo-devel" id="subtitle"]] +[[!template text="""about future Emacs development because I'm""" start="00:05:08.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""not in the heat of it and don't have all""" start="00:05:10.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""those answers at the moment.""" start="00:05:12.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So That is all there is as far as a""" start="00:05:14.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""development update for now.""" start="00:05:17.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And I am available to take any questions.""" start="00:05:19.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""All right. Thank you so much,""" start="00:05:24.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Sean, for being the messenger of all this""" start="00:05:26.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""good news. I mean, you did start by saying""" start="00:05:29.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""this would not be as exciting,""" start="00:05:31.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""perhaps, as prior releases of Emacs,""" start="00:05:33.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but you then proceeded to say a lot of stuff""" start="00:05:36.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that it felt very exciting to me.""" start="00:05:38.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So good, good. Glad to hear that.""" start="00:05:40.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Right. So we do have questions coming in""" start="00:05:44.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""already and again people the link is on IRC""" start="00:05:47.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and also on the talks page if you want to""" start="00:05:50.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""start asking questions.""" start="00:05:52.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So John what I'm going to do I'm going to""" start="00:05:53.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""read you the questions and then you can""" start="00:05:54.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""answer them. Is that okay with you?""" start="00:05:56.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Absolutely. So starting with the first""" start="00:05:58.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question which changes in recent Emacs""" start="00:06:01.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""releases are you enjoying using?""" start="00:06:04.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I have really liked the visual line mode.""" start="00:06:08.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm not sure how recent that is.""" start="00:06:13.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Some of these features I only discovered""" start="00:06:15.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""quite late, the new display line number""" start="00:06:16.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""functionality, where it's much,""" start="00:06:19.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""much, much faster, and of course,""" start="00:06:21.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""native compilation. Native compilation has""" start="00:06:23.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""been quite brilliant for some of the larger""" start="00:06:25.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""packages that I use. I do a lot of stuff in""" start="00:06:27.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs. I use GNU's, I use E-Shell,""" start="00:06:29.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I use Org Mode quite a lot.""" start="00:06:31.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So native compilation has brought the user""" start="00:06:33.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""experience much closer to a modern app than""" start="00:06:36.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""some of the lagging and slowness that I might""" start="00:06:39.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""have experienced in the past.""" start="00:06:42.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Definitely. Moving on to the next question.""" start="00:06:44.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""What do you think the future in the area of""" start="00:06:47.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""artificial intelligence from the developer""" start="00:06:49.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""point of view? Could you say that 1 more""" start="00:06:51.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""time? Your voice broke up a little bit.""" start="00:06:53.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:54.876" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the area of artificial intelligence from the""" start="00:06:55.025" video="mainVideo-devel" id="subtitle"]] +[[!template text="""developer point of view?""" start="00:06:55.141" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Could you say that 1 more time?""" start="00:06:55.208" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Your voice broke up a little bit.""" start="00:06:55.324" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:55.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the area of artificial intelligence from the""" start="00:06:58.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""developer point of view?""" start="00:07:00.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""It's also a shaky question,""" start="00:07:01.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I think, but you get the point.""" start="00:07:02.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I do use chat-gpt-shell inside of Emacs quite""" start="00:07:04.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""a bit, actually, when doing development in""" start="00:07:09.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""other languages. Just the other day,""" start="00:07:10.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I was working on my Ledger accounting""" start="00:07:12.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""program, and I haven't done a lot of C++ in""" start="00:07:15.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""recent years. So I had forgotten how to""" start="00:07:18.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""exactly compare 2 strings only up to the""" start="00:07:21.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""length of the shortest string.""" start="00:07:23.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I know I could have cranked that out just""" start="00:07:25.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""writing it C style, but I didn't remember""" start="00:07:26.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""what the current state of the art is for C++""" start="00:07:28.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and the STL. So I just asked chatGPT.""" start="00:07:30.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I asked the exact question that I just said""" start="00:07:33.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""to you and sure enough it popped out the""" start="00:07:36.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""one-liner that was exactly what I needed.""" start="00:07:38.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So I think in terms of developer assistance,""" start="00:07:40.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""not having to keep all of standard libraries""" start="00:07:42.800" video="mainVideo-devel" id="subtitle"]] +[[!template text="""or common idioms in memory.""" start="00:07:45.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I don't know if other people are familiar""" start="00:07:47.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""with Rosetta Stone projects.""" start="00:07:49.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""They're projects where you have say a hundred""" start="00:07:51.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""different languages and there's a particular""" start="00:07:53.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question, say, how do I read a file and copy""" start="00:07:55.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it to another location?""" start="00:07:58.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And then it has an instance of doing that""" start="00:07:59.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""activity for every 1 of those languages.""" start="00:08:01.880" video="mainVideo-devel" id="subtitle"]] +[[!template text="""That's a great database,""" start="00:08:04.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and I've used them quite a bit in the past""" start="00:08:05.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for remembering how to do certain things,""" start="00:08:07.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""say, converting a string to UTF-8.""" start="00:08:09.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I think that AI does a great job of""" start="00:08:13.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""completely replacing the need for databases""" start="00:08:15.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""like that because you can just ask how do I""" start="00:08:17.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""copy a convert a string to UTF-8.""" start="00:08:19.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Yeah exactly and you know especially with""" start="00:08:23.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""languages which are tried well tried you know""" start="00:08:27.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it's very easy to get an answer that is""" start="00:08:30.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""correct. But sometimes what I find bothersome""" start="00:08:32.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""with this type of coding,""" start="00:08:34.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I think it's AI-aided coding,""" start="00:08:37.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but it's still coding,""" start="00:08:39.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is that, especially with C languages,""" start="00:08:41.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""sometimes you're going to end up with""" start="00:08:43.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""undefined behaviors and stuff like this just""" start="00:08:44.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because other people have been doing it,""" start="00:08:45.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""not because the algorithm or the model was""" start="00:08:47.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""trained with data that dates back to 10 years""" start="00:08:50.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""ago. At the time, C++ was a little different.""" start="00:08:53.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Anyway, I'm not here to talk,""" start="00:09:00.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""you are here to talk. Moving on to the next""" start="00:09:01.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question. People already get to hear my voice""" start="00:09:03.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""plenty, whereas yours are much sparser.""" start="00:09:06.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""All right. So, what is the future of Emacs on""" start="00:09:10.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""macOS? I understand that there are too few""" start="00:09:13.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""developers for the platform.""" start="00:09:16.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Is that still true? That's a good question.""" start="00:09:17.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I don't know what the current statistics are.""" start="00:09:21.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I've been a user of Emacs on Mac OS for""" start="00:09:23.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""decades now. It feels like the,""" start="00:09:27.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""There's also that Mac port version of Emacs,""" start="00:09:30.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""which builds Emacs more directly using the""" start="00:09:33.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""GUI libraries on the platform.""" start="00:09:35.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""That continues to be updated with every""" start="00:09:38.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""single new release that comes out.""" start="00:09:40.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So I'd say that the support may not be as""" start="00:09:42.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""great as it is on Linux and other platforms,""" start="00:09:45.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but to this day I haven't suffered from being""" start="00:09:47.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""a Mac user. Great. The only thing I remember""" start="00:09:50.500" video="mainVideo-devel" id="subtitle"]] +[[!template text="""about Emacs on macOS was that emojis made it""" start="00:09:55.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""inside the GUI first before they did it""" start="00:10:00.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""anywhere else. That's the 1 anecdote that I""" start="00:10:03.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""have on MacOS. Right. And historically that""" start="00:10:05.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""feature was removed in order to prevent Mac""" start="00:10:09.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""from having features that Linux did not.""" start="00:10:12.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I didn't want to go into that point.""" start="00:10:15.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I just wanted to mention the beginning of the""" start="00:10:16.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""anecdote and people can find it out.""" start="00:10:18.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But yes, that's also what it led to.""" start="00:10:19.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Moving on to the next question.""" start="00:10:24.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Why aren't you contributing to Emacs anymore?""" start="00:10:25.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Lack of time, I guess?""" start="00:10:28.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Lack of time, primarily.""" start="00:10:30.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Work has been very consuming.""" start="00:10:32.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""There are a lot of other projects and things""" start="00:10:33.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that I like doing. I still find Emacs Lisp""" start="00:10:36.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""very, very fun to write.""" start="00:10:39.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Just the other day, I was hacking up some""" start="00:10:40.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""extension macros for myself for org mode.""" start="00:10:43.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But to have the time needed to sit down and""" start="00:10:45.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""design a whole new mode and work on it.""" start="00:10:48.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I've been spending a lot of my time now in""" start="00:10:51.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""functional languages, especially theorem""" start="00:10:53.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""provers. I just find that so intellectually""" start="00:10:55.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""satisfying and interesting.""" start="00:10:58.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Plus it pays a lot better.""" start="00:11:00.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Never had a paying job as an Emacs list""" start="00:11:01.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""developer. So when it comes to now just being""" start="00:11:03.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""a fun language or a hobby language,""" start="00:11:06.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it is relegated to the time that I have free""" start="00:11:08.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""when it's available. Right.""" start="00:11:10.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Well, the good thing is that it's kind of""" start="00:11:13.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""like riding a bicycle,""" start="00:11:15.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""you know, writing a major mode,""" start="00:11:16.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it comes back relatively quickly and still""" start="00:11:17.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""enjoyable. You know, the other day,""" start="00:11:20.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""actually, I took notes on a mode that I""" start="00:11:22.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""wanted to write. There's an app I use on the""" start="00:11:25.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Mac called drafts, and I really love it.""" start="00:11:28.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I use it all the time.""" start="00:11:30.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I wanted to mimic the interface of this app""" start="00:11:31.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""in Emacs. So I could use Emacs as my drafts""" start="00:11:34.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""application rather than this separate 1.""" start="00:11:37.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So I noted down all the different user""" start="00:11:40.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""parameters and how it should function and""" start="00:11:42.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""everything to describe the app to myself as""" start="00:11:44.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""sort of notes to get me started on that work""" start="00:11:47.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""when I did have free time to work on it.""" start="00:11:50.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Somebody out there on the internet just saw""" start="00:11:52.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""these notes, because I keep a lot of my stuff""" start="00:11:54.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on GitHub. They fed it to chat GPT,""" start="00:11:57.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""going back to your AI question.""" start="00:12:00.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And they actually sent back to me a mode that""" start="00:12:02.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""implemented everything that I had said,""" start="00:12:04.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""which was effectively,""" start="00:12:06.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""chat GPT, seeing that what I had described""" start="00:12:08.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""was clear enough for it to derive most of the""" start="00:12:10.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""code that I would have wanted to write.""" start="00:12:14.500" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So maybe, maybe another thing that AI can do""" start="00:12:16.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is it can increase the value,""" start="00:12:19.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the efficiency of my free time.""" start="00:12:21.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Exactly. I think that's a wonderful point.""" start="00:12:24.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And phrasing it as efficiency of free time is""" start="00:12:27.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""great because you still have the expertise,""" start="00:12:29.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""obviously, that you're mobilizing into the""" start="00:12:31.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""design that you're formulating to charge DPT,""" start="00:12:33.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but then this expertise is turned into""" start="00:12:35.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""something that actually works.""" start="00:12:37.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Perhaps we're all going to become software""" start="00:12:40.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""architects at some point,""" start="00:12:41.780" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and then the busy work of actually coding the""" start="00:12:42.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""library and the software will be relegated to""" start="00:12:45.800" video="mainVideo-devel" id="subtitle"]] +[[!template text="""AI. That's an interesting future where we""" start="00:12:48.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""still, however, need to acquire the skills to""" start="00:12:51.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""know what is code, I suppose.""" start="00:12:55.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But that's an interesting future to think of.""" start="00:12:56.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""A fairly long question.""" start="00:13:00.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So 1 of the tricky things about running Emacs""" start="00:13:02.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on Android is do you use anything that""" start="00:13:04.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""requires extra packages?""" start="00:13:06.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Example like PDF tools with new PDF or going""" start="00:13:08.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""with a database, playing music or video with""" start="00:13:11.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""MPD or MPV on Bonga, LFeed.""" start="00:13:13.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Do you run Emacs Termex,""" start="00:13:16.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs APK, Emacs in virtual machine?""" start="00:13:18.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""This is also the case on Emacs for Windows to""" start="00:13:20.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""a lesser degree. So summarizing,""" start="00:13:22.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""how do you make Emacs work on Android if you""" start="00:13:24.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""do not have the synergy of stuff that you""" start="00:13:27.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""usually find on Linux systems like MPV and""" start="00:13:30.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""all the fancy applications like this?""" start="00:13:32.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""It's a good question. Since I'm not an""" start="00:13:35.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Android user and I've never tried running""" start="00:13:38.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs on Android platforms,""" start="00:13:40.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm not sure what's available out there to""" start="00:13:42.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""plug Emacs into. I mean,""" start="00:13:44.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""effectively, that question comes down to""" start="00:13:46.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""external dependencies and system support.""" start="00:13:48.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""That would be a great question for Stefan or""" start="00:13:50.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""somebody who has tried using Emacs,""" start="00:13:53.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the development version of Emacs on Android.""" start="00:13:56.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Great. We'll put a pin in this for Stéphane""" start="00:14:00.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""afterwards. Great, so moving on to the next""" start="00:14:04.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question. Will Org Tech someday become the""" start="00:14:07.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""default tech mode in Emacs?""" start="00:14:09.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And if so, when? Will Org what become?""" start="00:14:11.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Org Tech, you know, the LaTeX mode.""" start="00:14:15.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I do not know. It's been a while since I've""" start="00:14:19.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""done LaTeX. It must have been like 4 years,""" start="00:14:24.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but it was a pretty, the major mode for""" start="00:14:26.880" video="mainVideo-devel" id="subtitle"]] +[[!template text="""editing documents, like the state of the art""" start="00:14:30.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for editing latex documents in Emacs.""" start="00:14:32.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And apparently it's not default.""" start="00:14:34.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I assume there's latex mode or something that""" start="00:14:36.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is doing it. So were you saying octech,""" start="00:14:38.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""like A-U-C tech? Oh, did I not pronounce the""" start="00:14:41.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""C? Octech, yes. I thought you said org tech.""" start="00:14:45.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I wasn't familiar with that.""" start="00:14:48.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Octech is the only 1 I've ever used.""" start="00:14:50.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I know there is a built-in LaTeX mode,""" start="00:14:52.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but I've never used it.""" start="00:14:55.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I always just download whatever the latest""" start="00:14:57.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""version of Org Tech is and use that.""" start="00:14:59.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I don't know why it's not a standard package.""" start="00:15:01.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Becoming a standard package has its own costs""" start="00:15:03.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for the development cycle because it slows""" start="00:15:07.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""down release cycle quite a bit.""" start="00:15:09.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""It's now you have to create PRs that are""" start="00:15:12.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""reviewed by the Emacs Devel mailing list.""" start="00:15:14.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""It is a little more inertia.""" start="00:15:17.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Of course, it gets you more distribution""" start="00:15:19.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because it's a default package now,""" start="00:15:21.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and everybody can be using that.""" start="00:15:24.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But it's not something every developer""" start="00:15:26.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""decides to do. It took a few years,""" start="00:15:28.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""in fact, to get usePackage into Emacs core.""" start="00:15:31.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And that only happened after it was so stable""" start="00:15:34.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that it really wasn't receiving many changes""" start="00:15:37.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""anymore. Yeah, yeah it's it's the thing when""" start="00:15:39.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""you move into core you lose a lot of your""" start="00:15:44.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""agility in terms of how you're writing the""" start="00:15:46.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""code or how you expand code.""" start="00:15:49.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""That's why you have this vibrant community on""" start="00:15:51.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Melpa compared to core but you know it""" start="00:15:54.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""doesn't necessarily ought to be this way it""" start="00:15:57.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""could be a little different you know And it""" start="00:15:59.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""feels like there's this repetition between""" start="00:16:02.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""repartition, sorry, between people developing""" start="00:16:04.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for the core of Emacs and people developing""" start="00:16:06.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on Melpa, but at the end of the day those 2""" start="00:16:08.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""groups are constantly talking to 1 another""" start="00:16:10.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and taking cues from 1 another as well.""" start="00:16:13.180" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So that's great. And there's of course...""" start="00:16:15.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""May I jump in about this particular question""" start="00:16:18.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because I think I mean You know,""" start="00:16:21.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Org Mode doesn't really have any problems""" start="00:16:25.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""with releases Correct.""" start="00:16:27.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Just because it's distributed with Emacs so""" start="00:16:29.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""there is a difference between being in the""" start="00:16:32.860" video="mainVideo-devel" id="subtitle"]] +[[!template text="""core proper and being distributed with Emacs.""" start="00:16:35.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And for something like use packages,""" start="00:16:38.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it's really necessary to be in the core.""" start="00:16:40.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But for something like major mode,""" start="00:16:42.600" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it's a bit easier. That's a very very good""" start="00:16:45.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""point. Yeah, I'd forgotten about that""" start="00:16:48.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""distinction. Org mode does advance pretty""" start="00:16:50.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""rapidly and then it makes releases into the""" start="00:16:53.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""core distribution. Gianni,""" start="00:16:55.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I believe you also wanted to say something""" start="00:16:59.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""before someone started jumped in with a""" start="00:17:01.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question do you happen to remember okay""" start="00:17:03.840" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that's fine I lost her to lost to their time""" start="00:17:08.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'll be moving on to the next question then""" start="00:17:12.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and by the way feel free to interrupt us you""" start="00:17:15.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""know The whole point of this discussion is""" start="00:17:17.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""for you to ask questions to John Wheatley.""" start="00:17:19.619" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So whether it be via the other pad or via""" start="00:17:21.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""BBB, choose your weapon.""" start="00:17:23.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""All right, moving on to the next question in""" start="00:17:27.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the meantime. And we have about 7 minutes""" start="00:17:28.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""left of Q&A and then we'll be moving on to""" start="00:17:30.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Stéphane. So, do you use other IDEs for""" start="00:17:32.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""theorem proving work, notably VS Code for""" start="00:17:35.780" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Lean? Which languages and provers can or do""" start="00:17:38.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""you use Emacs for? I've only used Emacs.""" start="00:17:42.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I've used Emacs for working with ACL 2,""" start="00:17:46.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Coq, Agda, and Lean, and I really love""" start="00:17:49.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Proof-General. Coq is my favorite language to""" start="00:17:53.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""be working in. Agda has really great support""" start="00:17:55.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""as well, has a very nice Emacs mode.""" start="00:17:57.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm only just now starting to get into Lean""" start="00:17:59.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""4. So I have everything installed,""" start="00:18:02.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but I haven't really started coding in""" start="00:18:05.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""earnest. I'm still reading a lot of the""" start="00:18:07.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""tutorials and learning a bit about the""" start="00:18:08.800" video="mainVideo-devel" id="subtitle"]] +[[!template text="""language. There was a while there where I""" start="00:18:10.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""used a IDE for ACL 2 that was outside of""" start="00:18:13.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Emacs, only because it was the same IDE all""" start="00:18:17.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""my co-workers were using and it was easier to""" start="00:18:19.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""share tips and tricks with them.""" start="00:18:22.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But yeah, no, I found Emacs to be a great""" start="00:18:24.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""home for doing theorem proving.""" start="00:18:28.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Right. Next question. Can we see that AI""" start="00:18:32.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""generated draft? You know what you mentioned""" start="00:18:36.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""before about the draft that you then fed into""" start="00:18:40.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""ChargPT? Do you happen to have this draft""" start="00:18:43.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""anywhere? Let me see if it's still on GitHub.""" start="00:18:45.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Just take me 1 second to take a look here.""" start="00:18:51.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Take your time. The problem is I don't quite""" start="00:18:55.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""remember where I made the note.""" start="00:18:59.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""But no, I don't see it on GitHub,""" start="00:19:04.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""so I don't have it readily at hand.""" start="00:19:07.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Well, that's fine. We'll be able to...""" start="00:19:10.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Well, if you happen to find it,""" start="00:19:13.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""we'll make sure to add it on the pad and then""" start="00:19:15.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on the talks page. And I think we would all""" start="00:19:17.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""be interested to see what this design""" start="00:19:20.940" video="mainVideo-devel" id="subtitle"]] +[[!template text="""document that actually made something work""" start="00:19:22.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""afterwards in JudgeDPT with Elisp.""" start="00:19:27.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm very interested to see what it would do""" start="00:19:28.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because I tend to be very interested about""" start="00:19:30.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""this type of stuff I had generated but I""" start="00:19:32.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""never thought about doing it with Elisp""" start="00:19:34.780" video="mainVideo-devel" id="subtitle"]] +[[!template text="""because somehow it feels like 2 different""" start="00:19:37.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""worlds, like Elisp is kind of from the past,""" start="00:19:39.000" video="mainVideo-devel" id="subtitle"]] +[[!template text="""don't going me wrong, I love it and I use it""" start="00:19:41.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""every day But it's 2 different parts of my""" start="00:19:44.140" video="mainVideo-devel" id="subtitle"]] +[[!template text="""brain that I didn't think about linking.""" start="00:19:46.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So I'd be very excited to see this as well.""" start="00:19:48.820" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Moving on to the next question.""" start="00:19:53.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Oh, go on, please. I did find it.""" start="00:19:54.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm gonna have to give it to you as a link""" start="00:19:57.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""here. Sure, you can do it on the blue button""" start="00:20:01.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and I'll put it on the pad.""" start="00:20:03.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I put it into the public chat for Bibi.""" start="00:20:10.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Yes. So if anyone is interested,""" start="00:20:12.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm putting it right in the answer to the""" start="00:20:15.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question right here on my screen.""" start="00:20:18.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So feel free to click on it and explore it.""" start="00:20:20.200" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm kind of curious, so I'm gonna...""" start="00:20:22.120" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Can I click it on stream and can we look at""" start="00:20:23.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""it a little bit together?""" start="00:20:25.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Sure, sure. I haven't tried running it,""" start="00:20:26.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I can't say for its fitness,""" start="00:20:29.020" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but it's definitely enough of the groundwork""" start="00:20:31.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""done that it's absolutely an assistance.""" start="00:20:34.400" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Right. Okay, so it's loading up right now?""" start="00:20:38.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""You can see my webcam,""" start="00:20:41.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""right? I can see your browser attempting to""" start="00:20:42.620" video="mainVideo-devel" id="subtitle"]] +[[!template text="""load. There we go. Okay,""" start="00:20:45.680" video="mainVideo-devel" id="subtitle"]] +[[!template text="""cool. So I'm not sure what GitHub is doing.""" start="00:20:47.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Let me give it a little more room.""" start="00:20:50.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""The reactive setup is not working too well.""" start="00:20:51.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Oh, I see. You're viewing the...""" start="00:20:57.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I see. Can I see the file then?""" start="00:20:59.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I should be able to see the file.""" start="00:21:02.220" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I think he just mentions the code in that""" start="00:21:06.460" video="mainVideo-devel" id="subtitle"]] +[[!template text="""comment. So if there's a way to view only the""" start="00:21:09.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""comment it would make it clear.""" start="00:21:11.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Right. Okay. I'm loading the file separately.""" start="00:21:14.897" video="mainVideo-devel" id="subtitle"]] +[[!template text="""I'm checking the time.""" start="00:21:17.320" video="mainVideo-devel" id="subtitle"]] +[[!template text="""We have about 3 minutes left and I think we""" start="00:21:18.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""have a question. In the meantime,""" start="00:21:21.340" video="mainVideo-devel" id="subtitle"]] +[[!template text="""whilst I show this, I'm gonna launch another""" start="00:21:22.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""question, which was about Drafts.""" start="00:21:25.760" video="mainVideo-devel" id="subtitle"]] +[[!template text="""You are carrying, you're talking about""" start="00:21:29.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Drafts, but does that mean you're not using""" start="00:21:30.740" video="mainVideo-devel" id="subtitle"]] +[[!template text="""org anymore? Oh, no, I use org all the time.""" start="00:21:32.480" video="mainVideo-devel" id="subtitle"]] +[[!template text="""In fact, the way that I've configured drafts""" start="00:21:35.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is that after I type the thing in the note""" start="00:21:38.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""into drafts, I hit a key and it creates an""" start="00:21:40.580" video="mainVideo-devel" id="subtitle"]] +[[!template text="""org mode capture item for it.""" start="00:21:43.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""The reason why I use Drafts instead of Emacs""" start="00:21:45.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""is because it's always available.""" start="00:21:48.560" video="mainVideo-devel" id="subtitle"]] +[[!template text="""If Emacs is currently doing some job for me,""" start="00:21:51.100" video="mainVideo-devel" id="subtitle"]] +[[!template text="""say I'm running some long-running subshell""" start="00:21:53.960" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and the UI is frozen up whatnot,""" start="00:21:57.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Drafts is always 100% of the time instantly""" start="00:21:59.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""available. So that's why I tend to then lean""" start="00:22:02.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""on it a bit, but all of the destination of""" start="00:22:04.900" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that data is still Org Mode and everything""" start="00:22:07.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that I do gets tracked through Org Mode.""" start="00:22:10.240" video="mainVideo-devel" id="subtitle"]] +[[!template text="""That's also why I wanted to implement the UI""" start="00:22:13.080" video="mainVideo-devel" id="subtitle"]] +[[!template text="""scheme of drafts in Emacs so that I could""" start="00:22:16.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""drop the use of this external application.""" start="00:22:18.800" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And then, I mean, I would still have the""" start="00:22:21.540" video="mainVideo-devel" id="subtitle"]] +[[!template text="""problem of sometimes Emacs being unavailable,""" start="00:22:23.160" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but I would pay that price in order to have""" start="00:22:26.060" video="mainVideo-devel" id="subtitle"]] +[[!template text="""that good UI of drafts inside Emacs.""" start="00:22:30.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Great. I think we have,""" start="00:22:34.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""we might be too tight on time.""" start="00:22:38.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""We only have about 2 minutes and I need to""" start="00:22:39.720" video="mainVideo-devel" id="subtitle"]] +[[!template text="""jump room to go into Stephane's room as well.""" start="00:22:41.640" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So John, where I get to thank you so much for""" start="00:22:44.440" video="mainVideo-devel" id="subtitle"]] +[[!template text="""taking the time to answer our questions,""" start="00:22:47.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""but also doing a little bit of reporting on""" start="00:22:53.260" video="mainVideo-devel" id="subtitle"]] +[[!template text="""the state of Emacs. And now we'll get to""" start="00:22:55.040" video="mainVideo-devel" id="subtitle"]] +[[!template text="""continue this with Stéphane.""" start="00:22:58.380" video="mainVideo-devel" id="subtitle"]] +[[!template text="""So do you have any last words for everyone,""" start="00:22:59.280" video="mainVideo-devel" id="subtitle"]] +[[!template text="""John? No, no. I look forward to hearing""" start="00:23:01.300" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Stéphane speak. Okay, great.""" start="00:23:03.660" video="mainVideo-devel" id="subtitle"]] +[[!template text="""And we'll look forward,""" start="00:23:06.420" video="mainVideo-devel" id="subtitle"]] +[[!template text="""potentially, to having you again next year,""" start="00:23:07.360" video="mainVideo-devel" id="subtitle"]] +[[!template text="""potentially still doing news like this,""" start="00:23:10.520" video="mainVideo-devel" id="subtitle"]] +[[!template text="""and, fingers crossed, maybe having you live""" start="00:23:12.980" video="mainVideo-devel" id="subtitle"]] +[[!template text="""again. Maybe, maybe let's see what happens.""" start="00:23:15.920" video="mainVideo-devel" id="subtitle"]] +[[!template text="""All right, John. Thank you so much.""" start="00:23:19.700" video="mainVideo-devel" id="subtitle"]] +[[!template text="""Bye bye. Bye bye.""" start="00:23:20.860" video="mainVideo-devel" id="subtitle"]] Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20devel%3A%20Emacs%20development%20updates) diff --git a/2023/info/hyperamp-after.md b/2023/info/hyperamp-after.md index b2ef79ba..051a5dad 100644 --- a/2023/info/hyperamp-after.md +++ b/2023/info/hyperamp-after.md @@ -1,6 +1,1350 @@ <!-- Automatically generated by emacsconf-publish-after-page --> +<a name="hyperamp-mainVideo-transcript"></a> +# Transcript (unedited) + +[[!template text="""[Speaker 0]: 5 seconds. Oh, actually,""" start="00:00:01.719" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Sorry, I keep delaying.""" start="00:00:07.279" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I keep forgetting that we have an""" start="00:00:08.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""introduction now. The introduction is flying.""" start="00:00:09.559" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: a little more. You're going to give a""" start="00:00:02.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Well, it's about 5 seconds now.""" start="00:00:22.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: 30-second, right? Just say go when you want""" start="00:00:19.675" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Sure. You'll hear me anyway.""" start="00:00:29.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: me to go. Okay.""" start="00:00:27.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: All right, I think we are live now.""" start="00:00:33.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So hi again, everyone.""" start="00:00:35.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I promised you we would be back in about 30""" start="00:00:36.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""seconds. I lied, it was actually 1 minute,""" start="00:00:37.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but we are here with Bob.""" start="00:00:40.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hi, Bob, how are you doing?""" start="00:00:41.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Hi, doing great. Glad to""" start="00:00:43.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: be with you. Yeah, glad to be here,""" start="00:00:46.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and so are we. We're glad to have you again""" start="00:00:50.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this year. So what we're going to do,""" start="00:00:52.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we're not going to waste any time right now""" start="00:00:54.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with chit-chats. What we're going to do,""" start="00:00:56.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we're going to move straight into your""" start="00:00:57.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""presentation, Bob, so that you have as much""" start="00:00:59.059" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""time as you can. I'm going to recede into the""" start="00:01:01.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""background. I am going to full screen your""" start="00:01:04.239" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""presentation on a stream.""" start="00:01:07.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And Bob, the floor is all yours.""" start="00:01:09.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Thank you very much, Leo.""" start="00:01:12.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Glad to be here. I hope everybody has an idea""" start="00:01:15.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of what Hyperbole is, but it's a broad""" start="00:01:18.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""information management system inside Emacs""" start="00:01:22.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that works in all major modes.""" start="00:01:26.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's a global minor mode that you can turn on""" start="00:01:28.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and off very rapidly so that you can just get""" start="00:01:31.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in and out of hyperbole.""" start="00:01:34.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And it works mostly from a mini buffer menu""" start="00:01:36.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that if we just hit ctrl H H we see at the""" start="00:01:41.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bottom of the screen here and as you see in""" start="00:01:44.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""some of this text right here,""" start="00:01:47.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Dee will show you a demo with all these video""" start="00:01:51.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""links of Hyperbole now.""" start="00:01:55.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But let's just get into the top 10 reasons to""" start="00:01:57.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""use Hyperbole. Number 10 is a key series""" start="00:02:01.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""curly braces. So you just put curly braces""" start="00:02:10.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""around any set of key sequences that you want""" start="00:02:12.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and hyperbole magically turns that into what""" start="00:02:19.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we call an implicit button a hyper button and""" start="00:02:22.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""any kind of text that you have so if we go""" start="00:02:25.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""down here and we just click click here we see""" start="00:02:28.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it that was a complex button that said let's""" start="00:02:35.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""start a shell, let's set an environment""" start="00:02:40.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""variable as you see the command right up""" start="00:02:43.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""there, and then let's do a grep over the""" start="00:02:45.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole code and find all instances of a""" start="00:02:47.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""particular label. So if we hit made a return,""" start="00:02:50.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that's called the action key.""" start="00:02:55.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""That's what you use throughout hyperbole when""" start="00:02:57.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you just want to activate any kind of button.""" start="00:02:59.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So you see it jumped to the grep output and""" start="00:03:02.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this is in a shell buffer it's not in a""" start="00:03:06.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""compilation buffer so anywhere that you have""" start="00:03:08.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this sort of thing it's also an implicit""" start="00:03:11.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button and any sort of grep output or""" start="00:03:13.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""compiler output you can just jump to with the""" start="00:03:17.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""same key, made a return.""" start="00:03:22.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's key series, the first part.""" start="00:03:23.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And then just to note that you can also just""" start="00:03:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""do a, well I'll just do it here and show you""" start="00:03:33.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that you can do a recursive grep with this""" start="00:03:39.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole command, HYPBR grep.""" start="00:03:43.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And if you're in an Emacs list buffer,""" start="00:03:46.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it will only grep across the Emacs list.""" start="00:03:50.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So a very handy way to just go through your""" start="00:03:54.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""code very rapidly and then jump to various""" start="00:03:58.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""points in it. So we have a lot to cover""" start="00:04:01.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""today, so I'm going to go through this""" start="00:04:04.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""rapidly. This isn't a tutorial,""" start="00:04:05.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's just to get you interested in some of""" start="00:04:07.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the features, and then there's a ton of""" start="00:04:10.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""reference material and videos now available""" start="00:04:13.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for Hyperlink. So let's go to number 9.""" start="00:04:15.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Path names become implicit buttons.""" start="00:04:20.019" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You don't even have to quote them.""" start="00:04:22.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can add environment variables or elist""" start="00:04:24.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""variables with the syntax right here.""" start="00:04:26.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So here we have a shell script that's""" start="00:04:29.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""somewhere on our path.""" start="00:04:32.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And notice path is an environment variable""" start="00:04:33.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with many different paths within it,""" start="00:04:36.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""right? But Hyperbole knows that and it""" start="00:04:39.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""searches the path, gets the first match,""" start="00:04:42.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""finds it, and finds the actual shell script.""" start="00:04:45.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So you can just embed that anywhere.""" start="00:04:48.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Here we have a list variable,""" start="00:04:50.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbdur, which is the home directory for""" start="00:04:52.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole, and then a markdown file,""" start="00:04:54.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and a link to a direct section in the file,""" start="00:04:58.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and the 5 colon 5 means go to line 5 within""" start="00:05:01.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that section and column 5.""" start="00:05:05.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's just try it. Boom,""" start="00:05:07.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we're right there, and we're on another link""" start="00:05:09.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that we could activate as well.""" start="00:05:11.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So notice the next line is the same link but""" start="00:05:13.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this is how you normally have to do it in a""" start="00:05:17.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""markdown file. You have to change the section""" start="00:05:20.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""header to have dashes but with hyperbole you""" start="00:05:23.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""don't have to. You can just put it exactly""" start="00:05:25.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like you see it in your file.""" start="00:05:28.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Here the pound syntax for sections is really""" start="00:05:30.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a generic syntax in the hyperbole.""" start="00:05:34.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And so it works in all different kinds of""" start="00:05:37.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""files, your programming files.""" start="00:05:39.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Here's a shell script and we said let's just""" start="00:05:42.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""go to the first comment that has alias in it.""" start="00:05:45.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Notice we didn't have to say the whole line,""" start="00:05:49.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just the first part of it.""" start="00:05:51.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And it matched to it. Here we have a link to""" start="00:05:53.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""our hyperbole structured outliner called the""" start="00:05:58.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""K Outliner. And you can see it auto-numbers""" start="00:06:01.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""all these cells. But in addition to just""" start="00:06:05.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""displaying, you can also add a pipe symbol""" start="00:06:08.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""near the end and use this view syntax to clip""" start="00:06:10.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to 2 lines and show blank lines.""" start="00:06:14.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's see if each node gets clipped to 2""" start="00:06:17.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""lines. So you see they're all just 2 now with""" start="00:06:19.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the ellipses and then we can expand them.""" start="00:06:22.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So a lot of power there just with path names.""" start="00:06:25.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Let's continue to number 8.""" start="00:06:29.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Can I just interrupt you just a bit?""" start="00:06:31.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yes.""" start="00:06:33.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: I think your phone, so we have your phone set""" start="00:06:34.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""up in case your internet misbehaves and we've""" start="00:06:37.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""set this up before we started,""" start="00:06:40.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I think the vibration is a little loud""" start="00:06:42.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""whenever it does. Can you maybe move it a""" start="00:06:44.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""little bit? I think so.""" start="00:06:46.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It will have to vibrate again.""" start="00:06:50.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Is that okay? No, my phone...""" start="00:06:47.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Okay. It shouldn't have been vibrating.""" start="00:06:54.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: have been another device,""" start="00:06:59.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but definitely we had vibration.""" start="00:07:01.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Anyway, carry on. Sorry for the interruption.""" start="00:07:02.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: It could be me. It might So number 8,""" start="00:06:57.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""special prefixes. There are 3 prefixes you""" start="00:07:07.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can attach to path names.""" start="00:07:10.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""The first, if you want to load,""" start="00:07:11.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""instead of just finding a file,""" start="00:07:13.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""an ELIST file, you can actually load it.""" start="00:07:16.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And so I can just hit made a return on this,""" start="00:07:19.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you see in the mini buffer,""" start="00:07:22.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it loaded it as compiled e-list.""" start="00:07:25.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I could put a .el on here,""" start="00:07:27.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a .elc, .gz, all of that'll work,""" start="00:07:29.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and just put a dash in front to load it.""" start="00:07:33.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""If you want to run a shell command,""" start="00:07:36.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just put an exclamation mark in front of""" start="00:07:38.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""something and again you can have the""" start="00:07:41.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""environment variable. So here we're saying""" start="00:07:42.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""run the program date and you see,""" start="00:07:44.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""let's see, let's do it again.""" start="00:07:48.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""There we go. It ran date and you see the""" start="00:07:50.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""output right there. And what if you want to""" start="00:07:53.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""run a graphical program on your system?""" start="00:07:55.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Well here, we want to open a PDF file and I'm""" start="00:07:58.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just using XDG Open on Linux,""" start="00:08:01.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you could use Open on Mac and you just put an""" start="00:08:05.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""ampersand in front and there's the Hyperbole""" start="00:08:09.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""manual instantly displayed.""" start="00:08:14.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So lots of power there and all of that""" start="00:08:16.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""actually .pdf's and many other file types are""" start="00:08:18.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""automatically linked to various programs by""" start="00:08:22.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole. So you could just use the path""" start="00:08:25.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""name itself and it would probably behave the""" start="00:08:27.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""same way. Number 7, bookmarks on steroids.""" start="00:08:29.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So Hyperbole gives you a personal button""" start="00:08:35.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""file, which is on the menu you see here under""" start="00:08:37.419" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button files, and then personal.""" start="00:08:40.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So here we'll just display it.""" start="00:08:43.039" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And you can put whatever you want in here,""" start="00:08:45.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""these implicit buttons of any type.""" start="00:08:47.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can name them the way here and you can""" start="00:08:49.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""activate either the name with MetaReturn or""" start="00:08:52.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the button itself. So,""" start="00:08:55.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of course, if we did MetaReturn here,""" start="00:08:56.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we'd just display that in a web browser.""" start="00:08:59.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'll just do a few of these.""" start="00:09:03.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So here's a section of line.""" start="00:09:05.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Let's just jump there.""" start="00:09:07.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But these can be all sorts of different""" start="00:09:09.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""actions that are going on.""" start="00:09:11.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And you just, whatever cross references you""" start="00:09:13.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""want, you put in here.""" start="00:09:16.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And the neat thing is that this then becomes""" start="00:09:17.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a list of what we call global buttons.""" start="00:09:20.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So when I go into the menu and I go control""" start="00:09:23.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""HHGA to activate a global button,""" start="00:09:26.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can see that all the names from this file""" start="00:09:30.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""appear here. So only the name buttons appear,""" start="00:09:33.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and I could like go to the hyperbole to-do""" start="00:09:36.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""list and things like that.""" start="00:09:40.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So very, very quick access to all your""" start="00:09:42.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""information whenever you need it.""" start="00:09:45.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And that could be an org file as well if you""" start="00:09:47.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""prefer that. So we just took care of that.""" start="00:09:49.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Number 6, instant test case running and""" start="00:09:53.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""debugging. This is a fairly new feature.""" start="00:09:57.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""What we're seeing here is a pre-release of""" start="00:10:00.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""version 9, which should be out within the""" start="00:10:02.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next week. But the instructions at the""" start="00:10:04.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""beginning of the presentation tell you how to""" start="00:10:07.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""get the development version of HyperBlade,""" start="00:10:10.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which is right now 8.01""" start="00:10:14.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""pre, but that's virtually the same as what 9""" start="00:10:15.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""will be. So you can grab that as of today.""" start="00:10:19.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's just jump to a test file.""" start="00:10:24.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""What you see here is called an explicit""" start="00:10:27.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button. You can actually make buttons where""" start="00:10:30.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""similar to org, where you just see a bit of""" start="00:10:33.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the button and all of the metadata is hidden.""" start="00:10:35.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I can say control A J and I see all about""" start="00:10:39.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that button, exactly what it's going to do""" start="00:10:42.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""before I activate it and even who created it""" start="00:10:43.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""or last modified it. Then just queue out of""" start="00:10:47.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""here and you're back where you were.""" start="00:10:50.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So now, what this did is link us to an ERT""" start="00:10:52.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""test. If you write tests in Emacs,""" start="00:10:56.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you probably use ERT tests.""" start="00:10:59.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So if I hit made a return on here it'll just""" start="00:11:02.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""run the test tell me it passed great okay but""" start="00:11:05.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""maybe I had a problem so let me use control""" start="00:11:08.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you made a return and that will e-debug the""" start="00:11:11.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""test instantly. So now I'll step through it""" start="00:11:17.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it says, well, let's,""" start="00:11:20.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this single line actually creates that""" start="00:11:23.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""explicit button. You see we have an empty""" start="00:11:25.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffer here that we're in.""" start="00:11:27.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Now I step through that and now there's the""" start="00:11:29.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""explicit button that got put in there.""" start="00:11:31.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Now the next line I step through it and this""" start="00:11:34.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is going to check if we have the right action""" start="00:11:36.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""type and it returns true so that's good and""" start="00:11:39.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""now we should be it should be associated with""" start="00:11:42.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the temp buffer returns true good And that's""" start="00:11:45.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""why what you saw before is this passed.""" start="00:11:48.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""The whole thing passed.""" start="00:11:51.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So lots of power there.""" start="00:11:53.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Simple to use. You're just using your made a""" start="00:11:55.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""return and prefix arguments.""" start="00:11:57.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's something everybody who develops should""" start="00:12:00.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""have. So number, let's go on.""" start="00:12:03.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I think we're making pretty good time here,""" start="00:12:07.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I turned off my timer.""" start="00:12:09.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Let's go to number 5. This is a very new""" start="00:12:13.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feature, which is very cool too.""" start="00:12:15.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You used to have to use the mouse probably""" start="00:12:17.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you could drag across windows to go from""" start="00:12:20.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a source to a referent buffer and that would""" start="00:12:23.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""create a hyperlink for you.""" start="00:12:26.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But now we've installed it and made it even""" start="00:12:28.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""easier on, we've installed it on a,""" start="00:12:30.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""on the hyperbole menus.""" start="00:12:34.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's just go back to our presentation""" start="00:12:37.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""here and say we want to link to this line""" start="00:12:40.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that we're on there. And I'll just create the""" start="00:12:43.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button in our scratch buffer here so it""" start="00:12:46.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""doesn't really mess anything up.""" start="00:12:48.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I just put my point in where I want the""" start="00:12:50.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button to appear and then I put point where I""" start="00:12:53.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""want it to link to in the other the other""" start="00:12:56.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffer and then I just say control HH to get""" start="00:13:00.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""my menu, I for implicit button,""" start="00:13:02.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and then L for link. Boom,""" start="00:13:05.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it inserts it, right at point.""" start="00:13:07.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""What did it do? It knew that this was in the""" start="00:13:10.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole directory and I have a variable for""" start="00:13:12.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that, so that if you sent this link to your""" start="00:13:15.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""friend who uses Hyperbole,""" start="00:13:17.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it would still work right because they have a""" start="00:13:19.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""different hyperbole there.""" start="00:13:21.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And then I want to go directly to line 116.""" start="00:13:23.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So boom, it just took me there.""" start="00:13:28.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's it. And Hyperbole is doing all this""" start="00:13:30.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for you. You just say I want a link to this""" start="00:13:33.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""thing and it figures out what's at point and""" start="00:13:36.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it determines the right type of implicit link""" start="00:13:38.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to put there. And that's the whole point is""" start="00:13:42.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that you're just working like when you're""" start="00:13:45.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""programming or you're writing an article and""" start="00:13:47.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you just hit made a return or or pull up a""" start="00:13:50.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""menu and hit a key binding and you're off to""" start="00:13:53.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the races. So that was implicit linking We""" start="00:13:57.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can also create those explicit link buttons,""" start="00:14:02.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and as well as the global link,""" start="00:14:06.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""where we would just give it a name,""" start="00:14:07.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it would automatically put it in our""" start="00:14:09.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""global button file without us even having""" start="00:14:11.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that on screen. So lots of power there as""" start="00:14:14.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well, lots of consistency.""" start="00:14:18.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Now let's take a look at the K Outliner a""" start="00:14:21.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""little more. I'm just going to show you 1""" start="00:14:25.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feature actually. I don't have time to show""" start="00:14:28.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you the K Outliner in detail,""" start="00:14:29.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it's a really cool structured outliner""" start="00:14:31.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that even if you love Org Mode,""" start="00:14:34.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you should try it. And this is 1 thing that""" start="00:14:36.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can't get with Org Mode,""" start="00:14:39.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is let's say Hyperlink comes with an example""" start="00:14:41.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""file which teaches you about the K Outliner.""" start="00:14:45.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So we'll just use that right here.""" start="00:14:48.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And when you're in the K Outliner,""" start="00:14:51.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can bring up and go into the K Outliner""" start="00:14:53.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""menu right here at the bottom.""" start="00:14:55.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And there's a format menu there.""" start="00:14:58.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You always take the first letter of a menu,""" start="00:15:00.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the first capital letter of a menu item.""" start="00:15:02.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So F for format and then D for display in""" start="00:15:05.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""browser. So just let's do it.""" start="00:15:08.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We have with 1 button or 1 key we've produced""" start="00:15:12.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the entire outline in a collapsible outline""" start="00:15:17.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in HTML. So I can go here.""" start="00:15:23.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I just have to use my mouse.""" start="00:15:27.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I can expand and collapse these trees live""" start="00:15:29.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with very basic coding.""" start="00:15:34.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We tried to keep this as simple as possible.""" start="00:15:39.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But you see it maintains the structure of the""" start="00:15:42.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""outline and even tables.""" start="00:15:45.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So all the formatting is maintained and again""" start="00:15:55.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's instant. Or you can just export it to a""" start="00:15:57.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""file without displaying it.""" start="00:16:00.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Very efficient kinds of operations.""" start="00:16:03.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that was number 4. Number 3 is a""" start="00:16:06.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""subsystem, another subsystem in Hyperbole""" start="00:16:10.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""called Hycontrol, which is for window and""" start="00:16:13.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""frame management. And I just wanted to show""" start="00:16:16.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you 1 thing in there. It's got a lot of""" start="00:16:18.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""capabilities. But I always had the problem""" start="00:16:20.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that Emacs wouldn't let me scale my fonts,""" start="00:16:24.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""all of my faces at the same time.""" start="00:16:28.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I wanted to zoom. I didn't want to increase""" start="00:16:30.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the default font size and all the others stay""" start="00:16:33.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the same. So let's just display our faces""" start="00:16:36.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""right here and then we have a choice of""" start="00:16:41.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""either controlling frames or windows.""" start="00:16:45.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's start by controlling frames.""" start="00:16:47.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So you get another submenu when you're in""" start="00:16:50.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""high control to tell you what to do here.""" start="00:16:52.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And there's just lowercase z and uppercase z.""" start="00:16:56.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's try it. So it's scaling the entire""" start="00:16:59.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""frame. And you can see from the list of faces""" start="00:17:03.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that they're all scaling at the same time.""" start="00:17:06.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I can go back down.""" start="00:17:08.599" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Now if I switch to window mode,""" start="00:17:10.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and there's a special fast way to do that,""" start="00:17:13.619" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just hit T to toggle. And if you look at the""" start="00:17:16.099" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bottom menu it says frames right now now it""" start="00:17:18.819" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""says windows when I hit T so now if I do the""" start="00:17:21.819" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""same Z to increase it's just this window and""" start="00:17:25.599" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it's you know it's the faces in there so""" start="00:17:30.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a lot of power again but I just haven't found""" start="00:17:37.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""anywhere else that you can get that kind of""" start="00:17:40.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""control over your faces very rapidly.""" start="00:17:43.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's number 3. Now number 2,""" start="00:17:45.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""let's put that in there.""" start="00:17:55.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So the HiROLO is the final subsystem in""" start="00:17:58.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole and this has gotten much cooler.""" start="00:18:03.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it started off as a contact management""" start="00:18:06.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""system, but it's really just a hierarchical""" start="00:18:08.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""record management system that lets you have""" start="00:18:11.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""as many files, directories as you want,""" start="00:18:15.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you can search across all of them without""" start="00:18:18.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""any external utilities necessary,""" start="00:18:20.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just what's built into Emacs and Hyperlink.""" start="00:18:23.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So as you can see, we've expanded it to""" start="00:18:26.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""handle org files, markdown,""" start="00:18:29.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""K outlines, Emacs outlines.""" start="00:18:32.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So what I'm going to do is just say,""" start="00:18:34.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I want to search using my Hyberlo file list.""" start="00:18:36.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You just set that to what you wanted to""" start="00:18:40.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""search. But now you have all this""" start="00:18:43.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""flexibility. You can use environment""" start="00:18:44.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""variables in it. You can just specify a""" start="00:18:46.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""directory and it will find all those matching""" start="00:18:48.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""files below that directory recursively.""" start="00:18:51.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can give it the markdown file here and""" start="00:18:55.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can use file wildcards as well.""" start="00:18:58.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I mean, look at this. It's got a list""" start="00:19:01.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""variable in it and a wildcard,""" start="00:19:04.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's just all I'm gonna do is I change""" start="00:19:06.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this from a Lisp expression to make it a""" start="00:19:09.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyper button. You just change the outer""" start="00:19:13.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""parens to angle brackets,""" start="00:19:15.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and then it's automatically an implicit""" start="00:19:17.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button that you can activate with made a""" start="00:19:21.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""return so just ran that and now I've set my""" start="00:19:22.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""file list so now let's do a search it would""" start="00:19:26.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""be ctrl H H roll it X R and then S for search""" start="00:19:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But I'll just do it this way.""" start="00:19:34.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And boom, it found everything that fast.""" start="00:19:37.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I can just get like,""" start="00:19:41.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""show the top items in there.""" start="00:19:43.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I kind of have outlining in this buffer.""" start="00:19:45.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I can just move to each match that I hit.""" start="00:19:48.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And notice, although everything was""" start="00:19:51.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""collapsed, it's expanding here.""" start="00:19:53.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""When I move in and out of each of the entry""" start="00:19:55.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""matches, it expands or collapses as I move to""" start="00:19:58.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the next 1. So a lot of power there.""" start="00:20:02.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""What else? So just tabbing through these""" start="00:20:06.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""things. And you notice that it's working""" start="00:20:09.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""across all of these different types,""" start="00:20:11.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's telling you which file everything""" start="00:20:13.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""came from right up here.""" start="00:20:16.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I could just made a return here,""" start="00:20:17.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""should work. Yes, revisit the file normally.""" start="00:20:20.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And it just pulls it right up.""" start="00:20:23.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So everything is live and hyperbole.""" start="00:20:25.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You've got hyperlinks everywhere.""" start="00:20:28.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Let's just get rid of that.""" start="00:20:31.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Go back to our demo. So if you are fans of""" start="00:20:34.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Vertico and Consult, you can now use that""" start="00:20:41.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with the High Rollo. So all you have to do is""" start="00:20:46.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""let's just format our windows,""" start="00:20:49.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and then I'll say, let's use ConsultGrep over""" start="00:20:51.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the Rolodex. Now, it found all the matches""" start="00:20:55.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""there, and I can just move live through them""" start="00:20:58.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in the buffer like you may be used to or I""" start="00:21:02.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can filter back down and say using orderless""" start="00:21:04.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""joystick or anything that has joy in it just""" start="00:21:10.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""match to those lines and then I can you know""" start="00:21:13.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""either jump there or quit out of here.""" start="00:21:17.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'll just quit out of it right now.""" start="00:21:20.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So very cool. And all of that is using""" start="00:21:22.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""whatever you personally set as the set of""" start="00:21:25.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""files and directories you want to search.""" start="00:21:28.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And finally, our number 1 feature of""" start="00:21:31.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole is you can customize this to give""" start="00:21:35.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you these kinds of implicit buttons,""" start="00:21:40.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""whatever kind you want.""" start="00:21:44.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And there are 3 levels of doing this.""" start="00:21:46.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""The first is for non-programmers.""" start="00:21:49.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can just set a string,""" start="00:21:51.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like a URL with a parameter in it.""" start="00:21:54.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So the %s represents the parameter,""" start="00:21:57.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and This is how you do a search on""" start="00:21:59.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""DuckDuckGo. So all I have to do is evaluate""" start="00:22:01.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this defal for action link.""" start="00:22:04.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And now I have a new implicit button type""" start="00:22:07.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that I can put between angle brackets.""" start="00:22:11.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I just give it that name,""" start="00:22:13.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""DDG, and some parameter,""" start="00:22:16.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""whatever I want to search for,""" start="00:22:18.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and this is a button that does that search.""" start="00:22:20.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Very cool, right? So you can embed these.""" start="00:22:25.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""This could be a hyperlink in,""" start="00:22:28.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, a comment in a programming file.""" start="00:22:32.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Anything on the entire web that you want to""" start="00:22:35.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""link to, whatever kind of compact notation""" start="00:22:38.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you want to give it. So that's what we're""" start="00:22:42.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""going to learn as we get more advanced here""" start="00:22:44.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can give it even more compact notations.""" start="00:22:47.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So as you get more advanced you can say,""" start="00:22:49.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well I don't like this angle bracket,""" start="00:22:52.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I want to have an implicit button that uses""" start="00:22:54.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""these square brackets and then an angle""" start="00:22:57.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bracket inside it. So then you need the""" start="00:22:59.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""defile for implicit link.""" start="00:23:02.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""This lets you specify your start and end""" start="00:23:06.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""delimiters for your new type and and then you""" start="00:23:08.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can give it a function that you wanted to run""" start="00:23:12.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and that will take the text of whatever is in""" start="00:23:15.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the button, in this case,""" start="00:23:18.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""test release here, and feed it to the""" start="00:23:19.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""function that I gave here.""" start="00:23:23.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So what this function does is grep over my""" start="00:23:26.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""git log and find any commits that include the""" start="00:23:29.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""term test release in it.""" start="00:23:33.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let's try it. First I have to add the""" start="00:23:35.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button type and that's all it takes and it""" start="00:23:38.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""defined it now. So anywhere in Emacs now I""" start="00:23:41.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can use this button type essentially.""" start="00:23:44.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let me try to activate it.""" start="00:23:47.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Okay, and it says yeah let's save it.""" start="00:23:49.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Okay so now it's running a git log command.""" start="00:23:53.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It found all the commits and now of course if""" start="00:23:56.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I had made a return on this commit it""" start="00:23:59.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""recognizes it as an implicit link,""" start="00:24:02.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and if I search for what was a test release,""" start="00:24:05.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""there it is. So this commit had that in""" start="00:24:09.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""there. So all these matches,""" start="00:24:11.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""so I don't know how other people do this,""" start="00:24:14.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but for me this makes it a lot simpler.""" start="00:24:16.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So a lot of power that any programmer can""" start="00:24:21.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""use. And finally, if you've mastered Emacs""" start="00:24:24.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Lisp, or you're starting to,""" start="00:24:27.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can look in the hib types file in""" start="00:24:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole and see all sorts of uses of defib,""" start="00:24:33.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which is defined implicit button.""" start="00:24:37.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And that's the full power of e-LISP when you""" start="00:24:39.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""want to define 1. So what we're going to do""" start="00:24:42.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""here is I wanted to know,""" start="00:24:45.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""given a date, what the day of the week is.""" start="00:24:47.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And because the date primitives weren't quite""" start="00:24:49.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""written the way I might like,""" start="00:24:53.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's a little longer than some.""" start="00:24:55.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But I'm just going to evaluate this list.""" start="00:24:57.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I've now defined DOW as an action type.""" start="00:25:00.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Now, how do I know I'm doing that?""" start="00:25:06.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I can always say Control-H,""" start="00:25:08.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""capital A here to see what a button's going""" start="00:25:11.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to do. And it tells me When I'm there,""" start="00:25:13.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm at a hyperbole button,""" start="00:25:15.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and the type is from category DOW.""" start="00:25:18.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And what's it gonna do?""" start="00:25:24.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It takes a mark, it's gonna do a message""" start="00:25:25.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""action. Okay, so let's try it.""" start="00:25:27.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It tells me that's a date,""" start="00:25:31.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it falls on a Sunday,""" start="00:25:32.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which is today. That's correct.""" start="00:25:34.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So 2 days from today is a Tuesday.""" start="00:25:36.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Beautiful. So we've just totally transformed""" start="00:25:39.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""what we can do with text.""" start="00:25:44.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You notice there's no markup here.""" start="00:25:46.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And this is working with all of the other""" start="00:25:49.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""implicit types that we have everywhere in""" start="00:25:53.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Emacs. It's only going to match to this kind""" start="00:25:55.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of pattern and anywhere else,""" start="00:25:57.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, it just won't trigger that type.""" start="00:26:00.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So lots of power. You just need to get""" start="00:26:03.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""started with Hyperbole.""" start="00:26:06.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""There's great documentation both inside the""" start="00:26:07.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""code and in the manual.""" start="00:26:10.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""There's a fast demo that you can start with""" start="00:26:12.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and there's about 10 different videos.""" start="00:26:15.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""There'll be 3 presentations on hyperbole here""" start="00:26:18.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""at the conference, and I hope you've enjoyed""" start="00:26:21.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this presentation. I'd love to answer your""" start="00:26:25.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions and get some new users for""" start="00:26:28.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole. So lastly, I'd like to thank my""" start="00:26:31.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""co-maintainer, Matt, who's going to speak""" start="00:26:36.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""later about the extensive test protocols we""" start="00:26:38.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""have in Hyperbole. Hyperbole works on every""" start="00:26:42.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""version of Emacs from 27.1""" start="00:26:46.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""up, and every operating system and Windows""" start="00:26:48.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""system that you use. And thanks so much to""" start="00:26:52.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the volunteers and the speakers at EmacsConf.""" start="00:26:56.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You do a great job, and we're all really""" start="00:26:59.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""appreciative that you take all the time that""" start="00:27:02.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you do to make this happen.""" start="00:27:04.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Thank you very much.""" start="00:27:06.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: And thank you so much Bob.""" start="00:27:09.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I'll let you do the gymnastics to join us""" start="00:27:11.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""back on BBB and put your webcam.""" start="00:27:14.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""In the meantime, I'll invite people,""" start="00:27:17.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""as Sasha told you in the introduction,""" start="00:27:19.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to go put your question in the pad.""" start="00:27:21.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""The link is on the talks page and also on""" start="00:27:23.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""IRC. So take your time.""" start="00:27:25.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We've already got some people who've asked""" start="00:27:28.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions. You can also start joining the""" start="00:27:29.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""room. Let me just ping Sasha.""" start="00:27:33.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Ping to open ID HyperAmp.""" start="00:27:35.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, you'll be able to join us on""" start="00:27:39.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""BigBlueButton as well to go chat with Bob""" start="00:27:41.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""more directly. I'm not sure if people have""" start="00:27:43.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""joined already. Not yet.""" start="00:27:45.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, Bob, what I'll do,""" start="00:27:50.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we already have 4 questions.""" start="00:27:51.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm gonna read them to you and you can take""" start="00:27:52.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""your time answering them,""" start="00:27:54.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but we do have about 7 minutes until we go to""" start="00:27:54.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the next talk, so we need to be a little bit""" start="00:27:57.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Okay.""" start="00:28:00.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: chop-chop. All right, so reading the first""" start="00:27:59.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions, and I'm also going to display them""" start="00:28:03.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for the stream to see,""" start="00:28:05.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""do buttons keep their metadata within the""" start="00:28:07.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""same file? E.g., would I see it if I change""" start="00:28:09.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to fundamental mode, for instance?""" start="00:28:12.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: So all of the things that I was showing you,""" start="00:28:15.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""implicit buttons have no metadata.""" start="00:28:19.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""That's the great thing about them,""" start="00:28:21.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is you just type them in the buffer and what""" start="00:28:23.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you see is all there is to that button and""" start="00:28:27.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole generates all the smarts associated""" start="00:28:30.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with them. When you create an explicit""" start="00:28:33.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""button, which I showed you 1 or 2 examples""" start="00:28:35.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of, that metadata is, there is metadata with""" start="00:28:38.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that, and that is stored in a separate file""" start="00:28:42.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in the same directory called .hypb.""" start="00:28:45.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it's hidden away and it doesn't affect the""" start="00:28:49.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""format of the buffer that it's in.""" start="00:28:51.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So again, what you see is what you get.""" start="00:28:53.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You just see the delimiters around the""" start="00:28:56.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""explicit button and that's it.""" start="00:28:58.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So Hyperbole takes care of all that for you.""" start="00:29:01.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""However, if you embed them into like a mail""" start="00:29:04.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""message, which you can,""" start="00:29:08.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can mail buttons, then there is a hidden""" start="00:29:09.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""area at the end of the mail message that""" start="00:29:12.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""encodes the metadata for the explicit""" start="00:29:14.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buttons.""" start="00:29:17.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Ok, great. Next question.""" start="00:29:19.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Is it possible to link to a file by its ID,""" start="00:29:21.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like the node, org ID or some similar unique""" start="00:29:24.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""string inside?""" start="00:29:27.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yes, In fact, that's 1 of the new features in""" start="00:29:29.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""9. You just made a return on an ID and it""" start="00:29:33.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""takes you right to the org node,""" start="00:29:37.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""works with org Rome and org straight out of""" start="00:29:40.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the box. We're looking at ways to make it""" start="00:29:44.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""easier to just insert those in places,""" start="00:29:47.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but since you have word keys that do that""" start="00:29:50.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""already, you can just insert them in any""" start="00:29:52.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""documents and Hyperbole will recognize them.""" start="00:29:55.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I think In some cases you may need to put ID""" start="00:29:58.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""colon in front of the ID as well.""" start="00:30:02.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Generally it works.""" start="00:30:05.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Ok, great. Moving on to the next question.""" start="00:30:08.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Regarding the frames example,""" start="00:30:12.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""any thoughts or considerations for a""" start="00:30:14.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""transient interface or is this something 1""" start="00:30:16.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""could already toggle? Are you familiar with""" start="00:30:19.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""transient interface?""" start="00:30:22.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yes, we don't use transient because we,""" start="00:30:23.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, Hyperbole started out in 1991,""" start="00:30:26.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""though it's had much much work since then so""" start="00:30:30.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we predate a lot of newer things in Emacs and""" start="00:30:34.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""then we just use them as as they Become""" start="00:30:37.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""useful too hyperbole We think the The mini""" start="00:30:41.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffer menu is pretty good.""" start="00:30:45.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We could rewrite stuff in transient,""" start="00:30:46.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but we haven't seen the need yet.""" start="00:30:48.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Maybe high control, that might be a good""" start="00:30:52.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""candidate, because there are so many keys in""" start="00:30:54.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it. So we'll think about that.""" start="00:30:58.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But it would be a while before we got to it.""" start="00:31:00.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Right. Moving on to the next question.""" start="00:31:04.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Sorry I got really confused because there's a""" start="00:31:07.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""French salut, you know,""" start="00:31:08.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in the text of it. Is someone saying hi to me""" start="00:31:10.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""or something? All right,""" start="00:31:12.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next question. Regarding multi-file search""" start="00:31:14.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""functionality, why not implement it within""" start="00:31:16.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the existing framework of MetaX grep or""" start="00:31:22.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""similar built-in commands?""" start="00:31:24.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Yet another search interface sounds a bit""" start="00:31:26.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""redundant.""" start="00:31:28.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Multi-file search, so HiRolo I guess you're""" start="00:31:30.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""talking about. I think what you missed there""" start="00:31:34.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is that High Rollo matches to records,""" start="00:31:36.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""multi-line records, so it's not a""" start="00:31:40.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""line-oriented match, it's a record-oriented""" start="00:31:42.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""match. So Grep, you can say maybe give me 3""" start="00:31:45.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""lines of context, but what if I have a""" start="00:31:50.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""20-line record? I want to see the whole""" start="00:31:52.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""thing. And so, it's a full-text search""" start="00:31:56.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""interface, which lets you have any size""" start="00:31:59.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""entries or nodes in the match buffer.""" start="00:32:04.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's 1 reason. MADAX grep works with""" start="00:32:07.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole. I mean, you use it if you want and""" start="00:32:10.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""then you can hit MADA return on grep lines.""" start="00:32:13.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So we basically take everything from POSIX""" start="00:32:16.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and everything in Emacs and we try to make a""" start="00:32:20.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""lot of it simpler to use.""" start="00:32:24.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We don't take away any of the functionality,""" start="00:32:26.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we just augment it.""" start="00:32:29.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Right, and I think that's the logic for a lot""" start="00:32:32.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of the packages, you know,""" start="00:32:35.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the philosophy is just you create your little""" start="00:32:36.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bit, your little island where you do your""" start="00:32:38.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""stuff. And if you can resonate with other""" start="00:32:40.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""islands so much the better.""" start="00:32:42.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And it feels like between those islands,""" start="00:32:43.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, hyperbole is a great way to connect""" start="00:32:45.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""things that are just text.""" start="00:32:48.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it's always been a lovely philosophy.""" start="00:32:50.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""There's always been a lovely philosophy""" start="00:32:52.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""behind it.""" start="00:32:53.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: 1 other point I'd make there is that the""" start="00:32:55.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyrolo also contains logical search""" start="00:32:58.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""operators. So when I typed in that string you""" start="00:33:01.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""could just as well type with like Lisp""" start="00:33:04.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""expressions, semi Lisp expressions.""" start="00:33:07.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can say open paren and word 1,""" start="00:33:09.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""word 2, close paren. You know you can have or""" start="00:33:13.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and XOR and not and it'll do the search and""" start="00:33:17.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just retrieve the entries,""" start="00:33:22.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""again, multi-line entries that match all of""" start="00:33:24.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the criteria that you specified there.""" start="00:33:27.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's fairly unique,""" start="00:33:29.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I think. So you basically got a full text""" start="00:33:31.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""search platform with logical operators,""" start="00:33:33.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""instantly, you know, fast moving,""" start="00:33:36.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""rapid keys that you can control everything""" start="00:33:38.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with and it's all integrated into this larger""" start="00:33:42.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""framework.""" start="00:33:45.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Okay, great. Well, Bob,""" start="00:33:47.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you have 2 more questions,""" start="00:33:49.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but there's a big 1 about what inspired you""" start="00:33:50.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to write it back. It's being hyperbole around""" start="00:33:53.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the time of its birth,""" start="00:33:56.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but sadly, we only have about 1 more minute.""" start="00:33:57.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So what I'm going to ask you to do,""" start="00:34:00.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feel free to answer the question.""" start="00:34:01.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""If you go on BBB, I've pasted the link to the""" start="00:34:02.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""other pad. I think you can see it on your""" start="00:34:05.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: I have the ether pad up.""" start="00:34:08.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: computer as well. Right,""" start="00:34:06.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""so what are we going to do?""" start="00:34:11.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm Sorry, I'm just a little bit pressed by""" start="00:34:14.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""time because it's not me controlling when we""" start="00:34:16.679" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""move on to the next talk,""" start="00:34:18.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""as was evidenced yesterday when we got yonked""" start="00:34:19.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to the next talk. So Bob,""" start="00:34:21.719" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feel free to take all the time you want to""" start="00:34:24.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""answer questions. People,""" start="00:34:25.679" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""if you wanna join the Big Blue Button room,""" start="00:34:26.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the links are available and open on the talk""" start="00:34:28.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""page. You can join and ask as many questions""" start="00:34:30.239" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""as you want to Bob. And for us,""" start="00:34:31.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with a live stream, we'll be moving on to the""" start="00:34:33.679" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next talk in about 30 seconds.""" start="00:34:35.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So Bob, all that's left is for me to thank""" start="00:34:37.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you for your presentation again this year and""" start="00:34:39.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Thank you, Leo.""" start="00:34:43.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: for all your answers. All right.""" start="00:34:41.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Bye bye, Bob. And we'll be moving on to the""" start="00:34:45.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next talk in about 10 seconds.""" start="00:34:47.699" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""See you in a bit. All right,""" start="00:34:49.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Bob, we are off air I think now.""" start="00:34:53.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Thank you so much. I need to get moving for""" start="00:34:56.139" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Okay, is somebody gonna keep writing answers""" start="00:34:59.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in here or I need to type them in?""" start="00:35:02.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: the next talk. It's probably best now if you""" start="00:34:57.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""read the questions on your own and answer""" start="00:35:06.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""them. We'll collate everything together,""" start="00:35:09.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we'd just like to have your answers.""" start="00:35:11.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: I hope some people will join the BBB.""" start="00:35:15.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: it in my... All right,""" start="00:35:19.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bye-bye.""" start="00:35:21.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: But I'll start. I'll put Bye-bye.""" start="00:35:17.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So let me take a second here to see what""" start="00:35:24.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions we have. Did we cover that?""" start="00:35:28.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""OK. The point is why not upstream search""" start="00:35:36.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""interface? Could you clarify that question?""" start="00:35:42.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I don't quite know what that means.""" start="00:35:46.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I'll go on to the next 1 and come back to""" start="00:35:51.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that. Hyperlinks been around for a number of""" start="00:35:53.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""years now. What inspired you to write it back""" start="00:35:57.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""around the time of its birth?""" start="00:35:59.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Well, that's a great question.""" start="00:36:01.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It was born before the World Wide Web,""" start="00:36:04.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""actually. And it was right before.""" start="00:36:07.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I remember we were in the midst of a version""" start="00:36:10.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""when the first version of the web occurred.""" start="00:36:13.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I was thinking that there was going to be""" start="00:36:16.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""an information explosion of unstructured""" start="00:36:19.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""information. And like we needed to have much""" start="00:36:22.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""better tools to be able to manage say like""" start="00:36:27.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""5,000 email messages coming in and all sorts""" start="00:36:30.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of non-database-oriented information""" start="00:36:36.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""structures. So I said we need an advanced""" start="00:36:39.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""interactive hypertext system and it needs to""" start="00:36:42.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""work with all the general capabilities that""" start="00:36:46.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we use like email and our document production""" start="00:36:49.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""systems. So I was doing research at the time""" start="00:36:54.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""at a university And I decided to work on""" start="00:36:58.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""something that we called personalized""" start="00:37:04.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""information environments.""" start="00:37:06.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And there's a paper about this out there if""" start="00:37:07.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you want to dig it out on the web.""" start="00:37:10.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So Pies, as they were called,""" start="00:37:12.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""was an architecture which would have a bunch""" start="00:37:16.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of managers, like Hyperbole was 1 of the""" start="00:37:20.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""managers, the hypertext manager,""" start="00:37:24.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and then a bunch of point tools that would""" start="00:37:26.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""leverage the managers,""" start="00:37:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like an email reader would be a point tool""" start="00:37:30.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that would leverage the hypertext manager.""" start="00:37:33.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And so the first, I did in fact write""" start="00:37:36.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""something called PyMail,""" start="00:37:39.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which was very much Gmail-like,""" start="00:37:41.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""before Gmail. And so inside,""" start="00:37:44.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and I did a, it was like our mail in a way,""" start="00:37:48.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but inside your our mail summaries,""" start="00:37:51.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for example, you could have explicit buttons""" start="00:37:54.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""embedded and that were drawn from the subject""" start="00:37:57.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of your email message,""" start="00:38:01.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and they'd work just like the regular button.""" start="00:38:02.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it was very flexible,""" start="00:38:06.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it had rule-based processing and things.""" start="00:38:07.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So Hyperbole came out of that,""" start="00:38:11.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's come a long way,""" start="00:38:13.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it's still a very useful core hypertext""" start="00:38:15.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""system, hypermedia system,""" start="00:38:20.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I should say. Are you familiar with the""" start="00:38:22.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Embark package? I am a bit.""" start="00:38:26.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I've just started using it.""" start="00:38:28.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I think there's some overlapping""" start="00:38:30.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""functionality with hyperbole.""" start="00:38:32.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Yes, we've found that people over time have""" start="00:38:34.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""enjoyed hyperbole and have started""" start="00:38:39.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""replicating some of its features,""" start="00:38:41.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, small amounts of the features.""" start="00:38:43.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I talked to, I hope I don't miss his name,""" start="00:38:47.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but O'Adam who writes that once in a while we""" start="00:38:51.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""dialogue and I think Embark is great,""" start="00:38:56.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, I'll give him some pointers too and""" start="00:38:59.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""he thinks that Embark and hyperbole are quite""" start="00:39:04.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""compatible too, just like organ hyperbole.""" start="00:39:08.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So that's how we like to keep it.""" start="00:39:11.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Some people prefer just a small package of""" start="00:39:14.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mBARC, and it does different things than what""" start="00:39:18.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole does. So I think you use all of""" start="00:39:21.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""these tools together, and they can work very""" start="00:39:23.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well together. Any other questions?""" start="00:39:27.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Anybody still here? If not,""" start="00:39:34.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""probably people are off to another talk.""" start="00:39:38.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So thank you very much And again look for""" start="00:39:41.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole version 9 in the next week.""" start="00:39:47.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Thanks very much. Bye.""" start="00:39:53.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Should I leave BBB? Oh Alpha Papa's here.""" start="00:40:00.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hey. Good to see you. Alright,""" start="00:40:07.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well... Well, I'll stay for another minute,""" start="00:40:16.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I think I'm going to go off video 2 and""" start="00:40:22.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""start listening to another talk.""" start="00:40:27.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Thanks, everyone. Thanks everyone.""" start="00:40:30.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Yes, I can hear you. Yes,""" start="00:40:56.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Have you been answering questions?""" start="00:40:58.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: I can hear you. finished answering the""" start="00:40:56.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions. We're all done.""" start="00:41:03.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: I Okay, cool. Well, what I'm going to do,""" start="00:41:00.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm going to close the room unless you want""" start="00:41:07.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to go a little longer,""" start="00:41:09.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""because this talk that we're playing right""" start="00:41:10.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""now is finishing really quick and we don't""" start="00:41:11.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""have a Q&A afterwards.""" start="00:41:13.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, do you want to stay on air or something?""" start="00:41:15.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yeah, if you let people know to come back,""" start="00:41:19.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""because someone went to go hear that""" start="00:41:21.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""presentation, I can stay.""" start="00:41:23.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Sure, I'll make an announcement then.""" start="00:41:25.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And you can stay, we'll just put on BBB.""" start="00:41:27.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can stay muted until people join,""" start="00:41:29.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but this way it opens up menus for people to""" start="00:41:31.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""join and if no 1 shows up in 5 minutes we'll""" start="00:41:33.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""all go on break. Does that sound okay?""" start="00:41:36.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Great, thank you.""" start="00:41:38.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Cool, I'll go back to the management in the""" start="00:41:40.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""background and I'll let you know.""" start="00:41:44.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Okay, Bob, I've won the stream.""" start="00:43:25.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We are joining it now.""" start="00:43:27.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We've got about 5 seconds.""" start="00:43:28.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I think we are back.""" start="00:43:41.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""so we are gone, Bob, please.""" start="00:43:49.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Hi. So, yeah, I was going to say,""" start="00:43:45.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can we see if anybody comes back in the room?""" start="00:43:54.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""How do you tell?""" start="00:43:57.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: You should be able to show on the left,""" start="00:44:01.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you've got on BbBlueButton,""" start="00:44:03.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you've got a button, I'm showing it on the""" start="00:44:04.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""screen, but you've got a little button that""" start="00:44:06.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""allows you to show the people joining.""" start="00:44:08.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, hello everyone. Let's see if you had more""" start="00:44:10.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""question on your pad that we could be taking""" start="00:44:15.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in the meantime, just give me a second to""" start="00:44:17.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""find""" start="00:44:19.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: your pad. Here we go, an error occurred.""" start="00:44:19.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: All right, it's loading up.""" start="00:44:31.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Okay. Wow. Feels like there's an AI writing""" start="00:44:25.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this stuff on the pad.""" start="00:44:37.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Has it? Is this the last pad?""" start="00:44:41.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Oh no, this is a different 1,""" start="00:44:45.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Which question are you looking at now?""" start="00:44:49.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: sorry. It was a different pad,""" start="00:44:47.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Oh right.""" start="00:44:55.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: that was the problem. Okay,""" start="00:44:53.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""here we go. Okay, I'm back.""" start="00:44:57.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, yeah, it looks like...""" start="00:45:00.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Is anybody back? Send,""" start="00:45:02.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""if you're here, send a chat message.""" start="00:45:04.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Yeah, because it's been something.""" start="00:45:08.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You have, apparently, whenever we leave those""" start="00:45:10.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""BBB chat room open, the moment we go off air,""" start="00:45:14.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""people start joining and asking a lot of very""" start="00:45:18.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""interesting questions and you know that's all""" start="00:45:20.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well and good, we'll be able to put them on""" start="00:45:22.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the page later on. But it'd be great if you""" start="00:45:24.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""could also have those discussions when we are""" start="00:45:26.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""live because a lot of people would benefit""" start="00:45:28.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""from the brilliance that goes on in this""" start="00:45:30.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""room. So please don't be shy,""" start="00:45:32.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: So we're on the general stream now?""" start="00:45:37.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: join and talk. Yep, we are back on the""" start="00:45:34.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""general stream. We have about until 10 of the""" start="00:45:41.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next hour, which is 19 minutes.""" start="00:45:46.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Just- Why don't you and I talk?""" start="00:45:48.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So have you ever tried hyperbole,""" start="00:45:52.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Leo?""" start="00:45:56.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: I have never, but You know,""" start="00:45:58.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it feels like every year when you present""" start="00:46:00.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""something, it feels like I already know so""" start="00:46:03.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""much. Because of the buttons,""" start="00:46:05.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it feels like it's also something that we've""" start="00:46:08.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""reinvented many times in Emacs.""" start="00:46:10.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's like conversion to evolution,""" start="00:46:12.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""except you're the 1 who started ahead of""" start="00:46:14.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""everyone else.""" start="00:46:16.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Well, that's a good point because,""" start="00:46:17.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, we have, Emacs itself has push""" start="00:46:19.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buttons, which you see like in the help""" start="00:46:23.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffers. And those used to,""" start="00:46:25.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we didn't really do anything with those,""" start="00:46:27.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but now we've subsumed them as implicit""" start="00:46:30.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buttons as well. So you're made a return,""" start="00:46:32.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we'll work on those anywhere too.""" start="00:46:35.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So, we're trying to get,""" start="00:46:38.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you use 1 key, right? To control every type""" start="00:46:42.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of button that you have.""" start="00:46:45.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It works on org links,""" start="00:46:47.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""org buttons anywhere, or URLs.""" start="00:46:48.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Because it's so simple.""" start="00:46:53.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""All you need is like 5 to 10 lines of code to""" start="00:46:54.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""map. You map the pattern that represents a""" start="00:46:58.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""concept, right? And then you can create an""" start="00:47:02.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""infinite number of those buttons from that""" start="00:47:05.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""type. That's what's really cool about""" start="00:47:07.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole, is say I have a 500 page document""" start="00:47:09.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it uses a really weird format for""" start="00:47:13.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""cross-referencing, right?""" start="00:47:15.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I write my 3 lines of pattern match to work""" start="00:47:17.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with that. And then everywhere throughout""" start="00:47:22.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that document and the hundreds of other""" start="00:47:24.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""documents that will be created with that""" start="00:47:25.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""format, they're all live buttons instantly.""" start="00:47:27.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Nothing changed about the document.""" start="00:47:31.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""That's really cool. You know,""" start="00:47:34.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""word mode, we have global word buttons,""" start="00:47:35.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but mostly it has to be embedded within an""" start="00:47:37.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""org file, right? And follow that syntax.""" start="00:47:42.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""With hyperbole, it's like we can adapt as the""" start="00:47:45.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""world adapts around us to whatever formats""" start="00:47:51.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""people want to use that day.""" start="00:47:55.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And you can even change things to look the""" start="00:47:56.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""way you want, right, and have your own""" start="00:47:59.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""cross-references. There's something built""" start="00:48:02.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""into Hyperbole that's not really active,""" start="00:48:04.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which was sort of along the Zettelkasten way.""" start="00:48:08.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We wrote this a long time ago.""" start="00:48:13.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's called hib-doc.el,""" start="00:48:15.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's a card catalog notion.""" start="00:48:19.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it uses the high rollo in the background""" start="00:48:22.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it lets you create these forms that are""" start="00:48:26.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""cards that you fill out with whatever kind of""" start="00:48:30.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""data you want and then it gives you the full""" start="00:48:32.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""text searching across the cards and each card""" start="00:48:35.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""has a unique ID that you can reference""" start="00:48:38.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""similar to org IDs but these are human""" start="00:48:41.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""readable and human typable and so you can you""" start="00:48:45.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can just have a cross-reference to any doc ID""" start="00:48:49.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and essentially create what Engelbart used to""" start="00:48:52.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""call a journal, which is all these IDs on""" start="00:48:56.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""documents that point you directly to the""" start="00:49:00.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""document archive so that you could have like""" start="00:49:03.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""your internal publishing system and you know""" start="00:49:05.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's very simple to do and it's just 1 module""" start="00:49:10.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""added on to Hyperbole.""" start="00:49:13.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Yeah it's especially interesting for me you""" start="00:49:15.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""know because coming back to the side of""" start="00:49:19.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""convergent evolutions it's funny because the""" start="00:49:21.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""parameters are a little different.""" start="00:49:23.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""For us with org buttons,""" start="00:49:24.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we're very happy. A lot of the stuff during""" start="00:49:26.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""EmacsConf is run with org mode,""" start="00:49:29.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like we have Elisp going everywhere to""" start="00:49:31.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""compile a lot of org properties,""" start="00:49:34.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like speaker information,""" start="00:49:38.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for instance, how long the talk is,""" start="00:49:39.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the title, and all this.""" start="00:49:41.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We have all of this in an org file,""" start="00:49:42.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which we use as a database,""" start="00:49:44.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but then we can do so much stuff.""" start="00:49:46.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We can send email and we can update the""" start="00:49:47.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""schedule. By the way, if you're interested in""" start="00:49:50.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this, we'll have a talk on the DevTrack in""" start="00:49:52.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the afternoon today that Sacha did and it's""" start="00:49:54.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""wonderful. I'm just teasing it.""" start="00:49:56.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Oh, that's great.""" start="00:49:58.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: But coming back to Hyperbole,""" start="00:50:00.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for you, it feels like the parameters were""" start="00:50:01.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""slightly different because the feeling was,""" start="00:50:04.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I just want a tunnel that can work between""" start="00:50:06.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""any type of files. Now,""" start="00:50:09.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's all well and good.""" start="00:50:10.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Org-Rome, D-Note, and all the stuff like""" start="00:50:11.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this, they create bidirectional links.""" start="00:50:14.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But it's only between org-mode files.""" start="00:50:17.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Whereas what you're achieving with Hyperbole,""" start="00:50:19.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you've done it much earlier than everyone""" start="00:50:22.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""else, is that you have this concept""" start="00:50:24.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""regardless of the type of file that you're""" start="00:50:27.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""using. And I find this to be beautiful.""" start="00:50:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Like 5 years ago, whenever you were talking""" start="00:50:32.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""about hyperbole, I did not have a concrete""" start="00:50:35.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""idea of what was happening.""" start="00:50:37.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But ever since I've gone through the journey""" start="00:50:38.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of really understanding what the El Caster""" start="00:50:40.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""method were about, it feels like you were""" start="00:50:42.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""foreigners in the topic.""" start="00:50:45.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Obviously, you've mentioned the mother of all""" start="00:50:46.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""demos by Edward Engelbart,""" start="00:50:48.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but those ideas are not novel,""" start="00:50:50.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it feels like only now are they starting""" start="00:50:54.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to be appropriated by people,""" start="00:50:56.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""especially in free software,""" start="00:50:58.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's really good to see.""" start="00:50:59.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm really excited to,""" start="00:51:01.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well, have my small part to play in this.""" start="00:51:02.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I'm also excited to be able to chat with""" start="00:51:04.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you and people like Bastien and other people""" start="00:51:06.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""about all those topics.""" start="00:51:10.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yeah, I think, you know,""" start="00:51:12.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's fun that we can laugh now about when""" start="00:51:13.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""people say people are still using Emacs,""" start="00:51:16.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, is because they're not used,""" start="00:51:20.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""certain people aren't using it.""" start="00:51:22.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""They have no idea of how far it's come and""" start="00:51:24.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""how powerful it is. And,""" start="00:51:26.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, we're leveraging Elisp heavily,""" start="00:51:28.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""obviously, but if you look at the definition""" start="00:51:31.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of our types, they look exactly like DIP""" start="00:51:34.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""funds in ELisp. And we've been able to do""" start="00:51:37.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that because of Lisp macros.""" start="00:51:41.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You know, we so we basically have our own""" start="00:51:43.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""domain specific language there,""" start="00:51:46.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but there's almost nothing to learn because""" start="00:51:48.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's just like what you know from UList.""" start="00:51:51.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So again, you know, taking the concept and""" start="00:51:54.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""leveraging it, abstracting it and leveraging""" start="00:51:57.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it multiple times gives you a lot of power.""" start="00:51:59.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And people, you know, somebody said the other""" start="00:52:03.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""day, and I said, finally,""" start="00:52:06.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""this quote happened. He said,""" start="00:52:07.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""there's so many things that I do with""" start="00:52:11.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole every day that I forget that I'm""" start="00:52:15.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""using hyperbole. Because it's just so""" start="00:52:17.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""embedded in this guy's workflow.""" start="00:52:21.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And that's really how I use it.""" start="00:52:23.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You know, there are features in there,""" start="00:52:25.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""can't use everything, right?""" start="00:52:27.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So there are features that I don't use,""" start="00:52:29.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I use a lot of things and it's all like""" start="00:52:32.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""muscle memory, just like the keyboard,""" start="00:52:35.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the Emacs key bindings.""" start="00:52:38.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it's very exciting to get to that level.""" start="00:52:39.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And now, you know, we haven't started with""" start="00:52:42.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the chatbots or any of the AI integration,""" start="00:52:44.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I'm starting to think about that a little""" start="00:52:47.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bit and how we'll interface to that world and""" start="00:52:49.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I think it's going to be very exciting.""" start="00:52:53.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Yeah, likewise and I think it harks back to""" start="00:52:56.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""what we were talking about before when we""" start="00:52:58.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mentioned Hyperbole being a package inside of""" start="00:53:00.660" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""an ecosystem that is Emacs.""" start="00:53:03.700" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But it's not because something is well""" start="00:53:05.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""circumscribed in terms of feature set that it""" start="00:53:08.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""does not influence everything around it.""" start="00:53:10.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Like Hyperbole can be used with something""" start="00:53:12.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""completely at the opposite end of what it was""" start="00:53:15.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""intended for, just because it provides a good""" start="00:53:18.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""set of tools that can be used wherever else""" start="00:53:21.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you want in Emacs. And it's the same thing""" start="00:53:23.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with Org Mode, it's the same thing with many,""" start="00:53:26.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""many different things.""" start="00:53:27.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And it feels like integrating AIs,""" start="00:53:29.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""or generative AIs, into Emacs would provide""" start="00:53:33.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""such a tool that could apply to any kind of""" start="00:53:39.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""other major mode or any kind of other use.""" start="00:53:42.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I'm also excited to see this.""" start="00:53:45.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It feels like we are sitting at the brink of""" start="00:53:46.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a revolution. I'm not going to say the acne""" start="00:53:50.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""stuff, but it definitely feels like right""" start="00:53:52.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""now, by trying to see what we can do with AI,""" start="00:53:54.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it's definitely going to change the way not""" start="00:53:57.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""only we program, but also the way we take""" start="00:53:59.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""notes and the way we design stuff,""" start="00:54:01.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""arcing back to what John Wigley said""" start="00:54:03.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""yesterday about his draft program on macOS.""" start="00:54:05.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Bob, if you don't mind,""" start="00:54:09.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I see people typing questions and I also see""" start="00:54:11.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""people joining on people buttons,""" start="00:54:13.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""so I'm going to read you the 2 questions that""" start="00:54:14.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""have been added. Is that okay?""" start="00:54:16.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Great, go for it.""" start="00:54:19.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Cool, so first question.""" start="00:54:21.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Wow, what you're describing now,""" start="00:54:23.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and that's when you were talking about the""" start="00:54:25.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""bi-directional links and especially the last""" start="00:54:27.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""question in its entirety,""" start="00:54:31.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""What you're describing now reminds me a lot""" start="00:54:33.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""about HyperCard that I grew up on.""" start="00:54:35.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Do you know if Hyperbole inspired Bill""" start="00:54:37.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Atkinson or if you were inspired by""" start="00:54:39.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""HyperCard? Or were there just a lot of""" start="00:54:41.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""thoughts about hyper-contextuality around""" start="00:54:43.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that time?""" start="00:54:44.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Alright, well this is another interesting""" start="00:54:46.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""anecdote. I don't know if it's true or not,""" start="00:54:50.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I think HyperCard predated our stuff.""" start="00:54:52.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It was right around the same time when""" start="00:54:57.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole was starting out.""" start="00:55:00.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But when I was doing the Pi research,""" start="00:55:02.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I worked at, when I left school,""" start="00:55:06.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I worked at Motorola, and we did a lot of""" start="00:55:08.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""work with Apple back then.""" start="00:55:11.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And somebody came back and he said,""" start="00:55:13.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, the people over there have seen""" start="00:55:15.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""your Pi research and they really liked it a""" start="00:55:19.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""lot. And so they were leveraging that when""" start="00:55:21.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""they decided to create the division that they""" start="00:55:26.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""called Apple Pi, which was the originator of""" start="00:55:28.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the Newton which eventually led to the""" start="00:55:33.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""iPhone. So it all kind of is interconnected""" start="00:55:36.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""just like the impact that free software has""" start="00:55:41.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""had around the world. So you never know where""" start="00:55:44.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""your stuff is gonna go or end up.""" start="00:55:47.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Right. All right, moving on to the next""" start="00:55:51.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""question. Is it possible to only use 1""" start="00:55:53.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feature of hyperbole without the others,""" start="00:55:55.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""i.e. Using only the implicit explicit buttons""" start="00:55:57.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""without I control I roller or without having""" start="00:56:00.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to rewrite part of the code in hyperbole in""" start="00:56:03.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""order to be able to load a smaller hyperbole.""" start="00:56:05.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Does it make sense?""" start="00:56:08.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yes we get asked this all the time.""" start="00:56:10.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So you can use any little bit that you want""" start="00:56:12.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""anywhere right you can even just call code""" start="00:56:16.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""from Hyperbole. I mean you don't use""" start="00:56:19.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""everything in Emacs, right?""" start="00:56:23.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But you still install Emacs on your machine.""" start="00:56:25.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's exactly the same thing.""" start="00:56:28.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Those libraries don't take up any memory,""" start="00:56:30.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""they take up a little disk space and it's so""" start="00:56:33.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""trivial compared to the amount of disk we""" start="00:56:36.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""have today. So a lot of things are not loaded""" start="00:56:38.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""unless you activate them.""" start="00:56:41.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And so I know that you do have to build all""" start="00:56:45.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""those things. So maybe that's what bothers""" start="00:56:48.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""people. It takes 2 minutes if you're using,""" start="00:56:51.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it depends how fast your computer is.""" start="00:56:56.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But you build it once on install like every""" start="00:56:58.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""other package. And it used to be that there""" start="00:57:01.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""would be a lot of warnings just because of""" start="00:57:04.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the way we wrote the code and we didn't""" start="00:57:06.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""really have to deal with some of those""" start="00:57:09.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""warnings. But with this new release,""" start="00:57:11.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""we've gotten rid of almost all of them,""" start="00:57:13.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""including the native compiler messages.""" start="00:57:15.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it should be a very clean install now,""" start="00:57:20.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and just use 1 part at a time.""" start="00:57:22.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""But the other parts are there in case you""" start="00:57:26.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""make a link to something and you use a""" start="00:57:29.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""facility just like I was showing as I went""" start="00:57:32.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""across subsystems today.""" start="00:57:34.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It may take you a year,""" start="00:57:36.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but then all of a sudden you find the use""" start="00:57:38.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""case for Hyrule and you say,""" start="00:57:40.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""oh, I'm glad I have it there.""" start="00:57:42.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And yes, some of these things could be split""" start="00:57:44.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""into sub packages like you do in the org""" start="00:57:47.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""ecosystem. But given our limited resources on""" start="00:57:49.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the team, we find having them all in 1 gives""" start="00:57:52.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""us a higher level of quality and lets us""" start="00:57:56.400" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""deliver a better integrated system for your""" start="00:57:59.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""use.""" start="00:58:02.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Yeah, exactly. And I think,""" start="00:58:04.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you know, it's, it's not a monolith.""" start="00:58:06.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I mean, it's usually easier,""" start="00:58:10.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""easy, more easy, more easy.""" start="00:58:12.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Sorry, I was right on the first try.""" start="00:58:14.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's usually easier to maintain a monolith""" start="00:58:16.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that contains many bits of functionality like""" start="00:58:20.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""org. You have plenty of people using org""" start="00:58:23.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mode, not using org-agenda,""" start="00:58:25.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for instance, or you've got plenty of people""" start="00:58:27.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""using org-mode and barely using Babel because""" start="00:58:29.142" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it doesn't really translate to their use.""" start="00:58:31.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I feel like I very much agree with you.""" start="00:58:35.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's okay to install a package and only use""" start="00:58:37.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""some of the functions.""" start="00:58:39.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I was reminded, as you were discussing this,""" start="00:58:40.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""of the consults package,""" start="00:58:43.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which is part of the VertiCo,""" start="00:58:45.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mbark and marginalia and all this.""" start="00:58:48.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Consult, it replaces a lot of the Emacs""" start="00:58:51.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""built-in commands like for finding your""" start="00:58:54.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffers or finding text inside of your""" start="00:58:56.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buffer. It's great. And you do not need to""" start="00:58:59.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""completely move to consult as you get""" start="00:59:04.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""started. You can start colonizing 1 step at a""" start="00:59:06.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""time the function that you usually use.""" start="00:59:09.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I highly recommend to people to not let""" start="00:59:12.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the size of a project deter them from trying""" start="00:59:15.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it out because, again,""" start="00:59:18.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in Emacs, everything is horizontal.""" start="00:59:20.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""If somehow you want to use something that was""" start="00:59:23.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""not intended primarily for this,""" start="00:59:28.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""or if you only want to use 10% of a package,""" start="00:59:29.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well, do it. An example that I have for me is""" start="00:59:32.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that Lispy is the minor mode that I use for""" start="00:59:35.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""editing Elisp documents,""" start="00:59:39.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and it's great. Elisp provides similar""" start="00:59:42.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""functions to ParaEdit,""" start="00:59:45.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which might be a little more popular,""" start="00:59:46.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which allows you to have modal editing when""" start="00:59:47.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you are on specific parts of a file,""" start="00:59:50.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""like the opening parenthesis or the closing""" start="00:59:52.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""parenthesis. It's great,""" start="00:59:55.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it provides modal editing for those modes,""" start="00:59:56.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but I certainly do not know everything,""" start="00:59:58.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""every modal command associated to it.""" start="01:00:02.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I just use the 1 that makes the most sense to""" start="01:00:04.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""me. So feel free to explore.""" start="01:00:06.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: I'll just say we get this so much.""" start="01:00:11.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's not that large. I mean there's a fair""" start="01:00:13.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""number of files but it's just like 1 major""" start="01:00:16.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""directory and then the KOutliner directory.""" start="01:00:19.680" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And when you look at these things,""" start="01:00:24.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you install web applications,""" start="01:00:25.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""everything else, just when you download the""" start="01:00:27.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""source code, it's much,""" start="01:00:30.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""much smaller than any of that.""" start="01:00:31.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So I don't know why people you know accept""" start="01:00:34.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that it's larger than your typical package.""" start="01:00:37.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Why there's really an issue there.""" start="01:00:39.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: I think it's because people tend to assume""" start="01:00:43.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that a paradigm like the 1 you're describing,""" start="01:00:46.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""which seems to be changing the way you use""" start="01:00:48.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Emacs in a way because you're no longer""" start="01:00:51.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""thinking of as buffers as separate entities,""" start="01:00:53.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can tunnel between them.""" start="01:00:56.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You know, it feels like a huge paradigm shift""" start="01:00:57.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you assume that the code behind it is""" start="01:01:00.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""going to be humongous as well,""" start="01:01:02.300" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but it's usually not the case.""" start="01:01:04.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It's just that the idea is very pure at the""" start="01:01:05.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""start, and the paradigm shift that it allows""" start="01:01:07.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is also magnificent. But at the end of the""" start="01:01:10.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""day, the code is fairly simple,""" start="01:01:14.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""because it does 1 thing and it does it well.""" start="01:01:16.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: 1 thing I noticed too,""" start="01:01:19.780" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I mean I'm a big believer in turnkey kind of""" start="01:01:21.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""systems. In fact a long time ago when I built""" start="01:01:23.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""an IDE on Emacs called InfoDoc that was""" start="01:01:27.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""delivered pre-compiled.""" start="01:01:31.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So it's like you download it like every other""" start="01:01:33.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""app and you run it. And so I think""" start="01:01:35.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""eliminating all the friction that occurs,""" start="01:01:39.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and you know, I just got going recently with""" start="01:01:42.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the wonderful packages that you just""" start="01:01:46.380" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mentioned, VertiCo and Consult,""" start="01:01:49.160" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but they don't have a manual that covers all""" start="01:01:51.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that. They use sort of like a cookbook,""" start="01:01:55.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""a wiki online to answer a lot of the""" start="01:01:58.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""questions that people have and everybody has""" start="01:02:02.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to figure out their configurations you know""" start="01:02:04.600" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""to make these things all work together.""" start="01:02:07.640" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We'd like to do that engineering and say here""" start="01:02:12.800" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it is you know it's like if you want to""" start="01:02:16.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""configure it and make it your own,""" start="01:02:18.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you can do it. But there is a default""" start="01:02:20.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""configuration that handles all the typical""" start="01:02:23.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""use cases and you can just load it up and run""" start="01:02:26.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""because it's made to use,""" start="01:02:30.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you don't have to hack it to make it useful""" start="01:02:32.840" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for you.""" start="01:02:36.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: Yeah, it reminds me of the discussion we had""" start="01:02:37.900" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""with Stéphane yesterday about sane defaults.""" start="01:02:40.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And I think the question was,""" start="01:02:43.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Emacs should probably ship with sane defaults""" start="01:02:46.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""for people. And Stéphane's answer was,""" start="01:02:49.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well, my sane defaults might not be the same""" start="01:02:51.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""thing as your sane defaults.""" start="01:02:53.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And that's why I think it's important,""" start="01:02:55.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""really, to have a core set of features,""" start="01:02:57.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""be it with hyperbole of org mode,""" start="01:02:59.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""that is well-documented,""" start="01:03:01.360" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""as you mentioned. But what I like about this""" start="01:03:02.880" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in a way, and I think hyperbole is perhaps""" start="01:03:05.460" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""taking more benefits of this than Org Mode,""" start="01:03:07.260" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is that the self-documentation aspect of it""" start="01:03:09.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""feels like it's easier with hyperbole because""" start="01:03:12.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you're not bound by Org Mode buffers.""" start="01:03:14.540" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You can link to just about everything.""" start="01:03:17.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""And for me, this ability to self-document is,""" start="01:03:19.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""well, first, very true to the philosophy of""" start="01:03:24.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Emacs in the first place,""" start="01:03:26.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""but also opens up those resonance cycles""" start="01:03:27.500" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""where, oh, you get interested and then you""" start="01:03:32.020" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""start reading up and then the documentation""" start="01:03:34.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""is so good that it feeds into your practice""" start="01:03:35.820" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""and then it goes nuclear and you gain so much""" start="01:03:38.320" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""knowledge as a result of this.""" start="01:03:41.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""All right, Bob, we are about out of time.""" start="01:03:42.620" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""We only have about 1 minute until we go to""" start="01:03:44.480" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the next talk. Do you have any passing words?""" start="01:03:46.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: I do. I think, you know,""" start="01:03:50.180" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""the world's complex, it's getting more""" start="01:03:54.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""complex. I think that's why people use Emacs""" start="01:03:57.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""in the first place, because it's a big""" start="01:04:00.520" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""system. You wouldn't use it unless you wanted""" start="01:04:02.560" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it to simplify your life.""" start="01:04:04.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Hyperbole is built with the same idea in""" start="01:04:07.580" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""mind. You may not get it just like Lisp.""" start="01:04:10.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""A lot of people don't understand when they""" start="01:04:13.740" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""first encounter it, but when they do""" start="01:04:15.720" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""understand it, they're blown away.""" start="01:04:17.420" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""It changes their life.""" start="01:04:19.960" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""You know, when you really understand implicit""" start="01:04:22.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""buttons, I think that's 1 of the things in""" start="01:04:25.120" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""hyperbole that can change your Emacs working""" start="01:04:28.100" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""life. So just give that a try and I think""" start="01:04:30.860" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you'll be pleasantly surprised across time.""" start="01:04:34.080" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: you so much Bob. We'll be moving on to the""" start="01:04:39.220" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""next talk in about 20 seconds so everyone see""" start="01:04:40.920" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""you in a bit and Bob thank you so much again.""" start="01:04:42.980" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Thanks very much. And thank Thank you.""" start="01:04:37.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: All right I think we are off here now.""" start="01:04:51.140" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""So thank you so much, Bob.""" start="01:04:53.040" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm going to need to step out and get ready""" start="01:04:53.940" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: Yeah, do your thing. You do a great job at""" start="01:04:56.609" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""it. But I wanted to ask you where in London""" start="01:04:59.240" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: for the next talk. I'm not in London,""" start="01:04:55.440" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""I'm in France, and I just moved to London.""" start="01:05:05.280" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 0]: you are. Oh, okay, got it.""" start="01:05:01.760" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Sorry, I thought you were.""" start="01:05:11.200" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Take care.""" start="01:05:13.000" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""[Speaker 1]: All right, bye-bye, Bob.""" start="01:05:14.340" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Thanks a lot. Bye-bye.""" start="01:05:15.060" video="mainVideo-hyperamp" id="subtitle"]] +[[!template text="""Bye-bye.""" start="01:05:15.750" video="mainVideo-hyperamp" id="subtitle"]] + Questions or comments? Please e-mail [rsw@gnu.org](mailto:rsw@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperamp%3A%20Top%2010%20ways%20Hyperbole%20amps%20up%20Emacs) diff --git a/2023/info/hyperamp-before.md b/2023/info/hyperamp-before.md index 91fe150a..12a070f0 100644 --- a/2023/info/hyperamp-before.md +++ b/2023/info/hyperamp-before.md @@ -9,10 +9,10 @@ Status: TO_REVIEW_QA # Talk -<div class="vid"><video controls preload="none" id="hyperamp-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:05:16 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/4Cpb89zHKgQjob3gHUs73C">View on Toobnix</a></li></ul></div></div> +<div class="vid"><video controls preload="none" id="hyperamp-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:05:16 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/4Cpb89zHKgQjob3gHUs73C">View on Toobnix</a></li></ul></div></div> # Q&A -<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li></ul></div></div> +<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/koutline-before.md b/2023/info/koutline-before.md index b87e7db8..f6b7cc81 100644 --- a/2023/info/koutline-before.md +++ b/2023/info/koutline-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 7-min talk; Q&A: IRC +Format: 7-min talk; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings diff --git a/2023/info/sat-close-after.md b/2023/info/sat-close-after.md index 83d8cb65..a40a2ed3 100644 --- a/2023/info/sat-close-after.md +++ b/2023/info/sat-close-after.md @@ -1,6 +1,177 @@ <!-- Automatically generated by emacsconf-publish-after-page --> +<a name="sat-close-mainVideo-transcript"></a> +# Transcript (unedited) + +[[!template text="""[Speaker 0]: Session is being recorded.""" start="00:00:05.200" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Just waiting for Corwin and Leo.""" start="00:00:06.819" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Great. Corwin, would you like to share your""" start="00:00:16.359" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""screen?""" start="00:00:17.960" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Let's see the audio through BBB so we don't""" start="00:00:37.620" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""have to splice it in afterwards because it's""" start="00:00:39.840" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""annoying to splice things.""" start="00:00:41.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I mean, Leo will be taking care of it,""" start="00:00:43.680" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""not me, so. Okay, he's going to finish up.""" start="00:00:47.020" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: So, in the meantime, it's been a long day,""" start="00:00:52.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""people. Thanks for sticking around.""" start="00:00:55.320" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""And we're going to do a little bit of jazz""" start="00:00:57.180" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""handing until Corwin comes back.""" start="00:00:58.739" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Smack. I""" start="00:01:00.060" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 2]: can't imagine an Emacs con without getting to""" start="00:01:14.240" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""enjoy Leo's famous jazz hands.""" start="00:01:16.020" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: I can tell you it's a lot easier...""" start="00:01:21.420" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Hello? I can tell you it's a lot easier to do""" start="00:01:23.160" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""jazz hands at 9am EST than it is at 5pm EST,""" start="00:01:25.760" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""because for me it's 11 and I've barely seen""" start="00:01:30.860" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""this 1 today. Okay Corwin,""" start="00:01:34.160" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""do you have a presentation right now?""" start="00:01:39.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""We do not seem to be able to hear you,""" start="00:01:45.480" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Corwin. Okay, just bear with us,""" start="00:01:47.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""folks. We're gonna figure out this 1.""" start="00:01:55.240" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""This is the last bug of the day,""" start="00:01:57.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""and then we're clear until tomorrow.""" start="00:01:58.660" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 2]: I just heard you, but I don't know if it was""" start="00:02:05.820" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""here or via mumble. Okay.""" start="00:02:07.700" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Can we figure out? Whenever there's a problem""" start="00:02:14.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""like this, like Sash and myself are furiously""" start="00:02:17.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""typing in the background,""" start="00:02:19.460" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""we say, oh, can we fix this slide?""" start="00:02:20.640" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""But here, I'm stumped.""" start="00:02:22.740" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 2]: I think Corbin is in the GenTrack on Mumble.""" start="00:02:33.180" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Okay, so let's all switch to GenTrack and""" start="00:02:40.520" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""we'll be able to figure out the way.""" start="00:02:43.780" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 0]: Okay, well, while Corwin figures out how to""" start="00:03:18.420" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""get started, we might as well maybe do a""" start="00:03:21.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""little bit of closing remarks,""" start="00:03:23.940" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""and then you can jump in whenever you want.""" start="00:03:25.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Sounds good to me.""" start="00:03:29.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 0]: Okay. Thank you, everyone,""" start="00:03:31.980" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""for coming to Emacs Conf 2023.""" start="00:03:34.459" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""We made it to the end of the first day!""" start="00:03:37.120" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Hooray! We're going to keep these closing""" start="00:03:39.140" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""remarks short because it's a long day.""" start="00:03:40.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""It's almost midnight and Leah will turn into""" start="00:03:42.880" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""a pumpkin very soon. So before that happens,""" start="00:03:44.920" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""we just want to say hello and thanks.""" start="00:03:48.580" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""And pre-recorded talks are already up.""" start="00:03:50.640" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""They're on the talk pages,""" start="00:03:55.260" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""they're on media.emaxcontent.org.""" start="00:03:56.520" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""We'll work on extracting the live talks,""" start="00:03:58.860" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""but it'll take a few weeks.""" start="00:04:00.620" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 3]: Maybe, you""" start="00:04:01.920" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 0]: know, we'll see how it goes.""" start="00:04:02.220" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Please feel free to spread the word,""" start="00:04:04.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""because you know some people didn't actually""" start="00:04:06.100" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""know there was EmacsConf this weekend,""" start="00:04:07.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""so let them know, because it's a lot of fun.""" start="00:04:09.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""More talks tomorrow. And if you've got ideas""" start="00:04:11.400" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""for making things better,""" start="00:04:15.020" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""or If you'd like to tell us what's working""" start="00:04:15.900" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""well and what you'd like,""" start="00:04:17.500" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""please put them in the conference pad at""" start="00:04:18.940" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""pad.emaxconf.org. Anything anyone want to""" start="00:04:21.180" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""add?""" start="00:04:26.580" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: I'm all good.""" start="00:04:30.060" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 2]: Let's see if Corwin can get his mic to work.""" start="00:04:32.900" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""No, it's not.""" start="00:04:37.740" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Well, I mean, did you want to say something""" start="00:04:43.520" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""as well? Because people have heard you talk""" start="00:04:45.140" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""all day long on the Dev track,""" start="00:04:47.220" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""but not on the general track,""" start="00:04:49.120" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""actually. It's the first time they hear you""" start="00:04:50.240" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""today.""" start="00:04:51.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 2]: Right. Oh, well, way to put me on the spot,""" start="00:04:52.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""but more seriously, thanks.""" start="00:04:56.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""So yeah, it's a lot of fun.""" start="00:04:58.040" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""You know, it's, we sort of keep coming back""" start="00:05:00.340" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""every year and doing this conference.""" start="00:05:03.760" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""It's always been fun. And we keep doing it""" start="00:05:06.300" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""thanks to, you know, all the people who""" start="00:05:08.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""submit all these amazing talks with these""" start="00:05:11.320" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""amazing sessions. And of course the audience""" start="00:05:14.600" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""as well. I don't have a lot to say I guess""" start="00:05:16.560" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""for today because I think we're hoping to""" start="00:05:19.940" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""keep it kind of short and sweet.""" start="00:05:21.500" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""So yeah, I think that's about it for me.""" start="00:05:24.400" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I guess we'll maybe wait another minute or so""" start="00:05:25.920" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""to see if Cormen can make it.""" start="00:05:28.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""But yeah, that's all for me.""" start="00:05:30.580" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: All right, great. Speaking of putting people""" start="00:05:34.820" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""on the spot, you might see a face in the room""" start="00:05:37.920" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""that you might have seen last year,""" start="00:05:41.600" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""but we've got Flobby Koda in the room as""" start="00:05:43.840" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""well, who you might not have heard of him but""" start="00:05:45.700" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""he's been doing a lot of the check-ins today""" start="00:05:49.400" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""for most of the speakers and he's been doing""" start="00:05:51.140" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""a wonderful job at it.""" start="00:05:53.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Florian, do you want to say a word if only to""" start="00:05:54.520" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""say you're being put on the spot?""" start="00:05:56.560" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 4]: I have nothing prepared really but I just""" start="00:06:00.620" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""want to thank everybody who could,""" start="00:06:02.840" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""with who I could talk in between.""" start="00:06:05.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""So I had like wonderful 20 to 30 minute talks""" start="00:06:07.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""with every speaker before they get into the""" start="00:06:10.580" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""live Q&A or the live presentation.""" start="00:06:12.900" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Thanks a lot for everybody,""" start="00:06:15.780" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I learned quite a lot and also thank you for""" start="00:06:16.920" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""all of you guys and everyone for having such""" start="00:06:19.640" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""a beautiful experience here.""" start="00:06:22.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Well, thank you. We're glad to have you.""" start="00:06:25.960" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Okay, Sasha, Unless you've got anything else""" start="00:06:29.180" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""to add, and Corwin, have you fixed your""" start="00:06:31.120" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""microphone? Yes, we can hear you Corwin.""" start="00:06:33.880" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Okay, well let's start again.""" start="00:06:38.400" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Let's forget everything you've heard for the""" start="00:06:39.160" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""last 20 minutes. We'll start again.""" start="00:06:40.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I'm just kidding.""" start="00:06:41.640" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 3]: You tell me. No, I mean,""" start="00:06:35.280" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I don't know what I could possibly add to all""" start="00:06:45.560" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""that. I think we absolutely should get some""" start="00:06:47.760" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""rest, save it for tomorrow.""" start="00:06:50.200" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I was just looking through these notes in the""" start="00:06:52.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""couple of minutes that I had between my own""" start="00:06:55.240" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""talk. Thank you for your help with that.""" start="00:06:57.480" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""But also, especially you,""" start="00:07:00.720" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Sasha, and Leo, and everybody in the IRC over""" start="00:07:02.420" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""the months here, just encouraging me to keep""" start="00:07:08.040" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""going when it was just seemed futile.""" start="00:07:10.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Even though it just really turned into a""" start="00:07:13.580" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""brain dump, I appreciate getting the chance""" start="00:07:15.780" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""of feeling like that process is more""" start="00:07:18.120" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""documented now than it was before I did it.""" start="00:07:20.320" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Hey, that's not nothing,""" start="00:07:22.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""right? And that's why we all do this.""" start="00:07:23.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""And I don't know, Floey really said it""" start="00:07:25.440" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""perfect. Like, I appreciate the chance to get""" start="00:07:28.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""to work on this with you.""" start="00:07:30.520" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I learned so much.""" start="00:07:31.560" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: Amazing. Well, you know what?""" start="00:07:36.400" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Without further ado, I believe it's time for""" start="00:07:39.020" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""us to say goodbye for day 1.""" start="00:07:41.380" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""We will obviously be seeing you tomorrow at 9""" start="00:07:42.840" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""a.m. I think the schedule is actually stating""" start="00:07:45.340" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""we're starting at 8.59am.""" start="00:07:48.740" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Is it correct?""" start="00:07:50.500" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 0]: Yes, I think the chrono tab will kick in.""" start="00:07:51.220" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""The video is like 6 minutes long.""" start="00:07:54.020" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Actually, maybe I should,""" start="00:07:57.620" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I'll give it an extra minute for safety,""" start="00:07:58.660" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""I think. Yeah, yeah. I'll tweak the timing.""" start="00:08:00.660" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 1]: I think that'd be wise for people we do not""" start="00:08:04.340" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""know basically 8.59 is when I brush my teeth""" start="00:08:06.420" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""before going live so we might be in a very""" start="00:08:08.460" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""awkward spot for me to introduce the talk if""" start="00:08:10.680" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""it happens. Well anyway folks thank you very""" start="00:08:12.740" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""much for watching and we'll see you tomorrow.""" start="00:08:15.420" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""Bye-bye! All right, I have closed the bbb oh""" start="00:08:19.360" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""it's restarting apparently oh it's we're back""" start="00:08:31.320" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""on the q and a between stephan and let's""" start="00:08:34.780" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""close this hey we are off""" start="00:08:37.480" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""[Speaker 3]: we are clear I am pausing the recording I""" start="00:08:44.700" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""don't have permission to do that in this""" start="00:08:52.540" video="mainVideo-sat-close" id="subtitle"]] +[[!template text="""room.""" start="00:08:54.280" video="mainVideo-sat-close" id="subtitle"]] + Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks) diff --git a/2023/info/sat-close-before.md b/2023/info/sat-close-before.md index 7b3e504a..d44b5b4b 100644 --- a/2023/info/sat-close-before.md +++ b/2023/info/sat-close-before.md @@ -9,10 +9,10 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="sat-close-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:00 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li><li><a href="https://www.youtube.com/playlist?list=PLomc4HLgvuCUdrW3JkugtKv8xPelUoOyP">View on Toobnix</a></li></ul></div></div> +<div class="vid"><video controls preload="none" id="sat-close-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:00 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li><li><a href="https://www.youtube.com/playlist?list=PLomc4HLgvuCUdrW3JkugtKv8xPelUoOyP">View on Toobnix</a></li></ul></div></div> # Q&A -<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li></ul></div></div> +<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/unentangling-after.md b/2023/info/unentangling-after.md index 6d11c30e..f6e4924f 100644 --- a/2023/info/unentangling-after.md +++ b/2023/info/unentangling-after.md @@ -4,196 +4,268 @@ <a name="unentangling-mainVideo-transcript"></a> # Transcript (unedited) -[[!template text="""Hello, I'm Alexey Bochkarev, and I'm talking about""" start="00:00:00.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""unentangling projects and repositories,""" start="00:00:04.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""or maybe entangling them, depending on how you look at that.""" start="00:00:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""So that's going to be a short workflow note.""" start="00:00:12.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I work as a researcher,""" start="00:00:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""so there are three main components to my work, I guess.""" start="00:00:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""First, I think, so I try to come up with new ideas,""" start="00:00:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and that usually results in some collection of notes I have.""" start="00:00:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""Second, I try things out, so it usually means that I write code.""" start="00:00:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""And third, I communicate, so I prepare papers,""" start="00:00:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""presentations, memos, and so on and so forth.""" start="00:00:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""And so the workflow problem I had is""" start="00:00:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""sometimes all this does not really fit""" start="00:00:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""into a concept of a single repository per project,""" start="00:00:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""so I might want to have, for example,""" start="00:00:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""a source code in one repository, and then I would like to have a paper""" start="00:00:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""in another one, and then I want to have a collection of notes somewhere""" start="00:01:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""unrelated to those two. And yeah,""" start="00:01:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""Emacs is pretty good at supporting your workflows, and I figured I should""" start="00:01:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""share what I use and what works for me.""" start="00:01:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""So,""" start="00:01:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""from the technical perspective, things are""" start="00:01:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""pretty easy, so I use a collection of pretty standard components""" start="00:01:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""of Emacs, so it's a projectile org-mode with its capture templates and other""" start="00:01:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""things. Then I sustain a collection of notes in something""" start="00:01:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that is called org-roam, which is, well, essentially, it's a glorified""" start="00:01:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""collection of org-mode files. Then I use directory""" start="00:01:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""local variables, maybe a ctext to jump through the source code,""" start="00:01:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and very, very little Elisp glue to make this""" start="00:01:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""all work, but that's not really rocket science.""" start="00:01:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""So that's the workflow I would like to talk about today.""" start="00:01:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""So, what I mean by all that,""" start="00:02:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""it's pretty straightforward to make""" start="00:02:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""it easy to jump around a single repository in Emacs.""" start="00:02:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""Now, I have Doom Emacs, but that's not really specific to Doom.""" start="00:02:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""That'll work in any Emacs configuration.""" start="00:02:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""Well, kbindings might be""" start="00:02:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""different, but that's not the point, I guess, for the workflow. So, if I hit space""" start="00:02:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""two times, I have all the list of files within my project.""" start="00:02:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""So, if I create a couple of custom shortcuts,""" start="00:02:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""so if I press a magic button,""" start="00:02:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""hyperlp, don't worry about hyperkey, so I want it to have a""" start="00:02:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""modifier key all to myself, so that would, no program""" start="00:02:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""on my computer would use that except Emacs, and Emacs would""" start="00:02:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""use that only when I tell it to, so I have a hyperkey instead of caps lock, that's pretty easy""" start="00:02:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to do in GNU Linux system. So,""" start="00:02:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""when I press this magic keys, I have a menu that's a normal""" start="00:03:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""kbinding, yeah, essentially in Emacs, and""" start="00:03:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""if I hit, for example, R, I end up in a readme file within""" start="00:03:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""this specific repository I was sitting in, right, so if I want to document something""" start="00:03:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""real quick, I go to the readme file. Then I could have, I could""" start="00:03:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""go to a changelog file, right, so I have a list of changes""" start="00:03:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and the way it works, usually, for example, if I'm working on some code,""" start="00:03:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I created a couple of dummy files in there, so""" start="00:03:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I'm working on some code, and then I implemented something, and I can""" start="00:03:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""just use the org mode capture""" start="00:03:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""mechanisms to keep track of what""" start="00:03:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I want to discuss with colleagues next time, for example, I could just hit""" start="00:03:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""capture repo specific changelog entry""" start="00:03:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and I implemented a feature""" start="00:03:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and I can continue working""" start="00:03:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""without this context switching, and then if I want to go to the changelog,""" start="00:04:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""well, it is there, and next time I talk""" start="00:04:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to the colleagues about the source code, I can open the changelog and go through entries one by one""" start="00:04:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and discuss what I have implemented last time.""" start="00:04:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I could go to project specific""" start="00:04:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to, sorry, to repo specific to-do list, and I have""" start="00:04:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""a list of to-dos that would live within a repository, and""" start="00:04:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""for example, I could have a high-level structure here,""" start="00:04:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""work distribution between team members and other things that sort of face""" start="00:04:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""the world, so to speak, and of course,""" start="00:04:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""there are very many ways to jump through the source code conveniently,""" start="00:04:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I ended up not using language servers, I used a special program called""" start="00:04:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""ctags, and so the way it works is just I call""" start="00:04:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""projectile regenerate tags, and it creates the special""" start="00:04:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""tags file within the repository,""" start="00:04:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and then I can, again, run""" start="00:05:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I usually just hit a single keystroke,""" start="00:05:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and here is all the symbols that are there in my""" start="00:05:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""source code, regardless of the language, right, so I can jump to the main function""" start="00:05:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and that'll be a C++ file, or I could go to the super function, which I""" start="00:05:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""had in my Python file, and this comes in pretty convenient if I have""" start="00:05:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""a mixture of languages, so sometimes I can have some algorithm-specific code""" start="00:05:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""in Julia, and then I can have some Python glue within the same""" start="00:05:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""source code repository, and it makes it really convenient to jump""" start="00:05:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""between all of those, right,""" start="00:05:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""but I have a few problems here,""" start="00:05:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""just to give you a little bit of context, for example, here is the""" start="00:05:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""a real project that corresponds to a real paper,""" start="00:05:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I have a single note about that project,""" start="00:05:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""where I keep all the things related to that project here, but that's a private""" start="00:05:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""note, so for example, again, I hit a special key that""" start="00:06:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""invokes my org-roam function that gives me a menu of my""" start="00:06:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""notes, and so here is the paper,""" start="00:06:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""essentially, and I can have a paper timeline, and I can""" start="00:06:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""have a list of all the dates, what happened to the paper, with links""" start="00:06:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to my email, right, so for example, if I hit this link,""" start="00:06:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that'll open a specific email, and that doesn't work outside of my""" start="00:06:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""computer, it doesn't make any sense to keep it in the outer world-facing""" start="00:06:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""repository, for example, so that's something to myself, right, sometimes I want""" start="00:06:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to have, like, this list of""" start="00:06:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""working notes, right, that contain, like, for example,""" start="00:06:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I might produce this kind of things for internal discussion, right,""" start="00:06:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""it has some marks, it has some margin notes, and things like that,""" start="00:06:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""maybe, again, health-based ideas that may or may not end up""" start="00:06:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""in a repository, in a final paper, or in a source code,""" start="00:06:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""but still I want to have it somewhere, and""" start="00:07:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""well, long story short, I need a project folder""" start="00:07:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that would be unrelated to the source code, or""" start="00:07:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to the source code repository, or to the paper itself,""" start="00:07:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""or a final report, right, and one way,""" start="00:07:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""as usual, there are multiple ways to achieve that, I suppose, and one way to do that""" start="00:07:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""is, so, I create""" start="00:07:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""a special folder within my org-roam""" start="00:07:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""storage, so it's a special folder outside of any""" start="00:07:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""repositories that got backed up to my hard drive, with""" start="00:07:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""certain redundancy, but I don't really need, like, version control, full-blown""" start="00:07:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""version control for that, I'm okay with just having a couple of backups, right, so""" start="00:07:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""this is the folder you see here, so pkb stands for personal knowledge""" start="00:07:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""base, and I have a folder, project notes in there, right, so""" start="00:07:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and, how does it work, so I have a""" start="00:07:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""folder per project in there, essentially, and here I can""" start="00:08:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""have all the stuff that is, that kind of belongs to me, and I""" start="00:08:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""do not publish it anywhere, and then""" start="00:08:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""for example, a source code""" start="00:08:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""repository knows about that folder, and a paper repository""" start="00:08:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""knows about that folder, and anything else that might live in separate""" start="00:08:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""places all over my system can know about that folder, and how do I achieve that,""" start="00:08:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""well, essentially, this is one of the use cases for the directory""" start="00:08:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""local variables, right, so, for example,""" start="00:08:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""how does it work from the user perspective, so if I hit a special""" start="00:08:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""key, oh, sorry, if I hit a special key""" start="00:08:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that would be open project""" start="00:08:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and then, for example,""" start="00:08:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""org mode file, right, so this is my personal notes about the emacs conf, not""" start="00:08:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""specifically about this very talk, but I can have, you know,""" start="00:08:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""half-baked ideas here, again, presentation tools, and things like that,""" start="00:09:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and how does that happen if we try to""" start="00:09:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""look at the code, the elisp magic here, what""" start="00:09:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""is happening is, it's just a couple lines of code, in fact, so""" start="00:09:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""let me just press control, help""" start="00:09:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""key, and so the key I was""" start="00:09:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""pressing is open project org mode file, and so""" start="00:09:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""what we see here, there is a single, so it's just a call to a find""" start="00:09:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""file function, so I open that file, and there is a special function that""" start="00:09:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""figures out what is the, like, umbrella""" start="00:09:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""project notes file, and that's, again, that's very easy, so""" start="00:09:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""essentially, if a variable describing this""" start="00:09:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""the name for that project is defined, then""" start="00:09:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I use that as my project folder name, if not, I take the project name from the""" start="00:09:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""project towel, and well, that's pretty much it,""" start="00:09:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and how do I define this""" start="00:10:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""variable is, essentially, there is this""" start="00:10:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""magical file in a folder called dear locals elisp,""" start="00:10:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and I just put it there, and then, whenever I""" start="00:10:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""go into that folder, or any of its children folders, I get this""" start="00:10:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""variable defined, and that's pretty much it, that's how""" start="00:10:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""it works for me.""" start="00:10:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I guess one thing that I wanted to emphasize""" start="00:10:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""specifically about that is, of course, it's""" start="00:10:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""time tracking, right, so what I find especially important when I work in""" start="00:10:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""something, and I want to clock time, I usually do not want""" start="00:10:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""this information to be in a source code repository or in a paper repository""" start="00:10:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""because other people I work with will not be particularly happy about that""" start="00:10:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""especially if most of them do not use Emacs, and they will see""" start="00:10:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""this long list of org clocked data, and that doesn't look""" start="00:10:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""nice in a plain text format, so what I usually""" start="00:11:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""do if I want to clock in some time, and then later analyze what I've""" start="00:11:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""been spending time on, so I go to my org mode file""" start="00:11:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and I go to my current project""" start="00:11:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to-dos, and I clock in there, and that's""" start="00:11:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""how it works, so again""" start="00:11:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""what comes in handy if I hit ctrl-o, I just go""" start="00:11:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""back to the file I jumped from, so that's also""" start="00:11:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""pretty handy, so again, no rocket science in there""" start="00:11:35.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""so I create a directory local variable that helps me""" start="00:11:39.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""to figure out what umbrella project does""" start="00:11:43.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""this particular folder belongs to, and this way""" start="00:11:47.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""I make Emacs aware of, for example, facts like so this""" start="00:11:51.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""source code belongs to that project, and this repository with the paper""" start="00:11:55.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""also belongs to that project, and I can have capture templates""" start="00:11:59.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that would save my notes into my private notes""" start="00:12:03.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""file, and my to-dos go to my private note files""" start="00:12:07.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""and so on and so forth, so I find it pretty simple, but""" start="00:12:11.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""that really helps to reduce this context""" start="00:12:15.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""switching, and I don't believe it allows me to save time""" start="00:12:19.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""but that probably helps me to stay focused, and this""" start="00:12:23.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""is what is really important, I believe, so thank you""" start="00:12:27.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""very much, and if you have any comments or suggestions to that, please do jump""" start="00:12:31.000" video="mainVideo-unentangling" id="subtitle"]] -[[!template text="""into the discussion, yeah, after the talk, thank you.""" start="00:12:35.000" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Hello, I'm Alexey Bychkadov,""" start="00:00:01.220" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and I'm talking about unentangling projects""" start="00:00:03.740" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and repositories, or maybe entangling them,""" start="00:00:06.899" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""depending on how you look at that.""" start="00:00:09.679" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So there's going to be a short workflow note.""" start="00:00:12.980" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I work as a researcher,""" start="00:00:16.619" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So there are 3 main components to my work,""" start="00:00:19.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I guess. First, I think,""" start="00:00:23.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so I try to come up with a new ideas that""" start="00:00:26.000" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""usually results in some collection of notes I""" start="00:00:28.140" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""have. Second, I try things out.""" start="00:00:31.580" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So it usually means that I write code.""" start="00:00:33.760" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And third, I communicate.""" start="00:00:36.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I prepare papers, presentations,""" start="00:00:38.739" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""memos, and so on and so forth.""" start="00:00:41.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And so The workflow problem I had is""" start="00:00:44.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""sometimes all this does not really fit into a""" start="00:00:49.160" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""concept of a single repository per project.""" start="00:00:53.000" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I might want to have,""" start="00:00:56.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for example, a source code in 1 repository""" start="00:00:58.180" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and then I would like to have a paper in""" start="00:01:01.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""another 1 and then I want to have a""" start="00:01:03.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""collection of notes somewhere unrelated to""" start="00:01:05.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""those 2. Emacs is pretty good at supporting""" start="00:01:08.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""your workflows and I figured I should share""" start="00:01:12.500" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""what I used and what works for me.""" start="00:01:16.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So, from the technical perspective,""" start="00:01:20.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""things are pretty easy.""" start="00:01:26.479" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I use a collection of pretty standard""" start="00:01:27.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""components of Emacs. So it's a projectile org""" start="00:01:30.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""mode with this capture templates and other""" start="00:01:33.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""things. Then I sustained a collection of""" start="00:01:35.360" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""nodes in something that is called org-roam,""" start="00:01:38.100" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""which is essentially it's a glorified""" start="00:01:40.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""collection of org mode files.""" start="00:01:43.580" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Then I used directory local variables,""" start="00:01:46.100" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""maybe a C text to jump through the source""" start="00:01:48.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""code and very, very little LELisp glue to""" start="00:01:51.140" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""make this all work, but that's not really""" start="00:01:54.920" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""rocket science. So that's the workflow I""" start="00:01:58.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""would like to talk about today.""" start="00:02:00.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So what I mean by all that,""" start="00:02:04.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""it's pretty straightforward to make Emacs,""" start="00:02:07.960" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""to make it easy to jump around a single""" start="00:02:10.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""repository in Emacs. So if I,""" start="00:02:12.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Now I have Doom Emacs,""" start="00:02:15.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""but that's not really specific to a Doom""" start="00:02:16.640" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that'll work in any Emacs configuration.""" start="00:02:19.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Well, key bindings might be different,""" start="00:02:23.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""but that's not the point,""" start="00:02:27.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I guess, for the workflow.""" start="00:02:28.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So if I hit space 2 times,""" start="00:02:30.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I have all the list of files within my""" start="00:02:31.960" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""project, right? So if I create a couple of""" start="00:02:34.640" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""custom shortcuts, so if I press a magic""" start="00:02:38.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""button, hyper-OP, don't worry about""" start="00:02:42.780" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""hyper-key. So I want it to have a modifier""" start="00:02:45.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""key all to myself, so that would,""" start="00:02:47.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""no program on my computer would use that""" start="00:02:50.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""except Emacs. Emacs would use that only when""" start="00:02:53.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I tell it to, so I have a hyper key instead""" start="00:02:55.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""of caps lock. That's pretty easy to do in GNU""" start="00:02:57.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Linux system. So when I press this magic""" start="00:03:00.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""keys, I have a menu that's a normal key""" start="00:03:04.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""binding. Yeah, essentially an Emacs.""" start="00:03:07.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And if I hit, for example,""" start="00:03:10.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""R, I end up in a readme file within this""" start="00:03:12.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""specific repository I was sitting in,""" start="00:03:15.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So if I want to document something""" start="00:03:17.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""real quick, I go to the readme file.""" start="00:03:19.000" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Then I could go to a change log file,""" start="00:03:21.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So I have a list of changes and the""" start="00:03:25.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""way it works usually, for example,""" start="00:03:27.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""if I'm working in some code,""" start="00:03:29.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I created a couple of dummy files in there,""" start="00:03:32.220" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so I'm working in some code and then I""" start="00:03:34.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""implemented something and I can just use the""" start="00:03:36.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""org mode capture mechanisms to keep track of""" start="00:03:42.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""what I want to discuss with colleagues next""" start="00:03:46.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""time. For example, I could just hit capture""" start="00:03:48.880" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""repo specific changelog entry and I""" start="00:03:52.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""implemented a feature and I can continue""" start="00:03:56.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""working without this context switching.""" start="00:04:02.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And then if I want to go to the change log,""" start="00:04:04.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""well, it is there. And next time I talk to""" start="00:04:06.880" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""the colleagues about the source code,""" start="00:04:11.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I can open the change log and go through""" start="00:04:12.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""entries 1 by 1 and discuss what I haven't""" start="00:04:14.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""implemented last time.""" start="00:04:16.800" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I could go to project specific,""" start="00:04:19.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""sorry, to repo specific to-do list.""" start="00:04:24.100" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And I have list of to-dos that would leave""" start="00:04:26.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""within a repository. And for example,""" start="00:04:29.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I could have a high level structure here,""" start="00:04:31.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""work distribution between team members and""" start="00:04:34.640" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""other things that sort of face outer world,""" start="00:04:36.460" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so to speak. And of course,""" start="00:04:39.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""there are very many ways to jump through the""" start="00:04:42.840" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""source code conveniently.""" start="00:04:45.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I ended up not using language servers I use a""" start="00:04:46.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""special program called ctags and so the way""" start="00:04:49.960" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""it works is just I call projectile regenerate""" start="00:04:53.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""tags and it creates the special tags file""" start="00:04:56.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""within the repository and then I can again""" start="00:05:00.460" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""run it I usually just hit a single keystroke""" start="00:05:06.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and here is all the symbols that are there in""" start="00:05:11.520" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""my source code, regardless of the language,""" start="00:05:14.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So I can jump to the main function and""" start="00:05:17.160" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that'll be a C++ file.""" start="00:05:19.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Or I could go to the super function,""" start="00:05:21.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""which I had in my Python file.""" start="00:05:22.740" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And this comes in pretty convenient if I have""" start="00:05:25.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""a mixture of languages.""" start="00:05:27.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Sometimes I can have some algorithm specific""" start="00:05:28.360" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""code in Julia, and then I can have some""" start="00:05:30.800" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Python glue within the same source code""" start="00:05:33.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""repository, it makes it really convenient to""" start="00:05:35.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""jump between all of those.""" start="00:05:39.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""But I have a few problems here.""" start="00:05:43.080" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So just to give you a little bit of context,""" start="00:05:47.360" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for example, here is a real project that""" start="00:05:49.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""corresponds to real paper.""" start="00:05:53.100" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I have a single note about that project where""" start="00:05:55.840" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I keep all the things related to that project""" start="00:05:59.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""here, but that's a private note.""" start="00:06:01.780" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So for example, again,""" start="00:06:03.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I hit a special key that invokes my org-roam""" start="00:06:04.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""function that gives me a menu of my notes.""" start="00:06:08.640" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And so here is the paper,""" start="00:06:13.080" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""essentially. And I can have a paper timeline,""" start="00:06:15.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and I can have a list of all the dates what""" start="00:06:17.900" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""happened to the paper with links to my email,""" start="00:06:21.180" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So for example if I hit this link that""" start="00:06:24.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""will open a specific email and that doesn't""" start="00:06:27.700" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""work outside of my computer,""" start="00:06:30.160" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""doesn't make any sense to keep it in the""" start="00:06:31.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""outer world facing repository,""" start="00:06:33.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for example. So that's something to myself,""" start="00:06:35.500" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? Sometimes I want to have like this""" start="00:06:37.360" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""list of working notes,""" start="00:06:41.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right, that contain like,""" start="00:06:43.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for example, yeah, I might produce this kind""" start="00:06:45.780" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""of things for internal discussion,""" start="00:06:49.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? It has some marks,""" start="00:06:50.640" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""it has some margin notes and things like""" start="00:06:52.500" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that. Maybe again, health-based ideas that""" start="00:06:54.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""may or may not end up in a repository,""" start="00:06:57.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""in the final paper or in a source code,""" start="00:07:01.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""but still I want to have it somewhere.""" start="00:07:03.220" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And well, long story short,""" start="00:07:07.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I need a project folder that would be""" start="00:07:08.800" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""unrelated to the source code or to the source""" start="00:07:11.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""code repository or to the paper itself or a""" start="00:07:16.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""final report, right? And 1 way,""" start="00:07:19.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""as usual, there are multiple ways to achieve""" start="00:07:22.960" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that, I suppose. And 1 way to do that is,""" start="00:07:24.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so I create a special folder within my""" start="00:07:29.040" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""org-roam storage. So it's a special folder""" start="00:07:33.160" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""outside of Henry Postories that got backed up""" start="00:07:38.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""to my hard drive with certain redundancy,""" start="00:07:40.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""but I don't really need like version control,""" start="00:07:44.080" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""full blown version control for that.""" start="00:07:46.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I'm okay with just having a couple of""" start="00:07:48.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""backups, right? So this is the folder you see""" start="00:07:49.760" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""here. So PKB stands for personal knowledge""" start="00:07:52.900" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""base, and I have a folder project notes in""" start="00:07:55.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""there, right? So, and How does it work?""" start="00:07:58.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I have a folder per project in there,""" start="00:08:01.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""essentially. And here I can have all the""" start="00:08:05.020" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""stuff that kind of belongs to me and I do not""" start="00:08:07.900" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""publish it anywhere. And then,""" start="00:08:11.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""For example, a source code repository knows""" start="00:08:15.420" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""about that folder and a paper repository""" start="00:08:20.460" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""knows about that folder.""" start="00:08:23.460" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And anything else that might leave in""" start="00:08:25.120" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""separate places all over my system can know""" start="00:08:26.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""about that folder. How do I achieve that?""" start="00:08:28.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Well, essentially this is 1 of the use cases""" start="00:08:30.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for the directory local variables,""" start="00:08:34.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So for example,""" start="00:08:36.360" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""how does it work from the user perspective?""" start="00:08:39.520" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So if I hit a special key,""" start="00:08:41.580" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""oh, sorry, if I hit a special key,""" start="00:08:44.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that would be open project.""" start="00:08:48.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And then for example, org mode file,""" start="00:08:51.680" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So this is my personal notes about the""" start="00:08:55.920" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""maxconf, not specifically about this very""" start="00:08:58.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""talk, but I can have, you know,""" start="00:09:01.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""the house baked ideas here again,""" start="00:09:02.580" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""presentation tools and things like that.""" start="00:09:04.760" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And how does that happen?""" start="00:09:07.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""If we try to like look at the code,""" start="00:09:09.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""the e-list magic here,""" start="00:09:13.080" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""what is happening is it's just a couple of""" start="00:09:15.040" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""lines of code, in fact,""" start="00:09:17.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so let me just press Control,""" start="00:09:18.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""help key. And so the key I was pressing is""" start="00:09:22.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""open project or my file.""" start="00:09:28.140" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And so what we see here,""" start="00:09:30.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""there is a single, so it's just a call to a""" start="00:09:32.220" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""find file function. So I opened that file and""" start="00:09:34.760" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""there is a special function that figures out""" start="00:09:37.200" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""what is the like umbrella project nose file""" start="00:09:40.580" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and that's, again, that's very easy.""" start="00:09:44.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So essentially if a variable describing this,""" start="00:09:47.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""the name for that project is defined,""" start="00:09:51.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""then I use that as my project folder name.""" start="00:09:54.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""If not, I take the project name from the""" start="00:09:57.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""project tile. Well, that's pretty much it.""" start="00:10:00.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And how do I define this variable?""" start="00:10:03.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Is essentially there is this magical file in""" start="00:10:09.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""a folder called dear locals,""" start="00:10:12.500" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""elist. And I just put it there.""" start="00:10:14.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And then whenever I go into that folder or""" start="00:10:17.440" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""any of its children folders,""" start="00:10:20.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I get this variable defined.""" start="00:10:22.300" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And that's pretty much it.""" start="00:10:24.840" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""That's how it works for me.""" start="00:10:26.280" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""I guess 1 thing that I wanted to emphasize""" start="00:10:31.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""specifically about that is of course,""" start="00:10:35.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""it is a time tracking,""" start="00:10:37.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""right? So what is I find especially important""" start="00:10:39.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""when I work in something and I want to clock""" start="00:10:42.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""time, I usually do not want this information""" start="00:10:44.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""to be in a source code repository or in a""" start="00:10:47.800" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""paper repository because other people I work""" start="00:10:50.340" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""with will not be particularly happy about""" start="00:10:52.600" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""that, especially if most of them do not use""" start="00:10:54.840" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Emacs and they'll see this long list of org""" start="00:10:57.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""clocked data and that doesn't look nice in a""" start="00:11:00.720" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""plain text format. So what I usually do if I""" start="00:11:03.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""want to clock in some time and then later""" start="00:11:07.540" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""analyze what I've been spending time on,""" start="00:11:10.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so I go to my org mode file and I go to the,""" start="00:11:12.560" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""my current project to-dos and I clock in""" start="00:11:16.880" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""there. And that's how it works.""" start="00:11:21.820" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So again, what comes in handy,""" start="00:11:23.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""if I hit Control O, I just go back to the""" start="00:11:28.860" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""file I jumped in into and that's I jumped""" start="00:11:31.500" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""from so that's also pretty handy.""" start="00:11:34.240" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So again no no rocket science in there.""" start="00:11:36.220" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I create a directory local variable that""" start="00:11:40.380" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""helps me to figure out what umbrella project""" start="00:11:42.660" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""does this particular folder belongs to.""" start="00:11:46.620" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And this way I make Emacs aware of,""" start="00:11:49.940" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""for example, facts like,""" start="00:11:53.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""so this source code belongs to that project.""" start="00:11:54.480" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And this paper, this repository with a paper""" start="00:11:56.740" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""also belongs to that project.""" start="00:11:59.180" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And I can have capture templates that would""" start="00:12:01.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""save my notes into the my private notes file""" start="00:12:04.060" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and my to-dos and go to my private note files""" start="00:12:07.800" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""and so on and so forth.""" start="00:12:10.920" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""So I find it pretty simple but that really""" start="00:12:12.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""helps to reduce this context switching.""" start="00:12:15.520" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And I don't believe it allows me to save""" start="00:12:19.600" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""time, but that probably helps me to stay""" start="00:12:22.040" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""focused. And this is what is really""" start="00:12:26.260" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""important, I believe. So thank you very much.""" start="00:12:28.420" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""And if you have any comments or suggestions""" start="00:12:31.400" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""to that, please do jump into the discussion.""" start="00:12:33.320" video="mainVideo-unentangling" id="subtitle"]] +[[!template text="""Yeah, after the talk, thank you.""" start="00:12:37.120" video="mainVideo-unentangling" id="subtitle"]] Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20unentangling%3A%20%28Un%29entangling%20projects%20and%20repos) diff --git a/2023/info/unentangling-before.md b/2023/info/unentangling-before.md index 260c5303..d8a2318c 100644 --- a/2023/info/unentangling-before.md +++ b/2023/info/unentangling-before.md @@ -7,6 +7,6 @@ Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="unentangling-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 12:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/wLxyZBoFAad575Lp4PGyoF">View on Toobnix</a></li></ul></div></div> +<div class="vid"><video controls preload="none" id="unentangling-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 12:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/wLxyZBoFAad575Lp4PGyoF">View on Toobnix</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/organizers-notebook/index.org b/2023/organizers-notebook/index.org index 19da21dd..321e6eea 100644 --- a/2023/organizers-notebook/index.org +++ b/2023/organizers-notebook/index.org @@ -2322,7 +2322,7 @@ Note: Let's see if we can decide on this by [2023-10-13 Fri] so that we can e-mail the draft schedules to people. Compared to [[#draft-schedule][two-track schedule]]: -#+INCLUDE: schedule.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html +#+INCLUDE: schedule.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html What if we have three tracks instead? @@ -2445,7 +2445,7 @@ What if we have three tracks instead? [[file:schedule-option-aligned-talks.svg]] #+end_comment -#+INCLUDE: schedule-option-aligned-talks.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html +#+INCLUDE: schedule-option-aligned-talks.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html *** Three tracks for Sunday morning? :PROPERTIES: :CUSTOM_ID: three-tracks-sun-am @@ -2552,4 +2552,4 @@ What if we have three tracks instead? [[file:schedule-option-sun-am.svg]] #+end_comment -#+INCLUDE: schedule-option-sun-am.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html +#+INCLUDE: schedule-option-sun-am.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html diff --git a/2023/schedule-2023-12-03.md b/2023/schedule-2023-12-03.md index 3ee10f51..eabdc939 100644 --- a/2023/schedule-2023-12-03.md +++ b/2023/schedule-2023-12-03.md @@ -1 +1 @@ -<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <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="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 8:58- 9:04 Sunday opening remarks</title> <rect x="-4" y="15" opacity="0.8" width="9" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(3,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"> <title> 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperamp</text></g></a> <a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"> <title> 9:40-10:00 Using Koutline for stream of thought journaling</title> <rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(91,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> koutline</text></g></a> <a href="/2023/talks/parallel" title="Parallel text replacement" data-slug="parallel"> <title> 10:10-10:25 Parallel text replacement</title> <rect x="109" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(130,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> parallel</text></g></a> <a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"> <title> 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title> <rect x="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eat</text></g></a> <a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"> <title> 11:00-11:20 The browser in a buffer</title> <rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(217,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> poltys</text></g></a> <a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"> <title> 11:35-11:55 Speedcubing in Emacs</title> <rect x="243" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(272,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> cubing</text></g></a> <a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"> <title> 1:00- 1:40 Emacs MultiMedia System (EMMS)</title> <rect x="376" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(436,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emms</text></g></a> <a href="/2023/talks/steno" title="Programming with steno" data-slug="steno"> <title> 1:55- 2:25 Programming with steno</title> <rect x="462" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(507,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> steno</text></g></a> <a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"> <title> 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title> <rect x="525" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(538,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mentor</text></g></a> <a href="/2023/talks/web" title="Emacs saves the Web (maybe)" data-slug="web"> <title> 3:10- 3:40 Emacs saves the Web (maybe)</title> <rect x="580" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(625,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> web</text></g></a> <a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"> <title> 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title> <rect x="650" y="15" opacity="0.8" width="31" 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)"> sharing</text></g></a> <a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:30- 4:40 Sunday closing remarks</title> <rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(718,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"> <title> 10:00-10:20 Bringing joy to Scheme programming</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)"> scheme</text></g></a> <a href="/2023/talks/world" title="GNU Emacs: A World of Possibilities" data-slug="world"> <title> 10:35-10:55 GNU Emacs: A World of Possibilities</title> <rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(178,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> world</text></g></a> <a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"> <title> 11:10-11:20 A modern Emacs look-and-feel without pain</title> <rect x="203" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(216,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> flat</text></g></a> <a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"> <title> 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp</title> <rect x="243" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(272,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsen</text></g></a> <a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"> <title> 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title> <rect x="376" y="75" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(428,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gc</text></g></a> <a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"> <title> 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperdrive</text></g></a> <a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"> <title> 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit</title> <rect x="541" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(562,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspocaml</text></g></a> <a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"> <title> 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole</title> <rect x="588" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(633,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> test</text></g></a> <a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"> <title> 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title> <rect x="658" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(687,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsconf</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></svg></div>
\ No newline at end of file +<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <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="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 8:58- 9:04 Sunday opening remarks</title> <rect x="-4" y="15" opacity="0.8" width="9" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(3,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"> <title> 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperamp</text></g></a> <a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"> <title> 9:40-10:00 Using Koutline for stream of thought journaling</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)"> koutline</text></g></a> <a href="/2023/talks/parallel" title="Parallel text replacement" data-slug="parallel"> <title> 10:10-10:25 Parallel text replacement</title> <rect x="109" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(130,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> parallel</text></g></a> <a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"> <title> 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title> <rect x="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eat</text></g></a> <a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"> <title> 11:00-11:20 The browser in a buffer</title> <rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(217,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> poltys</text></g></a> <a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"> <title> 11:35-11:55 Speedcubing in Emacs</title> <rect x="243" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(272,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> cubing</text></g></a> <a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"> <title> 1:00- 1:40 Emacs MultiMedia System (EMMS)</title> <rect x="376" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(436,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emms</text></g></a> <a href="/2023/talks/steno" title="Programming with steno" data-slug="steno"> <title> 1:55- 2:25 Programming with steno</title> <rect x="462" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(507,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> steno</text></g></a> <a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"> <title> 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title> <rect x="525" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(538,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mentor</text></g></a> <a href="/2023/talks/web" title="Emacs saves the Web (maybe)" data-slug="web"> <title> 3:10- 3:40 Emacs saves the Web (maybe)</title> <rect x="580" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(625,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> web</text></g></a> <a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"> <title> 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title> <rect x="650" y="15" opacity="0.8" width="31" 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)"> sharing</text></g></a> <a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:30- 4:40 Sunday closing remarks</title> <rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(718,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"> <title> 10:00-10:20 Bringing joy to Scheme programming</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)"> scheme</text></g></a> <a href="/2023/talks/world" title="GNU Emacs: A World of Possibilities" data-slug="world"> <title> 10:35-10:55 GNU Emacs: A World of Possibilities</title> <rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(178,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> world</text></g></a> <a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"> <title> 11:10-11:20 A modern Emacs look-and-feel without pain</title> <rect x="203" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(216,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> flat</text></g></a> <a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"> <title> 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp</title> <rect x="243" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(272,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsen</text></g></a> <a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"> <title> 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title> <rect x="376" y="75" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(428,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gc</text></g></a> <a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"> <title> 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperdrive</text></g></a> <a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"> <title> 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit</title> <rect x="541" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(562,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspocaml</text></g></a> <a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"> <title> 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole</title> <rect x="588" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(633,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> test</text></g></a> <a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"> <title> 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title> <rect x="658" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(687,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsconf</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></svg></div>
\ No newline at end of file diff --git a/2023/schedule-details.md b/2023/schedule-details.md index f2b4df38..512a13a5 100644 --- a/2023/schedule-details.md +++ b/2023/schedule-details.md @@ -21,11 +21,11 @@ Jump to: <a href="#date-2023-12-02">Sat Dec 2</a> - <a href="#date-2023-12-03">S [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm">Download --answers.webm (43MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.opus">Download --main.opus (6.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--pad.md">Download --pad.md</a></li>""" title="""How I play TTRPGs in Emacs""" url="""/2023/talks/solo""" speakers="""Howard Abrams""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""solo""" note="""captioned, video posted, video: 14:36, answers: 19:20"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.ogg">Download --main.ogg (7.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--pad.md">Download --pad.md</a></li>""" title="""Org-Mode workflow: informal reference tracking""" url="""/2023/talks/ref""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""ref""" note="""captioned, video posted, video: 15:04"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.json">Download --answers.json (1.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus">Download --answers.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm">Download --answers.webm (69MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm">Download --main.webm (133MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--pad.md">Download --pad.md</a></li>""" title="""Literate Documentation with Emacs and Org Mode""" url="""/2023/talks/doc""" speakers="""Mike Hamrick""" watch="""https://emacsconf.org/2023/watch/dev""" slug="""doc""" note="""captioned, video posted, video: 42:45, answers: 11:00"""]] -[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.md">Download --pad.md</a></li>""" title="""(Un)entangling projects and repos""" url="""/2023/talks/unentangling""" speakers="""Alexey Bochkarev""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""unentangling""" note="""video posted, video: 12:39"""]] +[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--pad.md">Download --pad.md</a></li>""" title="""(Un)entangling projects and repos""" url="""/2023/talks/unentangling""" speakers="""Alexey Bochkarev""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""unentangling""" note="""video posted, video: 12:39"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--pad.md">Download --pad.md</a></li>""" title="""Emacs development updates""" url="""/2023/talks/devel""" speakers="""John Wiegley""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""devel""" note="""video posted, video: 23:22"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus">Download --answers.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--pad.md">Download --pad.md</a></li>""" title="""Windows into Freedom""" url="""/2023/talks/windows""" speakers="""Corwin Brust""" watch="""https://emacsconf.org/2023/watch/dev""" slug="""windows""" note="""video posted, video: 57:48"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.json">Download --main.json (2.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm">Download --main.webm (211MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--pad.md">Download --pad.md</a></li>""" title="""Emacs core development: how it works""" url="""/2023/talks/core""" speakers="""Stefan Kangas""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""core""" note="""video posted, video: 1:07:13"""]] -[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li>""" title="""Saturday closing remarks""" url="""/2023/talks/sat-close""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""sat-close""" note="""video posted, video: 09:00"""]]</div> +[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li>""" title="""Saturday closing remarks""" url="""/2023/talks/sat-close""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""sat-close""" note="""video posted, video: 09:00"""]]</div> Jump to: <a href="#date-2023-12-02">Sat Dec 2</a> - <a href="#date-2023-12-03">Sun Dec 3</a><a name="date-2023-12-03"></a> # Sunday Dec 3, 2023 @@ -33,7 +33,7 @@ Jump to: <a href="#date-2023-12-02">Sat Dec 2</a> - <a href="#date-2023-12-03">S <div class="schedule" data-start="2023-12-03T14:00:00+0000" data-end="2023-12-03T22:30:00+0000" data-tracks="General,Development"> [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--pad.md">Download --pad.md</a></li>""" title="""Sunday opening remarks""" url="""/2023/talks/sun-open""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""sun-open""" note="""captioned, video posted, video: 05:17"""]] -[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li>""" title="""Top 10 ways Hyperbole amps up Emacs""" url="""/2023/talks/hyperamp""" speakers="""Robert Weiner""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""hyperamp""" note="""video posted, video: 1:05:16"""]] +[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li>""" title="""Top 10 ways Hyperbole amps up Emacs""" url="""/2023/talks/hyperamp""" speakers="""Robert Weiner""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""hyperamp""" note="""video posted, video: 1:05:16"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.opus">Download --main.opus (4.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--pad.md">Download --pad.md</a></li>""" title="""Using Koutline for stream of thought journaling""" url="""/2023/talks/koutline""" speakers="""Matthew Jorgensen (PlasmaStrike)""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""koutline""" note="""video posted, video: 06:44"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--answers.opus">Download --answers.opus (5.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--answers.webm">Download --answers.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--pad.md">Download --pad.md</a></li>""" title="""Bringing joy to Scheme programming""" url="""/2023/talks/scheme""" speakers="""Andrew Tropin""" watch="""https://emacsconf.org/2023/watch/dev""" slug="""scheme""" note="""captioned, video posted, video: 21:01"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus">Download --answers.opus (6.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm">Download --answers.webm (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main-vp8.webm">Download --main-vp8.webm (95MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--pad.md">Download --pad.md</a></li>""" title="""Parallel text replacement""" url="""/2023/talks/parallel""" speakers="""Lovro, Valentino Picotti""" watch="""https://emacsconf.org/2023/watch/gen""" slug="""parallel""" note="""captioned, video posted, video: 14:46, answers: 10:16"""]] |