From 3d9dbd0ce9c94f59e1c3d580f64075ff9c2ad834 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 26 Dec 2023 20:44:44 -0500 Subject: add hyperamp captions --- ...bole-amps-up-emacs--robert-weiner--original.vtt | 4625 ++++++++++++++++++++ 2023/organizers-notebook/index.org | 6 +- 2023/talks/hyperamp.md | 7 + 3 files changed, 4635 insertions(+), 3 deletions(-) create mode 100644 2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt diff --git a/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt b/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt new file mode 100644 index 00000000..adc0d11e --- /dev/null +++ b/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt @@ -0,0 +1,4625 @@ +WEBVTT + + +00:00:09.400 --> 00:00:09.519 +[Speaker 0]: 5 seconds. I keep forgetting we have an + +00:00:11.120 --> 00:00:11.620 +introduction now. The introduction is flying. + +00:00:20.560 --> 00:00:20.900 +[Speaker 1]: You're going to give a 30 second, + +00:00:23.820 --> 00:00:24.320 +[Speaker 0]: Well, it's about 5 seconds now. + +00:00:27.900 --> 00:00:28.400 +[Speaker 1]: right? Just say go when you want me to go. + +00:00:30.780 --> 00:00:31.280 +[Speaker 0]: Sure. You'll hear me anyway. + +00:00:31.800 --> 00:00:32.299 +[Speaker 1]: Okay. + +00:00:34.900 --> 00:00:35.220 +[Speaker 0]: All right, I think we are live now. + +00:00:35.800 --> 00:00:36.100 +So hi again, everyone. + +00:00:37.680 --> 00:00:37.900 +I promised you we would be back in about 30 + +00:00:39.440 --> 00:00:39.940 +seconds. I lied, it was actually 1 minute, + +00:00:41.320 --> 00:00:41.760 +but we are here with Bob. + +00:00:42.340 --> 00:00:42.840 +Hi, Bob, how are you doing? + +00:00:46.780 --> 00:00:46.940 +[Speaker 1]: Hi, doing great. Glad to + +00:00:50.220 --> 00:00:50.600 +[Speaker 0]: be with you. Yeah, glad to be here, + +00:00:52.340 --> 00:00:52.580 +and so are we. We're glad to have you again + +00:00:54.280 --> 00:00:54.400 +this year. So what we're going to do, + +00:00:55.920 --> 00:00:56.140 +we're not going to waste any time right now + +00:00:57.739 --> 00:00:57.880 +with chit-chats. What we're going to do, + +00:00:58.940 --> 00:00:59.059 +we're going to move straight into your + +00:01:00.860 --> 00:01:01.120 +presentation, Bob, so that you have as much + +00:01:04.080 --> 00:01:04.239 +time as you can. I'm going to recede into the + +00:01:07.280 --> 00:01:07.440 +background. I am going to full screen your + +00:01:08.479 --> 00:01:08.979 +presentation on a stream. + +00:01:11.180 --> 00:01:11.680 +And Bob, the floor is all yours. + +00:01:14.220 --> 00:01:14.720 +[Speaker 1]: Thank you very much, Leo. + +00:01:18.000 --> 00:01:18.400 +Glad to be here. I hope everybody has an idea + +00:01:22.280 --> 00:01:22.780 +of what Hyperbole is, but it's a broad + +00:01:25.380 --> 00:01:25.880 +information management system inside Emacs + +00:01:28.040 --> 00:01:28.540 +that works in all major modes. + +00:01:31.560 --> 00:01:31.760 +It's a global minor mode that you can turn on + +00:01:34.540 --> 00:01:34.760 +and off very rapidly so that you can just get + +00:01:35.660 --> 00:01:36.160 +in and out of hyperbole. + +00:01:40.440 --> 00:01:40.940 +And it works mostly from a mini buffer menu + +00:01:43.940 --> 00:01:44.040 +that if we just hit ctrl H H we see at the + +00:01:47.220 --> 00:01:47.420 +bottom of the screen here and as you see in + +00:01:48.480 --> 00:01:48.980 +some of this text right here, + +00:01:55.280 --> 00:01:55.680 +Dee will show you a demo with all these video + +00:01:57.180 --> 00:01:57.680 +links of Hyperbole now. + +00:02:01.560 --> 00:02:01.780 +But let's just get into the top 10 reasons to + +00:02:08.340 --> 00:02:08.840 +use Hyperbole. Number 10 is a key series + +00:02:12.100 --> 00:02:12.600 +curly braces. So you just put curly braces + +00:02:17.120 --> 00:02:17.620 +around any set of key sequences that you want + +00:02:22.200 --> 00:02:22.440 +and hyperbole magically turns that into what + +00:02:25.440 --> 00:02:25.640 +we call an implicit button a hyper button and + +00:02:28.340 --> 00:02:28.580 +any kind of text that you have so if we go + +00:02:35.260 --> 00:02:35.760 +down here and we just click click here we see + +00:02:39.720 --> 00:02:40.220 +it that was a complex button that said let's + +00:02:42.700 --> 00:02:43.200 +start a shell, let's set an environment + +00:02:44.960 --> 00:02:45.140 +variable as you see the command right up + +00:02:47.220 --> 00:02:47.420 +there, and then let's do a grep over the + +00:02:50.500 --> 00:02:50.680 +hyperbole code and find all instances of a + +00:02:54.860 --> 00:02:55.360 +particular label. So if we hit made a return, + +00:02:56.760 --> 00:02:57.260 +that's called the action key. + +00:02:59.120 --> 00:02:59.340 +That's what you use throughout hyperbole when + +00:03:01.400 --> 00:03:01.900 +you just want to activate any kind of button. + +00:03:06.200 --> 00:03:06.380 +So you see it jumped to the grep output and + +00:03:08.260 --> 00:03:08.440 +this is in a shell buffer it's not in a + +00:03:10.900 --> 00:03:11.180 +compilation buffer so anywhere that you have + +00:03:13.260 --> 00:03:13.760 +this sort of thing it's also an implicit + +00:03:16.560 --> 00:03:17.040 +button and any sort of grep output or + +00:03:20.280 --> 00:03:20.780 +compiler output you can just jump to with the + +00:03:23.080 --> 00:03:23.580 +same key, made a return. + +00:03:28.740 --> 00:03:29.240 +So that's key series, the first part. + +00:03:33.520 --> 00:03:33.880 +And then just to note that you can also just + +00:03:38.760 --> 00:03:39.000 +do a, well I'll just do it here and show you + +00:03:43.040 --> 00:03:43.380 +that you can do a recursive grep with this + +00:03:45.340 --> 00:03:45.840 +hyperbole command, HYPBR grep. + +00:03:48.500 --> 00:03:49.000 +And if you're in an Emacs list buffer, + +00:03:54.240 --> 00:03:54.740 +it will only grep across the Emacs list. + +00:03:58.100 --> 00:03:58.340 +So a very handy way to just go through your + +00:04:00.600 --> 00:04:01.040 +code very rapidly and then jump to various + +00:04:03.960 --> 00:04:04.280 +points in it. So we have a lot to cover + +00:04:05.600 --> 00:04:05.800 +today, so I'm going to go through this + +00:04:07.060 --> 00:04:07.560 +rapidly. This isn't a tutorial, + +00:04:10.200 --> 00:04:10.340 +it's just to get you interested in some of + +00:04:12.900 --> 00:04:13.060 +the features, and then there's a ton of + +00:04:15.420 --> 00:04:15.920 +reference material and videos now available + +00:04:18.360 --> 00:04:18.860 +for Hyperlink. So let's go to number 9. + +00:04:21.860 --> 00:04:22.360 +Path names become implicit buttons. + +00:04:23.700 --> 00:04:24.060 +You don't even have to quote them. + +00:04:26.460 --> 00:04:26.920 +You can add environment variables or elist + +00:04:28.700 --> 00:04:29.200 +variables with the syntax right here. + +00:04:31.820 --> 00:04:32.180 +So here we have a shell script that's + +00:04:33.000 --> 00:04:33.500 +somewhere on our path. + +00:04:35.940 --> 00:04:36.380 +And notice path is an environment variable + +00:04:39.000 --> 00:04:39.140 +with many different paths within it, + +00:04:42.100 --> 00:04:42.600 +right? But Hyperbole knows that and it + +00:04:44.480 --> 00:04:44.980 +searches the path, gets the first match, + +00:04:48.120 --> 00:04:48.620 +finds it, and finds the actual shell script. + +00:04:49.920 --> 00:04:50.420 +So you can just embed that anywhere. + +00:04:51.660 --> 00:04:52.160 +Here we have a list variable, + +00:04:54.120 --> 00:04:54.360 +hyperbdur, which is the home directory for + +00:04:57.620 --> 00:04:58.120 +hyperbole, and then a markdown file, + +00:05:01.180 --> 00:05:01.680 +and a link to a direct section in the file, + +00:05:04.880 --> 00:05:05.220 +and the 5 colon 5 means go to line 5 within + +00:05:06.760 --> 00:05:07.260 +that section and column 5. + +00:05:08.900 --> 00:05:09.400 +So let's just try it. Boom, + +00:05:11.240 --> 00:05:11.500 +we're right there, and we're on another link + +00:05:12.720 --> 00:05:13.220 +that we could activate as well. + +00:05:17.620 --> 00:05:17.960 +So notice the next line is the same link but + +00:05:20.120 --> 00:05:20.280 +this is how you normally have to do it in a + +00:05:22.680 --> 00:05:23.160 +markdown file. You have to change the section + +00:05:25.480 --> 00:05:25.640 +header to have dashes but with hyperbole you + +00:05:27.620 --> 00:05:28.120 +don't have to. You can just put it exactly + +00:05:29.340 --> 00:05:29.840 +like you see it in your file. + +00:05:34.440 --> 00:05:34.660 +Here the pound syntax for sections is really + +00:05:36.140 --> 00:05:36.640 +a generic syntax in the hyperbole. + +00:05:39.660 --> 00:05:39.840 +And so it works in all different kinds of + +00:05:41.000 --> 00:05:41.500 +files, your programming files. + +00:05:45.040 --> 00:05:45.240 +Here's a shell script and we said let's just + +00:05:48.680 --> 00:05:49.120 +go to the first comment that has alias in it. + +00:05:51.300 --> 00:05:51.700 +Notice we didn't have to say the whole line, + +00:05:52.700 --> 00:05:53.160 +just the first part of it. + +00:05:57.880 --> 00:05:58.140 +And it matched to it. Here we have a link to + +00:06:01.560 --> 00:06:01.680 +our hyperbole structured outliner called the + +00:06:04.160 --> 00:06:04.660 +K Outliner. And you can see it auto-numbers + +00:06:07.560 --> 00:06:08.000 +all these cells. But in addition to just + +00:06:10.280 --> 00:06:10.640 +displaying, you can also add a pipe symbol + +00:06:14.440 --> 00:06:14.900 +near the end and use this view syntax to clip + +00:06:17.160 --> 00:06:17.500 +to 2 lines and show blank lines. + +00:06:19.760 --> 00:06:19.920 +So let's see if each node gets clipped to 2 + +00:06:22.480 --> 00:06:22.680 +lines. So you see they're all just 2 now with + +00:06:24.780 --> 00:06:25.280 +the ellipses and then we can expand them. + +00:06:28.260 --> 00:06:28.760 +So a lot of power there just with path names. + +00:06:30.780 --> 00:06:31.120 +Let's continue to number 8. + +00:06:32.440 --> 00:06:32.940 +[Speaker 0]: Can I just interrupt you just a bit? + +00:06:33.420 --> 00:06:33.920 +[Speaker 1]: Yes. + +00:06:37.540 --> 00:06:37.720 +[Speaker 0]: I think your phone, so we have your phone set + +00:06:39.960 --> 00:06:40.460 +up in case your internet misbehaves and we've + +00:06:41.580 --> 00:06:42.080 +set this up before we started, + +00:06:44.060 --> 00:06:44.380 +but I think the vibration is a little loud + +00:06:46.060 --> 00:06:46.160 +whenever it does. Can you maybe move it a + +00:06:50.020 --> 00:06:50.380 +little bit? I think so. + +00:06:51.380 --> 00:06:51.880 +It will have to vibrate again. + +00:06:53.720 --> 00:06:54.220 +[Speaker 1]: Is that okay? No, my phone... + +00:06:56.380 --> 00:06:56.880 +Okay. It shouldn't have been vibrating. + +00:07:00.760 --> 00:07:01.260 +[Speaker 0]: It might have been another device, + +00:07:02.360 --> 00:07:02.800 +but definitely we had vibration. + +00:07:04.000 --> 00:07:04.500 +Anyway, carry on. Sorry for the interruption. + +00:07:06.420 --> 00:07:06.920 +[Speaker 1]: It could be me. So number 8, + +00:07:10.320 --> 00:07:10.520 +special prefixes. There are 3 prefixes you + +00:07:11.440 --> 00:07:11.820 +can attach to path names. + +00:07:13.180 --> 00:07:13.680 +The first, if you want to load, + +00:07:15.540 --> 00:07:16.040 +instead of just finding a file, + +00:07:18.960 --> 00:07:19.460 +an ELIST file, you can actually load it. + +00:07:21.560 --> 00:07:22.060 +And so I can just hit made a return on this, + +00:07:23.800 --> 00:07:24.300 +and you see in the mini buffer, + +00:07:26.600 --> 00:07:27.100 +it loaded it as compiled e-list. + +00:07:28.840 --> 00:07:29.340 +I could put a .el on here, + +00:07:33.000 --> 00:07:33.500 +a .elc, .gz, all of that'll work, + +00:07:35.920 --> 00:07:36.420 +and just put a dash in front to load it. + +00:07:38.300 --> 00:07:38.720 +If you want to run a shell command, + +00:07:40.900 --> 00:07:41.040 +just put an exclamation mark in front of + +00:07:42.380 --> 00:07:42.540 +something and again you can have the + +00:07:44.340 --> 00:07:44.620 +environment variable. So here we're saying + +00:07:46.720 --> 00:07:47.220 +run the program date and you see, + +00:07:49.540 --> 00:07:50.040 +let's see, let's do it again. + +00:07:53.040 --> 00:07:53.240 +There we go. It ran date and you see the + +00:07:55.320 --> 00:07:55.680 +output right there. And what if you want to + +00:07:57.540 --> 00:07:58.040 +run a graphical program on your system? + +00:08:01.560 --> 00:08:01.760 +Well here, we want to open a PDF file and I'm + +00:08:04.840 --> 00:08:05.340 +just using XDG Open on Linux, + +00:08:09.320 --> 00:08:09.440 +you could use Open on Mac and you just put an + +00:08:12.340 --> 00:08:12.840 +ampersand in front and there's the Hyperbole + +00:08:15.340 --> 00:08:15.840 +manual instantly displayed. + +00:08:18.120 --> 00:08:18.620 +So lots of power there and all of that + +00:08:22.120 --> 00:08:22.360 +actually .pdf's and many other file types are + +00:08:24.860 --> 00:08:25.080 +automatically linked to various programs by + +00:08:27.080 --> 00:08:27.340 +Hyperbole. So you could just use the path + +00:08:29.200 --> 00:08:29.340 +name itself and it would probably behave the + +00:08:33.940 --> 00:08:34.440 +same way. Number 7, bookmarks on steroids. + +00:08:37.059 --> 00:08:37.419 +So Hyperbole gives you a personal button + +00:08:39.840 --> 00:08:40.340 +file, which is on the menu you see here under + +00:08:41.780 --> 00:08:42.280 +button files, and then personal. + +00:08:44.860 --> 00:08:45.360 +So here we'll just display it. + +00:08:47.480 --> 00:08:47.720 +And you can put whatever you want in here, + +00:08:49.360 --> 00:08:49.860 +these implicit buttons of any type. + +00:08:52.460 --> 00:08:52.660 +You can name them the way here and you can + +00:08:55.280 --> 00:08:55.560 +activate either the name with MetaReturn or + +00:08:56.760 --> 00:08:56.920 +the button itself. So, + +00:08:58.900 --> 00:08:59.400 +of course, if we did MetaReturn here, + +00:09:02.720 --> 00:09:03.220 +we'd just display that in a web browser. + +00:09:05.020 --> 00:09:05.520 +I'll just do a few of these. + +00:09:06.760 --> 00:09:07.200 +So here's a section of line. + +00:09:08.080 --> 00:09:08.580 +Let's just jump there. + +00:09:11.100 --> 00:09:11.400 +But these can be all sorts of different + +00:09:12.900 --> 00:09:13.140 +actions that are going on. + +00:09:15.840 --> 00:09:16.040 +And you just, whatever cross references you + +00:09:17.360 --> 00:09:17.840 +want, you put in here. + +00:09:19.900 --> 00:09:20.400 +And the neat thing is that this then becomes + +00:09:22.920 --> 00:09:23.420 +a list of what we call global buttons. + +00:09:26.040 --> 00:09:26.540 +So when I go into the menu and I go control + +00:09:30.140 --> 00:09:30.640 +HHGA to activate a global button, + +00:09:32.800 --> 00:09:33.220 +you can see that all the names from this file + +00:09:35.600 --> 00:09:36.100 +appear here. So only the name buttons appear, + +00:09:39.780 --> 00:09:40.240 +and I could like go to the hyperbole to-do + +00:09:41.760 --> 00:09:42.260 +list and things like that. + +00:09:45.480 --> 00:09:45.660 +So very, very quick access to all your + +00:09:47.080 --> 00:09:47.440 +information whenever you need it. + +00:09:49.440 --> 00:09:49.600 +And that could be an org file as well if you + +00:09:53.000 --> 00:09:53.500 +prefer that. So we just took care of that. + +00:09:56.880 --> 00:09:57.000 +Number 6, instant test case running and + +00:09:58.920 --> 00:09:59.420 +debugging. This is a fairly new feature. + +00:10:02.080 --> 00:10:02.240 +What we're seeing here is a pre-release of + +00:10:04.280 --> 00:10:04.440 +version 9, which should be out within the + +00:10:07.440 --> 00:10:07.560 +next week. But the instructions at the + +00:10:10.460 --> 00:10:10.680 +beginning of the presentation tell you how to + +00:10:13.220 --> 00:10:13.720 +get the development version of HyperBlade, + +00:10:15.060 --> 00:10:15.560 +which is right now 8.01 + +00:10:18.540 --> 00:10:19.040 +pre, but that's virtually the same as what 9 + +00:10:22.560 --> 00:10:23.060 +will be. So you can grab that as of today. + +00:10:27.040 --> 00:10:27.540 +So let's just jump to a test file. + +00:10:29.800 --> 00:10:30.300 +What you see here is called an explicit + +00:10:32.520 --> 00:10:33.020 +button. You can actually make buttons where + +00:10:35.600 --> 00:10:35.820 +similar to org, where you just see a bit of + +00:10:38.000 --> 00:10:38.500 +the button and all of the metadata is hidden. + +00:10:41.800 --> 00:10:42.040 +I can say control A J and I see all about + +00:10:43.740 --> 00:10:43.940 +that button, exactly what it's going to do + +00:10:46.980 --> 00:10:47.200 +before I activate it and even who created it + +00:10:50.580 --> 00:10:50.680 +or last modified it. Then just queue out of + +00:10:52.080 --> 00:10:52.580 +here and you're back where you were. + +00:10:56.320 --> 00:10:56.820 +So now, what this did is link us to an ERT + +00:10:59.440 --> 00:10:59.920 +test. If you write tests in Emacs, + +00:11:01.560 --> 00:11:02.060 +you probably use ERT tests. + +00:11:04.920 --> 00:11:05.220 +So if I hit made a return on here it'll just + +00:11:08.300 --> 00:11:08.520 +run the test tell me it passed great okay but + +00:11:11.320 --> 00:11:11.760 +maybe I had a problem so let me use control + +00:11:16.820 --> 00:11:17.080 +you made a return and that will e-debug the + +00:11:19.720 --> 00:11:20.080 +test instantly. So now I'll step through it + +00:11:21.700 --> 00:11:22.200 +and it says, well, let's, + +00:11:25.400 --> 00:11:25.580 +this single line actually creates that + +00:11:27.440 --> 00:11:27.800 +explicit button. You see we have an empty + +00:11:29.060 --> 00:11:29.480 +buffer here that we're in. + +00:11:31.640 --> 00:11:31.780 +Now I step through that and now there's the + +00:11:33.740 --> 00:11:34.160 +explicit button that got put in there. + +00:11:36.760 --> 00:11:36.940 +Now the next line I step through it and this + +00:11:38.720 --> 00:11:39.160 +is going to check if we have the right action + +00:11:42.040 --> 00:11:42.260 +type and it returns true so that's good and + +00:11:45.060 --> 00:11:45.220 +now we should be it should be associated with + +00:11:48.400 --> 00:11:48.680 +the temp buffer returns true good And that's + +00:11:50.860 --> 00:11:51.360 +why what you saw before is this passed. + +00:11:52.260 --> 00:11:52.760 +The whole thing passed. + +00:11:54.240 --> 00:11:54.740 +So lots of power there. + +00:11:57.380 --> 00:11:57.600 +Simple to use. You're just using your made a + +00:11:58.860 --> 00:11:59.360 +return and prefix arguments. + +00:12:02.980 --> 00:12:03.240 +It's something everybody who develops should + +00:12:07.280 --> 00:12:07.640 +have. So number, let's go on. + +00:12:09.440 --> 00:12:09.720 +I think we're making pretty good time here, + +00:12:10.740 --> 00:12:11.240 +but I turned off my timer. + +00:12:15.540 --> 00:12:15.800 +Let's go to number 5. This is a very new + +00:12:17.160 --> 00:12:17.660 +feature, which is very cool too. + +00:12:19.920 --> 00:12:20.420 +You used to have to use the mouse probably + +00:12:23.680 --> 00:12:23.880 +and you could drag across windows to go from + +00:12:26.580 --> 00:12:26.820 +a source to a referent buffer and that would + +00:12:27.880 --> 00:12:28.340 +create a hyperlink for you. + +00:12:30.600 --> 00:12:30.880 +But now we've installed it and made it even + +00:12:33.640 --> 00:12:34.140 +easier on, we've installed it on a, + +00:12:36.040 --> 00:12:36.540 +on the hyperbole menus. + +00:12:39.680 --> 00:12:40.180 +So let's just go back to our presentation + +00:12:43.340 --> 00:12:43.660 +here and say we want to link to this line + +00:12:45.980 --> 00:12:46.160 +that we're on there. And I'll just create the + +00:12:48.340 --> 00:12:48.480 +button in our scratch buffer here so it + +00:12:50.160 --> 00:12:50.660 +doesn't really mess anything up. + +00:12:53.800 --> 00:12:53.980 +So I just put my point in where I want the + +00:12:56.780 --> 00:12:56.920 +button to appear and then I put point where I + +00:12:59.700 --> 00:13:00.060 +want it to link to in the other the other + +00:13:02.600 --> 00:13:02.800 +buffer and then I just say control HH to get + +00:13:04.760 --> 00:13:05.260 +my menu, I for implicit button, + +00:13:07.440 --> 00:13:07.940 +and then L for link. Boom, + +00:13:09.480 --> 00:13:09.980 +it inserts it, right at point. + +00:13:12.720 --> 00:13:12.880 +What did it do? It knew that this was in the + +00:13:14.900 --> 00:13:15.080 +hyperbole directory and I have a variable for + +00:13:17.600 --> 00:13:17.780 +that, so that if you sent this link to your + +00:13:18.680 --> 00:13:19.180 +friend who uses Hyperbole, + +00:13:21.300 --> 00:13:21.440 +it would still work right because they have a + +00:13:22.360 --> 00:13:22.860 +different hyperbole there. + +00:13:26.880 --> 00:13:27.380 +And then I want to go directly to line 116. + +00:13:29.860 --> 00:13:30.360 +So boom, it just took me there. + +00:13:33.680 --> 00:13:33.900 +So that's it. And Hyperbole is doing all this + +00:13:36.220 --> 00:13:36.420 +for you. You just say I want a link to this + +00:13:38.760 --> 00:13:38.940 +thing and it figures out what's at point and + +00:13:41.920 --> 00:13:42.240 +it determines the right type of implicit link + +00:13:45.360 --> 00:13:45.520 +to put there. And that's the whole point is + +00:13:47.120 --> 00:13:47.320 +that you're just working like when you're + +00:13:50.280 --> 00:13:50.500 +programming or you're writing an article and + +00:13:53.360 --> 00:13:53.520 +you just hit made a return or or pull up a + +00:13:57.040 --> 00:13:57.200 +menu and hit a key binding and you're off to + +00:14:02.220 --> 00:14:02.400 +the races. So that was implicit linking We + +00:14:04.760 --> 00:14:05.260 +can also create those explicit link buttons, + +00:14:07.440 --> 00:14:07.760 +and as well as the global link, + +00:14:09.140 --> 00:14:09.580 +where we would just give it a name, + +00:14:11.380 --> 00:14:11.640 +and it would automatically put it in our + +00:14:14.200 --> 00:14:14.640 +global button file without us even having + +00:14:18.240 --> 00:14:18.380 +that on screen. So lots of power there as + +00:14:19.160 --> 00:14:19.660 +well, lots of consistency. + +00:14:24.860 --> 00:14:25.040 +Now let's take a look at the K Outliner a + +00:14:27.780 --> 00:14:28.040 +little more. I'm just going to show you 1 + +00:14:29.620 --> 00:14:29.820 +feature actually. I don't have time to show + +00:14:31.080 --> 00:14:31.580 +you the K Outliner in detail, + +00:14:33.720 --> 00:14:34.220 +but it's a really cool structured outliner + +00:14:35.900 --> 00:14:36.400 +that even if you love Org Mode, + +00:14:39.060 --> 00:14:39.280 +you should try it. And this is 1 thing that + +00:14:40.560 --> 00:14:41.060 +you can't get with Org Mode, + +00:14:44.620 --> 00:14:45.100 +is let's say Hyperlink comes with an example + +00:14:48.080 --> 00:14:48.580 +file which teaches you about the K Outliner. + +00:14:50.440 --> 00:14:50.940 +So we'll just use that right here. + +00:14:52.540 --> 00:14:53.040 +And when you're in the K Outliner, + +00:14:55.320 --> 00:14:55.820 +you can bring up and go into the K Outliner + +00:14:57.040 --> 00:14:57.540 +menu right here at the bottom. + +00:14:59.920 --> 00:15:00.360 +And there's a format menu there. + +00:15:02.220 --> 00:15:02.600 +You always take the first letter of a menu, + +00:15:04.600 --> 00:15:05.100 +the first capital letter of a menu item. + +00:15:08.540 --> 00:15:08.720 +So F for format and then D for display in + +00:15:11.200 --> 00:15:11.700 +browser. So just let's do it. + +00:15:16.720 --> 00:15:17.220 +We have with 1 button or 1 key we've produced + +00:15:23.160 --> 00:15:23.660 +the entire outline in a collapsible outline + +00:15:25.760 --> 00:15:26.260 +in HTML. So I can go here. + +00:15:28.740 --> 00:15:29.240 +I just have to use my mouse. + +00:15:32.800 --> 00:15:33.300 +So I can expand and collapse these trees live + +00:15:39.020 --> 00:15:39.520 +with very basic coding. + +00:15:42.180 --> 00:15:42.680 +We tried to keep this as simple as possible. + +00:15:45.420 --> 00:15:45.580 +But you see it maintains the structure of the + +00:15:47.380 --> 00:15:47.880 +outline and even tables. + +00:15:57.320 --> 00:15:57.620 +So all the formatting is maintained and again + +00:15:59.960 --> 00:16:00.100 +it's instant. Or you can just export it to a + +00:16:01.420 --> 00:16:01.920 +file without displaying it. + +00:16:05.380 --> 00:16:05.880 +Very efficient kinds of operations. + +00:16:10.760 --> 00:16:10.960 +So that was number 4. Number 3 is a + +00:16:12.900 --> 00:16:13.400 +subsystem, another subsystem in Hyperbole + +00:16:15.920 --> 00:16:16.080 +called Hycontrol, which is for window and + +00:16:18.340 --> 00:16:18.600 +frame management. And I just wanted to show + +00:16:20.760 --> 00:16:20.920 +you 1 thing in there. It's got a lot of + +00:16:23.920 --> 00:16:24.420 +capabilities. But I always had the problem + +00:16:27.840 --> 00:16:28.340 +that Emacs wouldn't let me scale my fonts, + +00:16:30.280 --> 00:16:30.780 +all of my faces at the same time. + +00:16:33.220 --> 00:16:33.680 +I wanted to zoom. I didn't want to increase + +00:16:36.020 --> 00:16:36.260 +the default font size and all the others stay + +00:16:40.160 --> 00:16:40.660 +the same. So let's just display our faces + +00:16:45.040 --> 00:16:45.200 +right here and then we have a choice of + +00:16:47.360 --> 00:16:47.860 +either controlling frames or windows. + +00:16:49.740 --> 00:16:50.240 +So let's start by controlling frames. + +00:16:52.600 --> 00:16:52.760 +So you get another submenu when you're in + +00:16:55.520 --> 00:16:56.020 +high control to tell you what to do here. + +00:16:59.280 --> 00:16:59.480 +And there's just lowercase z and uppercase z. + +00:17:02.980 --> 00:17:03.400 +So let's try it. So it's scaling the entire + +00:17:05.520 --> 00:17:06.020 +frame. And you can see from the list of faces + +00:17:08.000 --> 00:17:08.500 +that they're all scaling at the same time. + +00:17:09.720 --> 00:17:10.220 +And I can go back down. + +00:17:13.280 --> 00:17:13.619 +Now if I switch to window mode, + +00:17:15.839 --> 00:17:16.099 +and there's a special fast way to do that, + +00:17:18.599 --> 00:17:18.819 +just hit T to toggle. And if you look at the + +00:17:21.619 --> 00:17:21.819 +bottom menu it says frames right now now it + +00:17:25.319 --> 00:17:25.599 +says windows when I hit T so now if I do the + +00:17:30.540 --> 00:17:30.640 +same Z to increase it's just this window and + +00:17:36.300 --> 00:17:36.800 +but it's you know it's the faces in there so + +00:17:40.400 --> 00:17:40.680 +a lot of power again but I just haven't found + +00:17:43.080 --> 00:17:43.220 +anywhere else that you can get that kind of + +00:17:45.320 --> 00:17:45.820 +control over your faces very rapidly. + +00:17:51.140 --> 00:17:51.640 +So that's number 3. Now number 2, + +00:17:56.280 --> 00:17:56.780 +let's put that in there. + +00:18:02.980 --> 00:18:03.320 +So the HiROLO is the final subsystem in + +00:18:05.740 --> 00:18:06.240 +Hyperbole and this has gotten much cooler. + +00:18:08.180 --> 00:18:08.680 +So it started off as a contact management + +00:18:11.040 --> 00:18:11.540 +system, but it's really just a hierarchical + +00:18:14.800 --> 00:18:15.060 +record management system that lets you have + +00:18:17.520 --> 00:18:18.020 +as many files, directories as you want, + +00:18:19.860 --> 00:18:20.280 +and you can search across all of them without + +00:18:22.740 --> 00:18:23.240 +any external utilities necessary, + +00:18:25.740 --> 00:18:26.240 +just what's built into Emacs and Hyperlink. + +00:18:29.640 --> 00:18:29.920 +So as you can see, we've expanded it to + +00:18:31.320 --> 00:18:31.820 +handle org files, markdown, + +00:18:34.120 --> 00:18:34.620 +K outlines, Emacs outlines. + +00:18:36.440 --> 00:18:36.820 +So what I'm going to do is just say, + +00:18:40.240 --> 00:18:40.680 +I want to search using my Hyberlo file list. + +00:18:42.920 --> 00:18:43.140 +You just set that to what you wanted to + +00:18:44.640 --> 00:18:44.820 +search. But now you have all this + +00:18:46.020 --> 00:18:46.520 +flexibility. You can use environment + +00:18:48.680 --> 00:18:48.840 +variables in it. You can just specify a + +00:18:50.860 --> 00:18:51.340 +directory and it will find all those matching + +00:18:53.100 --> 00:18:53.600 +files below that directory recursively. + +00:18:58.260 --> 00:18:58.460 +You can give it the markdown file here and + +00:19:00.840 --> 00:19:01.160 +you can use file wildcards as well. + +00:19:04.020 --> 00:19:04.360 +I mean, look at this. It's got a list + +00:19:05.640 --> 00:19:06.140 +variable in it and a wildcard, + +00:19:09.360 --> 00:19:09.840 +and it's just all I'm gonna do is I change + +00:19:13.260 --> 00:19:13.380 +this from a Lisp expression to make it a + +00:19:15.040 --> 00:19:15.380 +hyper button. You just change the outer + +00:19:16.420 --> 00:19:16.920 +parens to angle brackets, + +00:19:19.120 --> 00:19:19.620 +and then it's automatically an implicit + +00:19:22.680 --> 00:19:22.840 +button that you can activate with made a + +00:19:25.840 --> 00:19:26.340 +return so just ran that and now I've set my + +00:19:29.220 --> 00:19:29.480 +file list so now let's do a search it would + +00:19:34.080 --> 00:19:34.580 +be ctrl H H roll it X R and then S for search + +00:19:36.180 --> 00:19:36.680 +But I'll just do it this way. + +00:19:39.820 --> 00:19:40.320 +And boom, it found everything that fast. + +00:19:42.440 --> 00:19:42.940 +And I can just get like, + +00:19:45.140 --> 00:19:45.520 +show the top items in there. + +00:19:47.760 --> 00:19:48.260 +So I kind of have outlining in this buffer. + +00:19:51.440 --> 00:19:51.940 +I can just move to each match that I hit. + +00:19:53.480 --> 00:19:53.680 +And notice, although everything was + +00:19:55.080 --> 00:19:55.580 +collapsed, it's expanding here. + +00:19:58.100 --> 00:19:58.520 +When I move in and out of each of the entry + +00:20:02.220 --> 00:20:02.400 +matches, it expands or collapses as I move to + +00:20:05.740 --> 00:20:06.240 +the next 1. So a lot of power there. + +00:20:09.120 --> 00:20:09.620 +What else? Just tabbing through these things. + +00:20:11.840 --> 00:20:12.120 +And you notice that it's working across all + +00:20:12.840 --> 00:20:13.340 +of these different types. + +00:20:15.720 --> 00:20:16.220 +And it's telling you which file everything + +00:20:17.540 --> 00:20:17.840 +came from right up here. + +00:20:19.440 --> 00:20:19.940 +So I could just made a return here, + +00:20:23.000 --> 00:20:23.500 +should work. Yes, revisit the file normally. + +00:20:25.260 --> 00:20:25.760 +And it just pulls it right up. + +00:20:27.900 --> 00:20:28.400 +So everything is live and hyperbole. + +00:20:29.620 --> 00:20:30.120 +You've got hyperlinks everywhere. + +00:20:33.240 --> 00:20:33.740 +Let's just get rid of that. + +00:20:41.420 --> 00:20:41.600 +Go back to our demo. So if you are fans of + +00:20:46.200 --> 00:20:46.560 +Vertico and Consult, you can now use that + +00:20:49.120 --> 00:20:49.300 +with the High Rollo. So all you have to do is + +00:20:50.940 --> 00:20:51.440 +let's just format our windows, + +00:20:55.400 --> 00:20:55.720 +and then I'll say, let's use ConsultGrep over + +00:20:58.380 --> 00:20:58.880 +the Rolodex. Now, it found all the matches + +00:21:01.560 --> 00:21:02.060 +there, and I can just move live through them + +00:21:04.540 --> 00:21:04.640 +in the buffer like you may be used to or I + +00:21:08.100 --> 00:21:08.600 +can filter back down and say using orderless + +00:21:13.480 --> 00:21:13.700 +joystick or anything that has joy in it just + +00:21:16.940 --> 00:21:17.160 +match to those lines and then I can you know + +00:21:19.680 --> 00:21:20.020 +either jump there or quit out of here. + +00:21:21.580 --> 00:21:22.080 +I'll just quit out of it right now. + +00:21:24.880 --> 00:21:25.240 +So very cool. And all of that is using + +00:21:28.380 --> 00:21:28.640 +whatever you personally set as the set of + +00:21:30.060 --> 00:21:30.560 +files and directories you want to search. + +00:21:35.740 --> 00:21:35.940 +And finally, our number 1 feature of + +00:21:40.120 --> 00:21:40.400 +Hyperbole is you can customize this to give + +00:21:42.960 --> 00:21:43.460 +you these kinds of implicit buttons, + +00:21:45.580 --> 00:21:46.080 +whatever kind you want. + +00:21:48.640 --> 00:21:49.140 +And there are 3 levels of doing this. + +00:21:50.640 --> 00:21:51.140 +The first is for non-programmers. + +00:21:53.180 --> 00:21:53.680 +You can just set a string, + +00:21:56.540 --> 00:21:57.040 +like a URL with a parameter in it. + +00:21:58.940 --> 00:21:59.440 +So the %s represents the parameter, + +00:22:01.240 --> 00:22:01.440 +and This is how you do a search on + +00:22:03.560 --> 00:22:04.060 +DuckDuckGo. So all I have to do is evaluate + +00:22:06.660 --> 00:22:07.160 +this defal for action link. + +00:22:10.520 --> 00:22:11.020 +And now I have a new implicit button type + +00:22:12.900 --> 00:22:13.400 +that I can put between angle brackets. + +00:22:15.080 --> 00:22:15.580 +And I just give it that name, + +00:22:17.500 --> 00:22:18.000 +ddg, and some parameter, + +00:22:19.540 --> 00:22:20.040 +whatever I want to search for, + +00:22:22.540 --> 00:22:23.040 +and this is a button that does that search. + +00:22:28.320 --> 00:22:28.700 +Very cool, right? So you can embed these. + +00:22:30.540 --> 00:22:31.040 +This could be a hyperlink in, + +00:22:34.620 --> 00:22:35.120 +you know, a comment in a programming file. + +00:22:38.040 --> 00:22:38.160 +Anything on the entire web that you want to + +00:22:41.820 --> 00:22:42.320 +link to, whatever kind of compact notation + +00:22:44.600 --> 00:22:44.800 +you want to give it. So that's what we're + +00:22:46.680 --> 00:22:47.140 +going to learn as we get more advanced here + +00:22:48.900 --> 00:22:49.400 +you can give it even more compact notations. + +00:22:51.940 --> 00:22:52.420 +So as you get more advanced you can say, + +00:22:53.760 --> 00:22:54.240 +well I don't like this angle bracket, + +00:22:56.520 --> 00:22:57.020 +I want to have an implicit button that uses + +00:22:59.340 --> 00:22:59.620 +these square brackets and then an angle + +00:23:01.960 --> 00:23:02.080 +bracket inside it. So then you need the + +00:23:04.680 --> 00:23:05.180 +defile for implicit link. + +00:23:08.600 --> 00:23:08.860 +This lets you specify your start and end + +00:23:11.980 --> 00:23:12.180 +delimiters for your new type and and then you + +00:23:14.340 --> 00:23:14.840 +can give it a function that you wanted to run + +00:23:18.120 --> 00:23:18.320 +and that will take the text of whatever is in + +00:23:19.280 --> 00:23:19.780 +the button, in this case, + +00:23:23.560 --> 00:23:23.760 +test release here, and feed it to the + +00:23:25.580 --> 00:23:26.060 +function that I gave here. + +00:23:29.100 --> 00:23:29.540 +So what this function does is grep over my + +00:23:33.260 --> 00:23:33.420 +git log and find any commits that include the + +00:23:34.940 --> 00:23:35.360 +term test release in it. + +00:23:38.000 --> 00:23:38.200 +So let's try it. First I have to add the + +00:23:41.540 --> 00:23:41.740 +button type and that's all it takes and it + +00:23:44.620 --> 00:23:44.800 +defined it now. So anywhere in Emacs now I + +00:23:46.440 --> 00:23:46.940 +can use this button type essentially. + +00:23:48.480 --> 00:23:48.980 +So let me try to activate it. + +00:23:52.260 --> 00:23:52.760 +Okay and it says yeah let's save it. + +00:23:55.440 --> 00:23:55.940 +Okay so now it's running a git log command. + +00:23:59.240 --> 00:23:59.440 +It found all the commits and now of course if + +00:24:02.720 --> 00:24:02.980 +I had made a return on this commit it + +00:24:05.000 --> 00:24:05.500 +recognizes it as an implicit link, + +00:24:08.800 --> 00:24:09.300 +and if I search for what was a test release, + +00:24:11.760 --> 00:24:11.960 +there it is. So this commit had that in + +00:24:13.740 --> 00:24:14.180 +there. So all these matches, + +00:24:16.000 --> 00:24:16.280 +so I don't know how other people do this, + +00:24:19.540 --> 00:24:20.040 +but for me this makes it a lot simpler. + +00:24:24.600 --> 00:24:24.800 +So a lot of power that any programmer can + +00:24:27.100 --> 00:24:27.520 +use. And finally, if you've mastered Emacs + +00:24:28.860 --> 00:24:29.360 +Lisp, or you're starting to, + +00:24:33.480 --> 00:24:33.740 +you can look in the hib types file in + +00:24:36.820 --> 00:24:37.320 +Hyperbole and see all sorts of uses of defib, + +00:24:38.940 --> 00:24:39.440 +which is defined implicit button. + +00:24:42.500 --> 00:24:42.660 +And that's the full power of e-LISP when you + +00:24:44.680 --> 00:24:45.060 +want to define 1. So what we're going to do + +00:24:46.280 --> 00:24:46.780 +here is I wanted to know, + +00:24:49.160 --> 00:24:49.660 +given a date, what the day of the week is. + +00:24:52.660 --> 00:24:53.040 +And because the date primitives weren't quite + +00:24:54.140 --> 00:24:54.640 +written the way I might like, + +00:24:57.040 --> 00:24:57.500 +it's a little longer than some. + +00:24:59.860 --> 00:25:00.360 +But I'm just going to evaluate this list. + +00:25:05.600 --> 00:25:06.100 +And I've now defined DOW as an action type. + +00:25:08.220 --> 00:25:08.520 +Now, how do I know I'm doing that? + +00:25:10.200 --> 00:25:10.700 +So I can always say Control-H, + +00:25:13.440 --> 00:25:13.580 +capital A here to see what a button's going + +00:25:15.360 --> 00:25:15.860 +to do. And it tells me When I'm there, + +00:25:17.640 --> 00:25:18.140 +I'm at a hyperbole button, + +00:25:22.940 --> 00:25:23.440 +and the type is from category DOW. + +00:25:24.920 --> 00:25:25.120 +And what's it gonna do? + +00:25:26.920 --> 00:25:27.420 +It takes a mark, it's gonna do a message + +00:25:29.380 --> 00:25:29.880 +action. Okay, so let's try it. + +00:25:32.320 --> 00:25:32.780 +It tells me that's a date, + +00:25:33.840 --> 00:25:34.220 +and it falls on a Sunday, + +00:25:35.320 --> 00:25:35.820 +which is today. That's correct. + +00:25:38.520 --> 00:25:39.020 +So 2 days from today is a Tuesday. + +00:25:42.960 --> 00:25:43.460 +Beautiful. So we've just totally transformed + +00:25:46.340 --> 00:25:46.840 +what we can do with text. + +00:25:48.400 --> 00:25:48.900 +You notice there's no markup here. + +00:25:53.200 --> 00:25:53.440 +And this is working with all of the other + +00:25:55.440 --> 00:25:55.600 +implicit types that we have everywhere in + +00:25:57.720 --> 00:25:57.920 +Emacs. It's only going to match to this kind + +00:26:00.060 --> 00:26:00.560 +of pattern and anywhere else, + +00:26:02.320 --> 00:26:02.820 +you know, it just won't trigger that type. + +00:26:06.180 --> 00:26:06.440 +So lots of power. You just need to get + +00:26:07.200 --> 00:26:07.700 +started with Hyperbole. + +00:26:10.640 --> 00:26:10.880 +There's great documentation both inside the + +00:26:13.820 --> 00:26:14.060 +code in the manual. There's a fast demo that + +00:26:16.620 --> 00:26:16.880 +you can start with and there's about 10 + +00:26:19.000 --> 00:26:19.500 +different videos. There'll be 3 presentations + +00:26:21.940 --> 00:26:22.440 +on hyperbole here at the conference, + +00:26:26.000 --> 00:26:26.500 +and I hope you've enjoyed this presentation. + +00:26:29.740 --> 00:26:30.040 +I'd love to answer your questions and get + +00:26:31.200 --> 00:26:31.700 +some new users for Hyperbole. + +00:26:35.820 --> 00:26:36.020 +So lastly, I'd like to thank my + +00:26:37.680 --> 00:26:38.040 +co-maintainer, Matt, who's going to speak + +00:26:41.820 --> 00:26:42.040 +later about the extensive test protocols we + +00:26:45.420 --> 00:26:45.920 +have in Hyperbole. Hyperbole works on every + +00:26:47.360 --> 00:26:47.860 +version of Emacs from 27.1 + +00:26:52.180 --> 00:26:52.600 +up, and every operating system and Windows + +00:26:55.960 --> 00:26:56.120 +system that you use. And thanks so much to + +00:26:58.140 --> 00:26:58.640 +the volunteers and the speakers at EmacsConf. + +00:27:01.720 --> 00:27:02.000 +You do a great job, and we're all really + +00:27:04.200 --> 00:27:04.400 +appreciative that you take all the time that + +00:27:05.720 --> 00:27:06.220 +you do to make this happen. + +00:27:07.120 --> 00:27:07.620 +Thank you very much. + +00:27:10.900 --> 00:27:11.400 +[Speaker 0]: And thank you so much Bob. + +00:27:14.540 --> 00:27:14.680 +So I'll let you do the gymnastics to join us + +00:27:15.920 --> 00:27:16.420 +back on BBB and put your webcam. + +00:27:18.340 --> 00:27:18.840 +In the meantime, I'll invite people, + +00:27:20.240 --> 00:27:20.740 +as Sasha told you in the introduction, + +00:27:23.300 --> 00:27:23.600 +to go put your question in the pad. + +00:27:25.680 --> 00:27:25.880 +The link is on the talks page and also on + +00:27:27.720 --> 00:27:28.220 +IRC. So take your time. + +00:27:29.700 --> 00:27:29.900 +We've already got some people who've asked + +00:27:32.860 --> 00:27:33.060 +questions. You can also start joining the + +00:27:34.640 --> 00:27:35.140 +room. Let me just ping Sasha. + +00:27:37.940 --> 00:27:38.440 +Ping to open ID HyperAmp. + +00:27:40.920 --> 00:27:41.120 +So, you'll be able to join us on + +00:27:43.000 --> 00:27:43.260 +BigBlueButton as well to go chat with Bob + +00:27:44.900 --> 00:27:45.040 +more directly. I'm not sure if people have + +00:27:45.980 --> 00:27:46.480 +joined already. Not yet. + +00:27:50.920 --> 00:27:51.060 +So, Bob, what I'll do, + +00:27:51.880 --> 00:27:52.280 +we already have 4 questions. + +00:27:53.920 --> 00:27:54.080 +I'm gonna read them to you and you can take + +00:27:54.720 --> 00:27:54.900 +your time answering them, + +00:27:57.180 --> 00:27:57.340 +but we do have about 7 minutes until we go to + +00:27:58.940 --> 00:27:59.120 +the next talk, so we need to be a little bit + +00:28:00.420 --> 00:28:00.920 +[Speaker 1]: Okay. + +00:28:02.920 --> 00:28:03.240 +[Speaker 0]: chop-chop. All right, so reading the first + +00:28:05.000 --> 00:28:05.460 +questions, and I'm also going to display them + +00:28:06.400 --> 00:28:06.900 +for the stream to see, + +00:28:09.600 --> 00:28:09.760 +do buttons keep their metadata within the + +00:28:12.100 --> 00:28:12.380 +same file? E.g., would I see it if I change + +00:28:13.440 --> 00:28:13.940 +to fundamental mode, for instance? + +00:28:19.060 --> 00:28:19.340 +[Speaker 1]: So all of the things that I was showing you, + +00:28:20.800 --> 00:28:21.300 +implicit buttons have no metadata. + +00:28:23.400 --> 00:28:23.800 +That's the great thing about them, + +00:28:27.140 --> 00:28:27.400 +is you just type them in the buffer and what + +00:28:29.800 --> 00:28:30.020 +you see is all there is to that button and + +00:28:32.800 --> 00:28:33.300 +hyperbole generates all the smarts associated + +00:28:35.280 --> 00:28:35.780 +with them. When you create an explicit + +00:28:38.160 --> 00:28:38.660 +button, which I showed you 1 or 2 examples + +00:28:42.520 --> 00:28:42.720 +of, that metadata is, there is metadata with + +00:28:45.420 --> 00:28:45.860 +that, and that is stored in a separate file + +00:28:47.360 --> 00:28:47.860 +in the same directory called .hypb. + +00:28:51.300 --> 00:28:51.500 +So it's hidden away and it doesn't affect the + +00:28:53.200 --> 00:28:53.700 +format of the buffer that it's in. + +00:28:56.040 --> 00:28:56.540 +So again, what you see is what you get. + +00:28:58.520 --> 00:28:58.740 +You just see the delimiters around the + +00:29:00.640 --> 00:29:01.140 +explicit button and that's it. + +00:29:04.000 --> 00:29:04.500 +So Hyperbole takes care of all that for you. + +00:29:08.080 --> 00:29:08.360 +However, if you embed them into a mail + +00:29:09.200 --> 00:29:09.480 +message, which you can, + +00:29:11.920 --> 00:29:12.180 +you can mail buttons, then there is a hidden + +00:29:14.440 --> 00:29:14.700 +area at the end of the mail message that + +00:29:16.640 --> 00:29:17.120 +encodes the metadata for the explicit + +00:29:17.120 --> 00:29:17.620 +buttons. + +00:29:21.140 --> 00:29:21.640 +[Speaker 0]: Ok, great. Next question. + +00:29:24.060 --> 00:29:24.560 +Is it possible to link to a file by its ID, + +00:29:26.980 --> 00:29:27.340 +like the node, org ID or some similar unique + +00:29:27.620 --> 00:29:28.120 +string inside? + +00:29:32.120 --> 00:29:32.620 +[Speaker 1]: Yes, In fact, that's 1 of the new features in + +00:29:37.640 --> 00:29:37.840 +9. You just made a return on an ID and it + +00:29:40.280 --> 00:29:40.780 +takes you right to the org node, + +00:29:44.760 --> 00:29:44.900 +works with org Rome and org straight out of + +00:29:47.680 --> 00:29:47.900 +the box. We're looking at ways to make it + +00:29:49.640 --> 00:29:50.040 +easier to just insert those in places, + +00:29:52.580 --> 00:29:52.800 +but since you have word keys that do that + +00:29:55.320 --> 00:29:55.600 +already, you can just insert them in any + +00:29:58.180 --> 00:29:58.420 +documents and Hyperbole will recognize them. + +00:30:02.080 --> 00:30:02.580 +I think In some cases you may need to put id + +00:30:04.900 --> 00:30:05.400 +colon in front of the id as well. + +00:30:06.420 --> 00:30:06.920 +Generally it works. + +00:30:11.060 --> 00:30:11.560 +[Speaker 0]: Ok, great. Moving on to the next question. + +00:30:13.260 --> 00:30:13.760 +Regarding the frames example, + +00:30:16.160 --> 00:30:16.320 +any thoughts or considerations for a + +00:30:18.760 --> 00:30:19.020 +transient interface or is this something 1 + +00:30:22.120 --> 00:30:22.280 +could already toggle? Are you familiar with + +00:30:22.660 --> 00:30:23.160 +transient interface? + +00:30:26.200 --> 00:30:26.700 +[Speaker 1]: Yes, we don't use transient because we, + +00:30:29.640 --> 00:30:30.140 +you know, Hyperbole started out in 1991, + +00:30:34.020 --> 00:30:34.280 +though it's had much much work since then so + +00:30:37.740 --> 00:30:37.940 +we predate a lot of newer things in Emacs and + +00:30:41.040 --> 00:30:41.400 +then we just use them as as they Become + +00:30:45.180 --> 00:30:45.480 +useful too hyperbole We think the the mini + +00:30:46.480 --> 00:30:46.720 +buffer menu is pretty good. + +00:30:48.280 --> 00:30:48.780 +We could rewrite stuff in transient, + +00:30:51.100 --> 00:30:51.600 +but we haven't seen the need yet. + +00:30:54.760 --> 00:30:54.960 +Maybe high control, that might be a good + +00:30:58.260 --> 00:30:58.480 +candidate, because there are so many keys in + +00:31:00.240 --> 00:31:00.440 +it. So we'll think about that. + +00:31:02.560 --> 00:31:03.060 +But it would be a while before we got to it. + +00:31:06.840 --> 00:31:07.060 +[Speaker 0]: Moving on to the next question, + +00:31:08.620 --> 00:31:08.800 +sorry I got really confused because there's a + +00:31:10.760 --> 00:31:11.260 +French salut in the text. + +00:31:13.100 --> 00:31:13.600 +Is someone saying hi to me or something? + +00:31:14.600 --> 00:31:15.100 +All right, next question. + +00:31:16.920 --> 00:31:17.420 +Regarding multi-file search functionality, + +00:31:22.260 --> 00:31:22.740 +why not implement it within the existing + +00:31:25.280 --> 00:31:25.680 +framework of MetaX grep or similar built-in + +00:31:28.020 --> 00:31:28.260 +commands? Yet another search interface sounds + +00:31:28.620 --> 00:31:29.120 +a bit redundant. + +00:31:33.660 --> 00:31:33.900 +[Speaker 1]: Multi-file search, so High Rollo I guess + +00:31:35.640 --> 00:31:35.940 +you're talking about. I think what you missed + +00:31:38.940 --> 00:31:39.440 +there is that High Rollo matches to records, + +00:31:42.620 --> 00:31:42.880 +multi-line records, so it's not a + +00:31:44.860 --> 00:31:45.360 +line-oriented match, it's a record-oriented + +00:31:50.520 --> 00:31:50.760 +match. So Grep, you can say maybe give me 3 + +00:31:52.800 --> 00:31:53.000 +lines of context, but what if I have a + +00:31:55.860 --> 00:31:56.100 +20-line record? I want to see the whole + +00:31:58.580 --> 00:31:59.060 +thing. And so, it's a full-text search + +00:32:02.980 --> 00:32:03.480 +interface, which lets you have any size + +00:32:06.760 --> 00:32:07.260 +entries or nodes in the match buffer. + +00:32:10.520 --> 00:32:10.760 +So that's 1 reason. MADAX grep works with + +00:32:12.720 --> 00:32:12.880 +hyperbole. I mean, you just use it if you + +00:32:15.240 --> 00:32:15.580 +want and then you can hit MADA return on grep + +00:32:19.400 --> 00:32:19.640 +lines. So we basically take everything from + +00:32:24.240 --> 00:32:24.400 +POSIX and everything in Emacs and we try to + +00:32:26.200 --> 00:32:26.680 +make a lot of it simpler to use. + +00:32:28.440 --> 00:32:28.940 +We don't take away any of the functionality, + +00:32:30.540 --> 00:32:31.040 +we just augment it. + +00:32:35.020 --> 00:32:35.220 +[Speaker 0]: Right, and I think that's the logic for a lot + +00:32:37.000 --> 00:32:37.200 +of the packages you know the philosophy is + +00:32:38.940 --> 00:32:39.220 +just you create your little bit your little + +00:32:41.180 --> 00:32:41.420 +island where you do your stuff and if you can + +00:32:42.800 --> 00:32:42.940 +resonate with other islands so much the + +00:32:44.860 --> 00:32:45.080 +better and it feels like between those + +00:32:47.720 --> 00:32:47.900 +islands you know hyperbole is a great way to + +00:32:49.480 --> 00:32:49.980 +connect things that are just text. + +00:32:51.380 --> 00:32:51.880 +So it's always been a lovely philosophy. + +00:32:53.160 --> 00:32:53.620 +There's always been a lovely philosophy + +00:32:53.860 --> 00:32:54.360 +behind it. + +00:32:58.020 --> 00:32:58.200 +[Speaker 1]: 1 other point I'd make there is that the + +00:33:01.060 --> 00:33:01.480 +Hyrolo also contains logical search + +00:33:04.740 --> 00:33:04.940 +operators. So when I typed in that string you + +00:33:06.900 --> 00:33:07.360 +could just as well type with like Lisp + +00:33:08.640 --> 00:33:09.140 +expressions, semi Lisp expressions. + +00:33:12.980 --> 00:33:13.480 +You can say open paren and word 1, + +00:33:16.800 --> 00:33:17.280 +word 2, close paren. You know you can have or + +00:33:22.200 --> 00:33:22.360 +and XOR and not and it'll do the search and + +00:33:23.720 --> 00:33:24.220 +just retrieve the entries, + +00:33:27.440 --> 00:33:27.600 +again, multi-line entries that match all of + +00:33:29.200 --> 00:33:29.700 +the criteria that you specified there. + +00:33:30.720 --> 00:33:31.120 +So that's fairly unique, + +00:33:33.000 --> 00:33:33.320 +I think. So you basically got a full text + +00:33:35.340 --> 00:33:35.840 +search platform with logical operators, + +00:33:38.080 --> 00:33:38.580 +instantly, you know, fast moving, + +00:33:42.280 --> 00:33:42.720 +rapid keys that you can control everything + +00:33:44.920 --> 00:33:45.280 +with and it's all integrated into this larger + +00:33:45.280 --> 00:33:45.780 +framework. + +00:33:48.800 --> 00:33:49.060 +[Speaker 0]: Okay, great. Well, Bob, + +00:33:50.020 --> 00:33:50.520 +you have 2 more questions, + +00:33:53.600 --> 00:33:53.740 +but there's a big 1 about what inspired you + +00:33:56.120 --> 00:33:56.440 +to write it back. It's being hyperbole around + +00:33:56.980 --> 00:33:57.360 +the time of its birth, + +00:33:59.180 --> 00:33:59.680 +but sadly, we only have about 1 more minute. + +00:34:01.000 --> 00:34:01.320 +So what I'm going to ask you to do, + +00:34:02.240 --> 00:34:02.720 +feel free to answer the question. + +00:34:05.020 --> 00:34:05.140 +If you go on BBB, I've pasted the link to the + +00:34:06.820 --> 00:34:06.960 +other pad, I think you can see it on your + +00:34:10.520 --> 00:34:11.020 +[Speaker 1]: I have the ether pad up. + +00:34:12.560 --> 00:34:13.060 +[Speaker 0]: computer as well. So what are we going to do? + +00:34:16.679 --> 00:34:16.880 +Sorry, I'm just a little bit pressed by time + +00:34:18.280 --> 00:34:18.480 +because it's not me controlling when we move + +00:34:19.699 --> 00:34:20.199 +on to the next talk, as was evidenced + +00:34:22.000 --> 00:34:22.179 +yesterday when we got yonked to the next + +00:34:25.020 --> 00:34:25.159 +talk. So Bob, feel free to take all the time + +00:34:25.840 --> 00:34:26.280 +you want to answer questions. + +00:34:27.719 --> 00:34:28.040 +People, if you wanna join the Big Blue Button + +00:34:29.960 --> 00:34:30.060 +room, the links are available and open on the + +00:34:31.480 --> 00:34:31.719 +talk page. You can join and ask as many + +00:34:32.560 --> 00:34:33.060 +questions as you want to Bob. + +00:34:34.199 --> 00:34:34.440 +And for us, with a live stream, + +00:34:36.219 --> 00:34:36.500 +we'll be moving on to the next talk in about + +00:34:38.940 --> 00:34:39.060 +30 seconds. So Bob, all that's left is for me + +00:34:40.679 --> 00:34:40.900 +to thank you for your presentation again this + +00:34:42.100 --> 00:34:42.600 +year and for all your answers. + +00:34:44.060 --> 00:34:44.560 +[Speaker 1]: Thank you, Leo. + +00:34:46.159 --> 00:34:46.440 +[Speaker 0]: All right. Bye bye, Bob. + +00:34:48.080 --> 00:34:48.239 +And we'll be moving on to the next talk in + +00:34:49.900 --> 00:34:50.400 +about 10 seconds. See you in a bit. + +00:34:55.860 --> 00:34:56.139 +All right, Bob, we are off air I think now. + +00:34:57.540 --> 00:34:57.720 +Thank you so much. I need to get moving for + +00:35:01.820 --> 00:35:02.320 +[Speaker 1]: Okay, is somebody gonna keep writing answers + +00:35:04.040 --> 00:35:04.540 +in here or I need to type them in? + +00:35:06.000 --> 00:35:06.280 +[Speaker 0]: the next talk. It's probably best now if you + +00:35:09.160 --> 00:35:09.480 +read the questions on your own and answer + +00:35:10.680 --> 00:35:11.000 +them. We'll collate everything together, + +00:35:11.980 --> 00:35:12.480 +we'd just like to have your answers. + +00:35:16.680 --> 00:35:17.180 +[Speaker 1]: I hope some people will join the BBB. + +00:35:21.140 --> 00:35:21.340 +[Speaker 0]: it in my... All right, + +00:35:21.340 --> 00:35:21.840 +bye-bye. + +00:35:22.800 --> 00:35:23.300 +[Speaker 1]: But I'll start. I'll put Bye-bye. + +00:35:28.360 --> 00:35:28.580 +So let me take a second here to see what + +00:35:32.480 --> 00:35:32.980 +questions we have. Did we cover that? + +00:35:42.400 --> 00:35:42.900 +OK. The point is why not upstream search + +00:35:46.100 --> 00:35:46.600 +interface? Could you clarify that question? + +00:35:50.980 --> 00:35:51.420 +I don't quite know what that means. + +00:35:53.620 --> 00:35:53.800 +So I'll go on to the next 1 and come back to + +00:35:57.520 --> 00:35:57.660 +that. Hyperlinks been around for a number of + +00:35:59.620 --> 00:35:59.860 +years now. What inspired you to write it back + +00:36:00.960 --> 00:36:01.460 +around the time of its birth? + +00:36:02.640 --> 00:36:03.140 +Well, that's a good question. + +00:36:06.940 --> 00:36:07.360 +It was born before the World Wide Web, + +00:36:08.760 --> 00:36:09.260 +actually. And it was right before. + +00:36:12.600 --> 00:36:13.100 +I remember we were in the midst of a version + +00:36:15.800 --> 00:36:16.300 +when the first version of the web occurred. + +00:36:19.640 --> 00:36:19.820 +And I was thinking that there was going to be + +00:36:22.200 --> 00:36:22.700 +an information explosion of unstructured + +00:36:26.920 --> 00:36:27.140 +information. And like we needed to have much + +00:36:30.660 --> 00:36:30.920 +better tools to be able to manage say like + +00:36:36.300 --> 00:36:36.740 +5,000 email messages coming in and all sorts + +00:36:38.760 --> 00:36:39.260 +of non-database-oriented information + +00:36:41.500 --> 00:36:42.000 +structures. So I said we need an advanced + +00:36:45.860 --> 00:36:46.080 +interactive hypertext system and it needs to + +00:36:49.160 --> 00:36:49.320 +work with all the general capabilities that + +00:36:53.600 --> 00:36:54.100 +we use like email and our document production + +00:36:58.180 --> 00:36:58.500 +systems. So I was doing research at the time + +00:37:03.960 --> 00:37:04.200 +at a university And I decided to work on + +00:37:05.640 --> 00:37:06.140 +something that we called personalized + +00:37:07.020 --> 00:37:07.520 +information environments. + +00:37:09.960 --> 00:37:10.120 +And there's a paper about this out there if + +00:37:11.540 --> 00:37:12.040 +you want to dig it out on the web. + +00:37:14.860 --> 00:37:15.360 +So Pies, as they were called, + +00:37:19.620 --> 00:37:20.040 +was an architecture which would have a bunch + +00:37:23.940 --> 00:37:24.100 +of managers, like Hyperbole was 1 of the + +00:37:25.320 --> 00:37:25.820 +managers, the hypertext manager, + +00:37:29.060 --> 00:37:29.440 +and then a bunch of point tools that would + +00:37:30.220 --> 00:37:30.720 +leverage the managers, + +00:37:33.080 --> 00:37:33.580 +like an email reader would be a point tool + +00:37:35.640 --> 00:37:36.140 +that would leverage the hypertext manager. + +00:37:39.200 --> 00:37:39.480 +And so the first, I did in fact write + +00:37:39.960 --> 00:37:40.460 +something called PyMail, + +00:37:43.340 --> 00:37:43.840 +which was very much Gmail-like, + +00:37:47.140 --> 00:37:47.640 +before Gmail. And so inside, + +00:37:50.800 --> 00:37:51.300 +and I did a, it was like our mail in a way, + +00:37:53.520 --> 00:37:54.020 +but inside your our mail summaries, + +00:37:56.720 --> 00:37:57.180 +for example, you could have explicit buttons + +00:38:00.680 --> 00:38:01.120 +embedded and that were drawn from the subject + +00:38:01.800 --> 00:38:02.300 +of your email message, + +00:38:05.640 --> 00:38:06.140 +and they'd work just like the regular button. + +00:38:09.520 --> 00:38:10.020 +So it was very flexible and it had rule-based + +00:38:11.140 --> 00:38:11.640 +processing and things. + +00:38:14.180 --> 00:38:14.340 +So Hyperbole came out of that and it's come a + +00:38:19.020 --> 00:38:19.520 +long way, But it's still a very useful core + +00:38:22.200 --> 00:38:22.440 +hypertext system, hypermedia system I should + +00:38:26.520 --> 00:38:26.920 +say. Are you familiar with the Embark + +00:38:29.760 --> 00:38:30.060 +package? I am a bit. I've just started using + +00:38:31.400 --> 00:38:31.900 +it. I think there's some overlapping + +00:38:33.700 --> 00:38:34.200 +functionality with hyperbole. + +00:38:39.140 --> 00:38:39.360 +Yes, we've found that people over time have + +00:38:41.160 --> 00:38:41.600 +enjoyed hyperbole and have started + +00:38:43.460 --> 00:38:43.960 +replicating some of its features, + +00:38:45.380 --> 00:38:45.880 +small amounts of the features. + +00:38:51.120 --> 00:38:51.340 +I talked to, I hope I don't miss his name, + +00:38:55.760 --> 00:38:56.000 +but O'Adam who writes that once in a while we + +00:38:59.040 --> 00:38:59.480 +dialogue and I think Embark is great, + +00:39:04.080 --> 00:39:04.500 +you know, I'll give him some pointers too and + +00:39:07.740 --> 00:39:08.040 +he thinks that Embark and hyperbole are quite + +00:39:10.240 --> 00:39:10.740 +compatible too, just like organ hyperbole. + +00:39:12.580 --> 00:39:13.080 +So that's how we like to keep it. + +00:39:17.940 --> 00:39:18.140 +Some people prefer just a small package of + +00:39:20.920 --> 00:39:21.100 +MBARC, and it does different things than what + +00:39:23.600 --> 00:39:23.800 +Hyperbole does. So I think you use all of + +00:39:27.280 --> 00:39:27.540 +these tools together, and they can work very + +00:39:33.460 --> 00:39:33.960 +well together. Any other questions? + +00:39:37.800 --> 00:39:38.300 +Anybody still here? If not, + +00:39:40.680 --> 00:39:41.180 +probably people are off to another talk. + +00:39:47.160 --> 00:39:47.660 +So thank you very much and look for Hyperbole + +00:39:51.340 --> 00:39:51.840 +version 9 in the next week. + +00:39:56.380 --> 00:39:56.880 +Thanks very much. Bye. + +00:40:06.660 --> 00:40:07.120 +Should I leave BBB? Oh Alpha Papa's here. + +00:40:15.840 --> 00:40:16.040 +Hey. Good to see you. Alright, + +00:40:22.240 --> 00:40:22.740 +well... Well, I'll stay for another minute, + +00:40:26.920 --> 00:40:27.280 +but I think I'm going to go off video 2 and + +00:40:29.280 --> 00:40:29.780 +start listening to another talk. + +00:40:30.720 --> 00:40:30.980 +Thanks, everyone. Thanks, + +00:40:30.980 --> 00:40:31.480 +everyone. + +00:40:56.920 --> 00:40:56.960 +Yes, I can hear you. Yes, + +00:40:59.720 --> 00:41:00.040 +[Speaker 0]: Have you been answering questions? + +00:41:03.540 --> 00:41:03.700 +[Speaker 1]: I can hear you. finished answering the + +00:41:04.700 --> 00:41:05.200 +questions. We're all done. + +00:41:07.200 --> 00:41:07.280 +[Speaker 0]: I Okay, cool. Well, what I'm going to do, + +00:41:08.100 --> 00:41:08.400 +I'm going to close the room, + +00:41:09.720 --> 00:41:10.160 +unless you want to go a little longer, + +00:41:11.640 --> 00:41:11.880 +because this talk that we're playing right + +00:41:13.180 --> 00:41:13.480 +now is finishing really quick, + +00:41:14.620 --> 00:41:15.120 +and we don't have a Q&A afterwards. + +00:41:18.540 --> 00:41:19.040 +So, do you want to stay on air or something? + +00:41:21.240 --> 00:41:21.740 +[Speaker 1]: Yeah, if you let people know to come back, + +00:41:23.140 --> 00:41:23.320 +because some went to go hear that + +00:41:24.400 --> 00:41:24.900 +presentation, I can stay. + +00:41:27.440 --> 00:41:27.880 +[Speaker 0]: Sure, I'll make an announcement then. + +00:41:29.240 --> 00:41:29.680 +And you can stay, we'll just put on BBB. + +00:41:31.400 --> 00:41:31.840 +You can stay muted until people join. + +00:41:33.440 --> 00:41:33.640 +But this way it opens up avenues for people + +00:41:35.580 --> 00:41:35.980 +to join. And if no 1 shows up in 5 minutes, + +00:41:36.560 --> 00:41:37.060 +we'll all go on break. + +00:41:40.560 --> 00:41:41.060 +Does that sound okay? Cool, + +00:41:44.180 --> 00:41:44.320 +I'll go back to the management in the + +00:41:45.280 --> 00:41:45.780 +background and I'll let you know. + +00:41:47.000 --> 00:41:47.240 +[Speaker 1]: Great, thank you. Where are you? + +00:41:47.700 --> 00:41:48.200 +Oh yeah, okay. + +00:41:50.400 --> 00:41:50.740 +[Speaker 0]: So sorry, I kind of need to run. + +00:41:51.880 --> 00:41:52.380 +I'll be back in about 2 minutes. + +00:42:05.740 --> 00:42:06.240 +Okay, bye. Bye. + +00:43:27.040 --> 00:43:27.540 +Okay, Bob, I've won the stream. + +00:43:28.660 --> 00:43:28.940 +We are joining it now. + +00:43:29.880 --> 00:43:30.380 +We've got about 5 seconds. + +00:43:43.080 --> 00:43:43.580 +And I think we are back. + +00:43:50.760 --> 00:43:51.260 +so we are gone, Bob, please. + +00:43:52.800 --> 00:43:53.300 +[Speaker 1]: Hi. So, yeah, I was going to say, + +00:43:56.720 --> 00:43:57.160 +can we see if anybody comes back in the room? + +00:43:57.620 --> 00:43:58.120 +How do you tell? + +00:44:03.420 --> 00:44:03.740 +[Speaker 0]: You should be able to show on the left, + +00:44:04.440 --> 00:44:04.920 +you've got on BbBlueButton, + +00:44:06.300 --> 00:44:06.380 +you've got a button, I'm showing it on the + +00:44:08.200 --> 00:44:08.440 +screen, but you've got a little button that + +00:44:09.880 --> 00:44:10.380 +allows you to show the people joining. + +00:44:15.140 --> 00:44:15.340 +So, hello everyone. Let's see if you had more + +00:44:16.760 --> 00:44:17.080 +question on your pad that we could be taking + +00:44:18.920 --> 00:44:19.040 +in the meantime, just give me a second to + +00:44:23.000 --> 00:44:23.500 +[Speaker 1]: your pad. Here we go, an error occurred. + +00:44:32.720 --> 00:44:33.220 +[Speaker 0]: find Okay. All right, it's loading up. + +00:44:37.960 --> 00:44:38.440 +[Speaker 1]: Wow. Feels like there's an AI writing this + +00:44:41.180 --> 00:44:41.680 +stuff on the pad. Has it? + +00:44:45.820 --> 00:44:46.060 +Is this the last pad? Oh no, + +00:44:46.880 --> 00:44:47.080 +this is a different 1, + +00:44:51.020 --> 00:44:51.520 +[Speaker 0]: Which question are you looking at now? + +00:44:53.460 --> 00:44:53.820 +[Speaker 1]: sorry. It was a different pad, + +00:44:55.940 --> 00:44:56.440 +[Speaker 0]: Oh right. + +00:44:57.260 --> 00:44:57.380 +[Speaker 2]: Okay, here + +00:44:57.560 --> 00:44:58.060 +[Speaker 1]: that was the problem. we go. + +00:45:00.660 --> 00:45:00.900 +Okay, I'm back. So, yeah, + +00:45:03.000 --> 00:45:03.480 +it looks like... Is anybody back? + +00:45:06.680 --> 00:45:07.180 +Send, if you're here, send a chat message. + +00:45:09.520 --> 00:45:10.020 +[Speaker 0]: Yeah, because it's been something. + +00:45:13.740 --> 00:45:14.240 +You have, apparently, whenever we leave those + +00:45:17.720 --> 00:45:18.220 +BBB chat room open, the moment we go off air, + +00:45:20.080 --> 00:45:20.280 +people start joining and asking a lot of very + +00:45:21.980 --> 00:45:22.240 +interesting questions and you know that's all + +00:45:24.140 --> 00:45:24.280 +well and good, we'll be able to put them on + +00:45:26.160 --> 00:45:26.280 +the page later on. But it'd be great if you + +00:45:28.040 --> 00:45:28.260 +could also have those discussions when we are + +00:45:29.640 --> 00:45:30.140 +live because a lot of people would benefit + +00:45:31.960 --> 00:45:32.120 +from the brilliance that goes on in this + +00:45:34.400 --> 00:45:34.760 +room. So please don't be shy, + +00:45:39.400 --> 00:45:39.900 +[Speaker 1]: So we're on the general stream now? + +00:45:41.660 --> 00:45:41.760 +[Speaker 0]: join and talk. Yep, we are back on the + +00:45:45.940 --> 00:45:46.060 +general stream. We have about until 10 of the + +00:45:47.680 --> 00:45:48.180 +next hour, which is 19 minutes. + +00:45:55.640 --> 00:45:56.140 +[Speaker 1]: Just- Why So have you ever tried hyperbole, + +00:45:56.380 --> 00:45:56.880 +Leo? + +00:45:58.780 --> 00:45:59.280 +[Speaker 0]: don't you and I talk? I have never, + +00:46:02.440 --> 00:46:02.840 +but You know, it feels like every year when + +00:46:03.380 --> 00:46:03.740 +you present something, + +00:46:05.140 --> 00:46:05.640 +it feels like I already know so much. + +00:46:07.080 --> 00:46:07.580 +Because of the buttons, + +00:46:09.600 --> 00:46:10.080 +it feels like it's also something that we've + +00:46:11.980 --> 00:46:12.440 +reinvented many times in Emacs. + +00:46:13.440 --> 00:46:13.940 +It's like conversion to evolution, + +00:46:16.400 --> 00:46:16.560 +except you're the 1 who started ahead of + +00:46:16.920 --> 00:46:17.420 +everyone else. + +00:46:19.200 --> 00:46:19.700 +[Speaker 1]: Well, that's a good point because, + +00:46:22.840 --> 00:46:23.200 +you know, we have, Emacs itself has push + +00:46:25.240 --> 00:46:25.520 +buttons, which you see like in the help + +00:46:27.220 --> 00:46:27.540 +buffers. And those used to, + +00:46:29.340 --> 00:46:29.840 +we didn't really do anything with those, + +00:46:32.280 --> 00:46:32.780 +but now we've subsumed them as implicit + +00:46:34.840 --> 00:46:35.340 +buttons as well. So you're made a return, + +00:46:38.000 --> 00:46:38.500 +we'll work on those anywhere too. + +00:46:41.320 --> 00:46:41.820 +So, we're trying to get, + +00:46:45.660 --> 00:46:45.920 +you use 1 key, right? To control every type + +00:46:46.800 --> 00:46:47.080 +of button that you have. + +00:46:47.920 --> 00:46:48.420 +It works on org links, + +00:46:51.300 --> 00:46:51.800 +org buttons anywhere, or URLs. + +00:46:53.940 --> 00:46:54.440 +Because it's so simple. + +00:46:58.480 --> 00:46:58.820 +All you need is like 5 to 10 lines of code to + +00:47:02.560 --> 00:47:02.760 +map. You map the pattern that represents a + +00:47:04.900 --> 00:47:05.060 +concept, right? And then you can create an + +00:47:07.500 --> 00:47:07.700 +infinite number of those buttons from that + +00:47:09.240 --> 00:47:09.520 +type. That's what's really cool about + +00:47:12.560 --> 00:47:13.060 +Hyperbole is say I have a 500 page document + +00:47:15.400 --> 00:47:15.600 +and it uses a really weird format for + +00:47:16.560 --> 00:47:17.060 +cross-referencing, right? + +00:47:21.960 --> 00:47:22.320 +I write my 3 lines of pattern match to work + +00:47:23.860 --> 00:47:24.200 +with that, and then everywhere throughout + +00:47:25.760 --> 00:47:25.960 +that document and the hundreds of other + +00:47:27.480 --> 00:47:27.680 +documents that will be created with that + +00:47:30.380 --> 00:47:30.880 +format, they're all live buttons instantly. + +00:47:32.740 --> 00:47:33.240 +Nothing changed about the document. + +00:47:35.280 --> 00:47:35.540 +That's really cool. You know, + +00:47:37.360 --> 00:47:37.860 +word mode, we have global word buttons, + +00:47:41.860 --> 00:47:42.040 +but mostly it has to be embedded within an + +00:47:44.260 --> 00:47:44.760 +org file, right? And follow that syntax. + +00:47:51.660 --> 00:47:51.900 +With hyperbole, it's like we can adapt as the + +00:47:54.800 --> 00:47:55.300 +world adapts around us to whatever formats + +00:47:56.440 --> 00:47:56.940 +people want to use that day. + +00:47:59.240 --> 00:47:59.380 +And you can even change things to look the + +00:48:01.700 --> 00:48:02.200 +way you want, right, and have your own + +00:48:04.540 --> 00:48:04.860 +cross-references. There's something built + +00:48:07.060 --> 00:48:07.560 +into Hyperbole that's not really active, + +00:48:12.620 --> 00:48:13.120 +which was sort of along the Zettelkasten way. + +00:48:15.200 --> 00:48:15.420 +We wrote this a long time ago. + +00:48:16.460 --> 00:48:16.960 +It's called hib-doc.el, + +00:48:21.720 --> 00:48:22.200 +and it's a card catalog notion. + +00:48:25.320 --> 00:48:25.820 +So it uses the high rollo in the background + +00:48:29.900 --> 00:48:30.180 +but it lets you create these forms that are + +00:48:32.660 --> 00:48:32.800 +cards that you fill out with whatever kind of + +00:48:35.080 --> 00:48:35.380 +data you want and then it gives you the full + +00:48:38.040 --> 00:48:38.520 +text searching across the cards and each card + +00:48:41.260 --> 00:48:41.760 +has a unique ID that you can reference + +00:48:44.920 --> 00:48:45.240 +similar to org IDs but these are human + +00:48:49.700 --> 00:48:49.860 +readable and human typable and so you can you + +00:48:52.460 --> 00:48:52.960 +can just have a cross-reference to any doc ID + +00:48:55.940 --> 00:48:56.100 +and essentially create what Engelbart used to + +00:49:00.180 --> 00:49:00.480 +call a journal, which is all these IDs on + +00:49:02.980 --> 00:49:03.220 +documents that point you directly to the + +00:49:05.460 --> 00:49:05.640 +document archive so that you could have like + +00:49:09.780 --> 00:49:10.020 +your internal publishing system and you know + +00:49:12.440 --> 00:49:12.940 +it's very simple to do and it's just 1 module + +00:49:14.160 --> 00:49:14.660 +added on to Hyperbole. + +00:49:19.020 --> 00:49:19.140 +[Speaker 0]: Yeah it's especially interesting for me you + +00:49:20.960 --> 00:49:21.140 +know because coming back to the side of + +00:49:23.240 --> 00:49:23.400 +convergent evolutions it's funny because the + +00:49:24.380 --> 00:49:24.880 +parameters are a little different. + +00:49:25.760 --> 00:49:26.260 +For us with org buttons, + +00:49:29.060 --> 00:49:29.340 +we're very happy. A lot of the stuff during + +00:49:31.020 --> 00:49:31.360 +EmacsConf is run with org mode, + +00:49:33.840 --> 00:49:34.340 +like we have Elisp going everywhere to + +00:49:36.820 --> 00:49:37.320 +compile a lot of org properties, + +00:49:39.140 --> 00:49:39.640 +like speaker information, + +00:49:41.120 --> 00:49:41.480 +for instance, how long the talk is, + +00:49:42.500 --> 00:49:42.800 +the title, and all this. + +00:49:44.540 --> 00:49:44.760 +We have all of this in an org file, + +00:49:45.520 --> 00:49:46.020 +which we use as a database, + +00:49:47.480 --> 00:49:47.800 +but then we can do so much stuff. + +00:49:50.500 --> 00:49:50.740 +We can send email and we can update the + +00:49:52.080 --> 00:49:52.200 +schedule. By the way, if you're interested in + +00:49:54.160 --> 00:49:54.280 +this, we'll have a talk on the DevTrack in + +00:49:56.320 --> 00:49:56.640 +the afternoon today that Sacha did and it's + +00:49:57.800 --> 00:49:58.140 +wonderful. I'm just teasing it. + +00:49:58.540 --> 00:49:59.040 +[Speaker 1]: Oh, that's great. + +00:50:00.640 --> 00:50:01.140 +[Speaker 0]: But coming back to Hyperbole, + +00:50:03.840 --> 00:50:04.000 +for you, it feels like the parameters were + +00:50:06.140 --> 00:50:06.560 +slightly different because the feeling was, + +00:50:08.600 --> 00:50:09.000 +I just want a tunnel that can work between + +00:50:11.100 --> 00:50:11.240 +any type of files. Now it's all well and + +00:50:13.100 --> 00:50:13.580 +good, Org-Rome, D-Note, + +00:50:14.480 --> 00:50:14.760 +and all this stuff like this, + +00:50:16.360 --> 00:50:16.860 +they create bidirectional links, + +00:50:19.040 --> 00:50:19.540 +but it's only between org-mode files. + +00:50:21.540 --> 00:50:22.040 +Whereas what you're achieving with Hyperbole, + +00:50:24.360 --> 00:50:24.760 +and you've done it much earlier than everyone + +00:50:26.940 --> 00:50:27.440 +else, is that you have this concept + +00:50:29.260 --> 00:50:29.440 +regardless of the type of file that you're + +00:50:32.020 --> 00:50:32.520 +using. And I find this to be beautiful. + +00:50:34.900 --> 00:50:35.240 +Like 5 years ago, whenever you were talking + +00:50:36.900 --> 00:50:37.280 +about hyperbole, I did not have a concrete + +00:50:38.040 --> 00:50:38.540 +idea of what was happening. + +00:50:40.000 --> 00:50:40.360 +But ever since I've gone through the journey + +00:50:42.040 --> 00:50:42.380 +of really understanding what the El Caster + +00:50:44.500 --> 00:50:45.000 +method were about, it feels like you were + +00:50:46.600 --> 00:50:46.980 +foreigners in the topic. + +00:50:48.340 --> 00:50:48.540 +Obviously, you've mentioned the mother of all + +00:50:49.740 --> 00:50:50.240 +demos by Edward Engelbart, + +00:50:53.600 --> 00:50:54.100 +but those ideas are not novel, + +00:50:56.520 --> 00:50:56.820 +but it feels like only now are they starting + +00:50:58.140 --> 00:50:58.520 +to be appropriated by people, + +00:50:59.340 --> 00:50:59.800 +especially in free software, + +00:51:00.700 --> 00:51:01.200 +and it's really good to see. + +00:51:02.200 --> 00:51:02.440 +I'm really excited to, + +00:51:04.280 --> 00:51:04.600 +well, have my small part to play in this. + +00:51:06.760 --> 00:51:06.960 +And I'm also excited to be able to chat with + +00:51:09.640 --> 00:51:10.140 +you and people like Bastien and other people + +00:51:10.900 --> 00:51:11.400 +about all those topics. + +00:51:13.280 --> 00:51:13.780 +[Speaker 1]: Yeah, I think, you know, + +00:51:16.400 --> 00:51:16.640 +it's fun that we can laugh now about when + +00:51:19.540 --> 00:51:20.000 +people say people are still using Emacs, + +00:51:22.440 --> 00:51:22.800 +you know, is because they're not used, + +00:51:23.960 --> 00:51:24.160 +certain people aren't using it. + +00:51:26.640 --> 00:51:26.880 +They have no idea of how far it's come and + +00:51:28.260 --> 00:51:28.760 +how powerful it is. And, + +00:51:31.020 --> 00:51:31.520 +you know, we're leveraging Elisp heavily, + +00:51:33.440 --> 00:51:33.940 +obviously, but if you look at the definition + +00:51:37.480 --> 00:51:37.980 +of our types, they look exactly like defunds + +00:51:41.160 --> 00:51:41.420 +in ELisp. And we've been able to do that + +00:51:42.280 --> 00:51:42.780 +because of Lisp macros. + +00:51:46.420 --> 00:51:46.920 +So we basically have our own domain-specific + +00:51:49.920 --> 00:51:50.160 +language there. But there's almost nothing to + +00:51:52.500 --> 00:51:52.740 +learn because it's just like what you know + +00:51:55.440 --> 00:51:55.680 +from UList. So again, you know, + +00:51:57.720 --> 00:51:57.980 +taking the concept and leveraging it, + +00:52:00.060 --> 00:52:00.520 +abstracting it and leveraging it multiple + +00:52:02.440 --> 00:52:02.940 +times gives you a lot of power. + +00:52:05.820 --> 00:52:06.040 +And people, you know, somebody said the other + +00:52:07.000 --> 00:52:07.500 +day, and I said, finally, + +00:52:09.860 --> 00:52:10.360 +this quote happened. He said, + +00:52:14.820 --> 00:52:15.060 +there's so many things that I do with + +00:52:16.960 --> 00:52:17.200 +hyperbole every day that I forget that I'm + +00:52:21.220 --> 00:52:21.440 +using hyperbole. Because it's just so + +00:52:23.080 --> 00:52:23.580 +embedded in this guy's workflow. + +00:52:25.240 --> 00:52:25.440 +And that's really how I use it. + +00:52:26.880 --> 00:52:27.380 +You know, there are features in there, + +00:52:28.580 --> 00:52:29.060 +can't use everything, right? + +00:52:31.360 --> 00:52:31.860 +So there are features that I don't use, + +00:52:35.380 --> 00:52:35.580 +but I use a lot of things and it's all like + +00:52:37.080 --> 00:52:37.580 +muscle memory, just like the keyboard, + +00:52:39.240 --> 00:52:39.740 +the Emacs key bindings. + +00:52:41.780 --> 00:52:42.180 +So it's very exciting to get to that level. + +00:52:44.120 --> 00:52:44.300 +And now, you know, we haven't started with + +00:52:46.440 --> 00:52:46.940 +the chatbots or any of the AI integration, + +00:52:49.240 --> 00:52:49.440 +but I'm starting to think about that a little + +00:52:53.140 --> 00:52:53.520 +bit and how we'll interface to that world and + +00:52:54.820 --> 00:52:55.320 +I think it's going to be very exciting. + +00:52:58.180 --> 00:52:58.340 +[Speaker 0]: Yeah, likewise and I think it harks back to + +00:53:00.520 --> 00:53:00.660 +what we were talking about before when we + +00:53:03.560 --> 00:53:03.700 +mentioned Hyperbole being a package inside of + +00:53:04.800 --> 00:53:05.300 +an ecosystem that is Emacs. + +00:53:07.740 --> 00:53:08.040 +But it's not because something is well + +00:53:10.320 --> 00:53:10.560 +circumscribed in terms of feature set that it + +00:53:12.500 --> 00:53:12.880 +does not influence everything around it. + +00:53:14.680 --> 00:53:15.060 +Like Hyperbole can be used with something + +00:53:17.900 --> 00:53:18.080 +completely at the opposite end of what it was + +00:53:21.180 --> 00:53:21.380 +intended for, just because it provides a good + +00:53:23.480 --> 00:53:23.860 +set of tools that can be used wherever else + +00:53:25.900 --> 00:53:26.100 +you want in Emacs. And it's the same thing + +00:53:27.720 --> 00:53:27.980 +with Org Mode, it's the same thing with many, + +00:53:28.780 --> 00:53:29.280 +many different things. + +00:53:32.320 --> 00:53:32.820 +And it feels like integrating AIs, + +00:53:36.420 --> 00:53:36.920 +or generative AIs, into Emacs would provide + +00:53:42.160 --> 00:53:42.340 +such a tool that could apply to any kind of + +00:53:44.540 --> 00:53:45.040 +other major mode or any kind of other use. + +00:53:46.460 --> 00:53:46.640 +So I'm also excited to see this. + +00:53:49.900 --> 00:53:50.220 +It feels like we are sitting at the brink of + +00:53:51.980 --> 00:53:52.480 +a revolution. I'm not going to say the acne + +00:53:54.200 --> 00:53:54.440 +stuff, but it definitely feels like right + +00:53:57.100 --> 00:53:57.560 +now, by trying to see what we can do with AI, + +00:53:59.160 --> 00:53:59.380 +it's definitely going to change the way not + +00:54:01.360 --> 00:54:01.560 +only we program, but also the way we take + +00:54:02.720 --> 00:54:03.160 +notes and the way we design stuff, + +00:54:04.940 --> 00:54:05.220 +arcing back to what John Wigley said + +00:54:08.160 --> 00:54:08.660 +yesterday about his draft program on macOS. + +00:54:10.440 --> 00:54:10.940 +Bob, if you don't mind, + +00:54:12.880 --> 00:54:13.080 +I see people typing questions and I also see + +00:54:14.540 --> 00:54:14.820 +people joining on people buttons, + +00:54:16.720 --> 00:54:16.920 +so I'm going to read you the 2 questions that + +00:54:17.760 --> 00:54:18.260 +have been added. Is that okay? + +00:54:20.080 --> 00:54:20.580 +[Speaker 1]: Great, go for it. + +00:54:22.600 --> 00:54:23.100 +[Speaker 0]: Cool, so first question. + +00:54:24.880 --> 00:54:25.240 +Wow, what you're describing now, + +00:54:27.320 --> 00:54:27.520 +and that's when you were talking about the + +00:54:31.580 --> 00:54:31.840 +bi-directional links and especially the last + +00:54:32.540 --> 00:54:33.040 +question in its entirety, + +00:54:35.220 --> 00:54:35.440 +What you're describing now reminds me a lot + +00:54:37.040 --> 00:54:37.440 +about HyperCard that I grew up on. + +00:54:39.000 --> 00:54:39.220 +Do you know if Hyperbole inspired Bill + +00:54:40.840 --> 00:54:41.040 +Atkinson or if you were inspired by + +00:54:42.880 --> 00:54:43.040 +HyperCard? Or were there just a lot of + +00:54:44.580 --> 00:54:44.820 +thoughts about hyper-contextuality around + +00:54:45.020 --> 00:54:45.520 +that time? + +00:54:49.600 --> 00:54:50.100 +[Speaker 1]: Alright, well this is another interesting + +00:54:52.120 --> 00:54:52.360 +anecdote. I don't know if it's true or not, + +00:54:57.340 --> 00:54:57.840 +but I think HyperCard predated our stuff. + +00:55:00.180 --> 00:55:00.480 +It was right around the same time when + +00:55:01.920 --> 00:55:02.420 +Hyperbole was starting out. + +00:55:04.540 --> 00:55:05.040 +But when I was doing the Pi research, + +00:55:08.460 --> 00:55:08.800 +I worked at, when I left school, + +00:55:11.200 --> 00:55:11.280 +I worked at Motorola, and we did a lot of + +00:55:12.540 --> 00:55:13.040 +work with Apple back then. + +00:55:15.060 --> 00:55:15.480 +And somebody came back and he said, + +00:55:17.540 --> 00:55:18.040 +you know, the people over there have seen + +00:55:21.900 --> 00:55:21.940 +your Pi research and they really liked it a + +00:55:25.840 --> 00:55:26.020 +lot. And so they were leveraging that when + +00:55:28.280 --> 00:55:28.440 +they decided to create the division that they + +00:55:33.120 --> 00:55:33.280 +called Apple Pi, which was the originator of + +00:55:36.300 --> 00:55:36.500 +the Newton which eventually led to the + +00:55:40.440 --> 00:55:40.940 +iPhone. So it all kind of is interconnected + +00:55:44.120 --> 00:55:44.380 +just like the impact that free software has + +00:55:46.800 --> 00:55:47.240 +had around the world. So you never know where + +00:55:49.360 --> 00:55:49.860 +your stuff is gonna go or end up. + +00:55:53.160 --> 00:55:53.400 +[Speaker 0]: Right. All right, moving on to the next + +00:55:55.600 --> 00:55:55.840 +question. Is it possible to only use 1 + +00:55:57.340 --> 00:55:57.800 +feature of hyperbole without the others, + +00:56:00.140 --> 00:56:00.580 +i.e. Using only the implicit explicit buttons + +00:56:03.340 --> 00:56:03.580 +without I control I roller or without having + +00:56:05.860 --> 00:56:05.920 +to rewrite part of the code in hyperbole in + +00:56:07.540 --> 00:56:08.040 +order to be able to load a smaller hyperbole. + +00:56:08.660 --> 00:56:09.160 +Does it make sense? + +00:56:12.140 --> 00:56:12.640 +[Speaker 1]: Yes we get asked this all the time. + +00:56:16.100 --> 00:56:16.560 +So you can use any little bit that you want + +00:56:19.120 --> 00:56:19.620 +anywhere right you can even just call code + +00:56:23.160 --> 00:56:23.660 +from Hyperbole. I mean you don't use + +00:56:24.720 --> 00:56:25.080 +everything in Emacs, right? + +00:56:27.180 --> 00:56:27.680 +But you still install Emacs on your machine. + +00:56:29.580 --> 00:56:30.080 +It's exactly the same thing. + +00:56:32.900 --> 00:56:33.280 +Those libraries don't take up any memory, + +00:56:36.140 --> 00:56:36.380 +they take up a little disk space and it's so + +00:56:38.360 --> 00:56:38.520 +trivial compared to the amount of disk we + +00:56:41.280 --> 00:56:41.780 +have today. So a lot of things are not loaded + +00:56:43.240 --> 00:56:43.740 +unless you activate them. + +00:56:48.720 --> 00:56:48.900 +And so I know that you do have to build all + +00:56:50.860 --> 00:56:51.340 +those things. So maybe that's what bothers + +00:56:55.520 --> 00:56:56.020 +people. It takes 2 minutes if you're using, + +00:56:57.920 --> 00:56:58.400 +it depends how fast your computer is. + +00:57:00.920 --> 00:57:01.160 +But you build it once on install like every + +00:57:04.440 --> 00:57:04.600 +other package. And it used to be that there + +00:57:06.460 --> 00:57:06.620 +would be a lot of warnings just because of + +00:57:08.740 --> 00:57:09.020 +the way we wrote the code and we didn't + +00:57:10.920 --> 00:57:11.120 +really have to deal with some of those + +00:57:12.620 --> 00:57:13.080 +warnings. But with this new release, + +00:57:14.640 --> 00:57:15.140 +we've gotten rid of almost all of them, + +00:57:19.280 --> 00:57:19.780 +including the native compiler messages. + +00:57:22.120 --> 00:57:22.620 +So it should be a very clean install now, + +00:57:26.120 --> 00:57:26.620 +and just use 1 part at a time. + +00:57:29.580 --> 00:57:29.820 +But the other parts are there in case you + +00:57:31.960 --> 00:57:32.080 +make a link to something and you use a + +00:57:34.360 --> 00:57:34.600 +facility just like I was showing as I went + +00:57:35.860 --> 00:57:36.360 +across subsystems today. + +00:57:37.640 --> 00:57:38.040 +It may take you a year, + +00:57:39.880 --> 00:57:40.120 +but then all of a sudden you find the use + +00:57:42.100 --> 00:57:42.340 +case for Hyrule and you say, + +00:57:43.520 --> 00:57:44.020 +oh, I'm glad I have it there. + +00:57:47.140 --> 00:57:47.540 +And yes, some of these things could be split + +00:57:49.320 --> 00:57:49.540 +into sub packages like you do in the org + +00:57:52.320 --> 00:57:52.500 +ecosystem. But given our limited resources on + +00:57:56.120 --> 00:57:56.420 +the team, we find having them all in 1 gives + +00:57:57.440 --> 00:57:57.940 +us a higher level of quality, + +00:58:00.480 --> 00:58:00.980 +and lets us deliver a better integrated + +00:58:02.800 --> 00:58:03.300 +system for your use. + +00:58:06.040 --> 00:58:06.300 +[Speaker 0]: Yeah, exactly. And I think, + +00:58:08.600 --> 00:58:09.100 +you know, it's, it's not a monolith. + +00:58:12.240 --> 00:58:12.540 +I mean, it's usually easier, + +00:58:14.340 --> 00:58:14.620 +easy, more easy, more easy. + +00:58:16.000 --> 00:58:16.480 +Sorry, I was right on the first try. + +00:58:20.140 --> 00:58:20.640 +It's usually easier to maintain a monolith + +00:58:22.780 --> 00:58:23.140 +that contains many bits of functionality like + +00:58:25.060 --> 00:58:25.280 +org. You have plenty of people using org + +00:58:26.680 --> 00:58:27.180 +mode, not using org-agenda, + +00:58:28.780 --> 00:58:28.980 +for instance, or you've got plenty of people + +00:58:31.320 --> 00:58:31.560 +using org-mode and barely using Babel because + +00:58:34.240 --> 00:58:34.740 +it doesn't really translate to their use. + +00:58:37.500 --> 00:58:37.720 +And I feel like I very much agree with you. + +00:58:39.320 --> 00:58:39.520 +It's okay to install a package and only use + +00:58:39.920 --> 00:58:40.420 +some of the functions. + +00:58:43.080 --> 00:58:43.580 +I was reminded, as you were discussing this, + +00:58:44.640 --> 00:58:45.140 +of the consults package, + +00:58:46.420 --> 00:58:46.920 +which is part of the VertiCo, + +00:58:50.540 --> 00:58:51.040 +mbark and marginalia and all this. + +00:58:54.520 --> 00:58:54.960 +Consult, it replaces a lot of the Emacs + +00:58:56.820 --> 00:58:56.980 +built-in commands like for finding your + +00:58:59.760 --> 00:58:59.900 +buffers or finding text inside of your + +00:59:03.480 --> 00:59:03.980 +buffer. It's great. And you do not need to + +00:59:06.140 --> 00:59:06.300 +completely move to consult as you get + +00:59:08.940 --> 00:59:09.080 +started. You can start colonizing 1 step at a + +00:59:11.040 --> 00:59:11.540 +time the function that you usually use. + +00:59:15.580 --> 00:59:16.060 +I highly recommend to people to not let the + +00:59:18.560 --> 00:59:18.700 +size of a project deter them from trying it + +00:59:21.140 --> 00:59:21.640 +out because, again, in Emacs, + +00:59:22.300 --> 00:59:22.800 +everything is horizontal. + +00:59:27.980 --> 00:59:28.180 +If somehow you want to do something that was + +00:59:29.440 --> 00:59:29.640 +not intended primarily for this, + +00:59:31.720 --> 00:59:32.220 +or if you only want to use 10% of a package, + +00:59:35.160 --> 00:59:35.540 +well, do it. An example that I have for me is + +00:59:39.660 --> 00:59:39.840 +that Lispy is the minor mode that I use for + +00:59:41.880 --> 00:59:42.380 +editing Elisp documents, + +00:59:45.140 --> 00:59:45.380 +and it's great. Elisp provides similar + +00:59:46.840 --> 00:59:47.040 +functions to Paredit, which might be a little + +00:59:48.960 --> 00:59:49.300 +more popular, which allows you to have modal + +00:59:52.400 --> 00:59:52.540 +editing when you are on specific parts of a + +00:59:54.480 --> 00:59:54.620 +file, like the opening parenthesis or the + +00:59:56.040 --> 00:59:56.480 +closing parenthesis. It's great, + +00:59:58.080 --> 00:59:58.320 +it provides modal editing for those modes, + +01:00:00.840 --> 01:00:01.340 +but I certainly do not know everything, + +01:00:04.040 --> 01:00:04.280 +every modal command associated to it. + +01:00:06.000 --> 01:00:06.180 +I just use the 1 that makes the most sense to + +01:00:07.680 --> 01:00:08.180 +me. So feel free to explore. + +01:00:13.200 --> 01:00:13.700 +[Speaker 1]: I'll just say, we get this so much. + +01:00:15.360 --> 01:00:15.660 +It's not that large. I mean, + +01:00:16.960 --> 01:00:17.360 +there's a fair number of files, + +01:00:20.600 --> 01:00:20.820 +but it's just like 1 major directory and then + +01:00:21.840 --> 01:00:22.340 +the KOutliner directory. + +01:00:25.120 --> 01:00:25.560 +And when you look at these things, + +01:00:26.640 --> 01:00:27.140 +you install web applications, + +01:00:30.240 --> 01:00:30.440 +everything else, just when you download the + +01:00:31.700 --> 01:00:31.820 +source code, it's much, + +01:00:33.480 --> 01:00:33.980 +much smaller than any of that. + +01:00:37.120 --> 01:00:37.360 +So I don't know why people you know accept + +01:00:39.140 --> 01:00:39.640 +that it's larger than your typical package. + +01:00:41.400 --> 01:00:41.900 +Why there's really an issue there. + +01:00:44.580 --> 01:00:45.080 +[Speaker 0]: I think it's because people tend to assume + +01:00:47.980 --> 01:00:48.480 +that a paradigm like the 1 you're describing, + +01:00:51.360 --> 01:00:51.560 +which seems to be changing the way you use + +01:00:53.200 --> 01:00:53.480 +Emacs in a way because you're no longer + +01:00:55.520 --> 01:00:56.000 +thinking of as buffers as separate entities, + +01:00:57.520 --> 01:00:57.980 +you can tunnel between them. + +01:00:59.820 --> 01:01:00.180 +You know, it feels like a huge paradigm shift + +01:01:02.120 --> 01:01:02.320 +and you assume that the code behind it is + +01:01:03.880 --> 01:01:04.080 +going to be humongous as well, + +01:01:05.080 --> 01:01:05.380 +but it's usually not the case. + +01:01:07.480 --> 01:01:07.640 +It's just that the idea is very pure at the + +01:01:09.560 --> 01:01:10.060 +start, and the paradigm shift that it allows + +01:01:14.020 --> 01:01:14.120 +is also magnificent. But at the end of the + +01:01:15.700 --> 01:01:16.200 +day, the code is fairly simple, + +01:01:17.860 --> 01:01:18.360 +because it does 1 thing and it does it well. + +01:01:20.860 --> 01:01:21.180 +[Speaker 1]: 1 thing I noticed too, + +01:01:23.560 --> 01:01:23.760 +I mean I'm a big believer in turnkey kind of + +01:01:26.780 --> 01:01:27.180 +systems. In fact a long time ago when I built + +01:01:28.680 --> 01:01:29.180 +an IDE on Emacs called InfoDoc, + +01:01:31.980 --> 01:01:32.480 +that was delivered pre-compiled. + +01:01:35.760 --> 01:01:35.940 +So it's like you download it like every other + +01:01:39.140 --> 01:01:39.440 +app and you run it. And so I think + +01:01:41.980 --> 01:01:42.480 +eliminating all the friction that occurs, + +01:01:45.860 --> 01:01:46.360 +and you know, I just got going recently with + +01:01:48.860 --> 01:01:49.160 +the wonderful packages that you just + +01:01:50.980 --> 01:01:51.460 +mentioned, VertiCo and Consult, + +01:01:55.120 --> 01:01:55.320 +but they don't have a manual that covers all + +01:01:57.280 --> 01:01:57.780 +that. They use sort of like a cookbook, + +01:02:02.020 --> 01:02:02.220 +a wiki online to answer a lot of the + +01:02:04.380 --> 01:02:04.600 +questions that people have and everybody has + +01:02:05.860 --> 01:02:06.360 +to figure out their configurations, + +01:02:10.640 --> 01:02:10.880 +you know, to make these things all work + +01:02:14.180 --> 01:02:14.680 +together. We'd like to do that engineering + +01:02:17.080 --> 01:02:17.440 +and say here it is, you know, + +01:02:19.240 --> 01:02:19.500 +it's like if you want to configure it and + +01:02:20.920 --> 01:02:21.420 +make it your own, you can do it. + +01:02:24.860 --> 01:02:25.160 +But there is a default configuration that + +01:02:28.180 --> 01:02:28.380 +handles all the typical use cases and you can + +01:02:30.940 --> 01:02:31.220 +just load it up and run because it's made to + +01:02:35.860 --> 01:02:36.020 +use, you don't have to hack it to make it + +01:02:36.760 --> 01:02:37.260 +useful for you. + +01:02:40.380 --> 01:02:40.560 +[Speaker 0]: Yeah, it reminds me of the discussion we had + +01:02:42.240 --> 01:02:42.740 +with Stéphane yesterday about sane defaults. + +01:02:45.080 --> 01:02:45.580 +And I think the question was, + +01:02:48.580 --> 01:02:49.080 +Emacs should probably ship with sane defaults + +01:02:51.360 --> 01:02:51.740 +for people. And Stéphane's answer was, + +01:02:53.620 --> 01:02:53.800 +well, my sane defaults might not be the same + +01:02:54.720 --> 01:02:55.220 +thing as your sane defaults. + +01:02:57.160 --> 01:02:57.560 +And that's why I think it's important, + +01:02:59.020 --> 01:02:59.340 +really, to have a core set of features, + +01:03:00.800 --> 01:03:01.300 +be it with hyperbole of org mode, + +01:03:02.020 --> 01:03:02.520 +that is well-documented, + +01:03:05.220 --> 01:03:05.500 +as you mentioned. But what I like about this + +01:03:06.900 --> 01:03:07.260 +in a way, and I think hyperbole is perhaps + +01:03:08.800 --> 01:03:09.300 +taking more benefits of this than Org Mode, + +01:03:11.780 --> 01:03:12.280 +is that the self-documentation aspect of it + +01:03:14.340 --> 01:03:14.540 +feels like it's easier with hyperbole because + +01:03:16.820 --> 01:03:17.300 +you're not bound by Org Mode buffers. + +01:03:18.840 --> 01:03:19.340 +You can link to just about everything. + +01:03:23.940 --> 01:03:24.240 +And for me, this ability to self-document is + +01:03:26.040 --> 01:03:26.140 +well, first, very true to the philosophy of + +01:03:27.040 --> 01:03:27.540 +Emacs in the first place, + +01:03:31.400 --> 01:03:31.900 +but also opens up those resonance cycles + +01:03:34.040 --> 01:03:34.180 +where, oh, you get interested and then you + +01:03:35.320 --> 01:03:35.820 +start reading up and then the documentation + +01:03:37.860 --> 01:03:38.320 +is so good that it feeds into your practice + +01:03:40.840 --> 01:03:41.040 +and then it goes nuclear and you gain so much + +01:03:42.040 --> 01:03:42.540 +knowledge as a result of this. + +01:03:44.280 --> 01:03:44.440 +All right, Bob, we are about out of time. + +01:03:46.120 --> 01:03:46.280 +We only have about 1 minute until we go to + +01:03:47.720 --> 01:03:48.220 +the next talk. Do you have any parting words? + +01:03:53.360 --> 01:03:53.860 +[Speaker 1]: I do. I think, you know, + +01:03:56.380 --> 01:03:56.880 +the world's complex, it's getting more + +01:03:59.980 --> 01:04:00.480 +complex. I think that's why people use Emacs + +01:04:02.080 --> 01:04:02.560 +in the first place, because it's a big + +01:04:04.600 --> 01:04:04.920 +system. You wouldn't use it unless you wanted + +01:04:06.100 --> 01:04:06.600 +it to simplify your life. + +01:04:10.580 --> 01:04:10.760 +Hyperbole is built with the same idea in + +01:04:14.020 --> 01:04:14.180 +mind. You may not get it just like a lot of + +01:04:15.720 --> 01:04:16.020 +people don't understand when they first + +01:04:17.900 --> 01:04:18.400 +encounter it, but when they do understand it, + +01:04:20.860 --> 01:04:21.360 +they're blown away. It changes their life. + +01:04:24.520 --> 01:04:25.020 +You know, when you really understand implicit + +01:04:27.880 --> 01:04:28.100 +buttons, I think that's 1 of the things in + +01:04:30.480 --> 01:04:30.820 +hyperbole that can change your Emacs working + +01:04:33.840 --> 01:04:34.060 +life. So just give that a try and I think + +01:04:36.140 --> 01:04:36.640 +you'll be pleasantly surprised across time. + +01:04:39.720 --> 01:04:39.860 +[Speaker 0]: And thank you so much Bob. + +01:04:41.400 --> 01:04:41.600 +We'll be moving on to the next talk in about + +01:04:43.480 --> 01:04:43.620 +20 seconds so everyone see you in a bit and + +01:04:44.440 --> 01:04:44.940 +Bob thank you so much again. + +01:04:45.560 --> 01:04:46.060 +[Speaker 1]: Thanks very much. Thank you. + +01:04:52.800 --> 01:04:53.000 +[Speaker 0]: All right I think we are off here now, + +01:04:53.800 --> 01:04:53.980 +so thank you so much Bob. + +01:04:55.380 --> 01:04:55.540 +I'm gonna need to step out and get ready for + +01:04:59.100 --> 01:04:59.240 +[Speaker 1]: Yeah, do your thing. You do a great job at + +01:05:01.400 --> 01:05:01.760 +it. But I wanted to ask you where in London + +01:05:04.280 --> 01:05:04.780 +[Speaker 0]: the next talk. I'm not in London, + +01:05:07.360 --> 01:05:07.480 +I'm in France and I just know the time in + +01:05:10.240 --> 01:05:10.740 +[Speaker 1]: you are. Oh, okay, got it. + +01:05:12.180 --> 01:05:12.680 +Sorry, I thought you were, + +01:05:15.020 --> 01:05:15.520 +[Speaker 0]: London. All right, bye-bye Bob. + +01:05:15.860 --> 01:05:16.360 +[Speaker 1]: take care. Bye. + +01:05:45.080 --> 01:05:45.580 +[Speaker 0]: Silence. + +01:06:00.060 --> 01:06:00.560 +You + +01:07:00.180 --> 01:07:00.680 +[Speaker 1]: 311. + +01:08:15.060 --> 01:08:15.560 +[Speaker 0]: Silence. + +01:10:20.580 --> 01:10:20.700 +[Speaker 2]: We will read the input from yesterday and we + +01:10:23.560 --> 01:10:24.060 +will continue the evaluation with a different + +01:10:25.380 --> 01:10:25.880 +I provided in this input. + +01:10:32.420 --> 01:10:32.660 +So let's try to type some arbitrary value And + +01:10:37.920 --> 01:10:38.100 +[Speaker 0]: this value. And at the same + +01:10:38.100 --> 01:10:38.380 +[Speaker 2]: you see that the loop continued with time, + +01:10:40.580 --> 01:10:41.080 +it could easily interrupt. + +01:10:45.720 --> 01:10:45.980 +OK, what most annoying thing that I had + +01:10:47.240 --> 01:10:47.560 +previously with the usual regular + +01:10:50.320 --> 01:10:50.820 +implementation, then I have a quite nice + +01:10:53.660 --> 01:10:54.160 +Geeks API where I can build packages, + +01:10:55.380 --> 01:10:55.880 +systems, and other stuff. + +01:10:59.640 --> 01:11:00.140 +But if I evaluate this expression, + +01:11:05.140 --> 01:11:05.640 +I will get an error. OK. + +01:11:11.500 --> 01:11:11.740 +I will get an error because I don't have an + +01:11:12.980 --> 01:11:13.480 +appropriate environment. + +01:11:16.640 --> 01:11:16.800 +But what I can do, I can connect to the + +01:11:22.360 --> 01:11:22.660 +remote label by creating a server with + +01:11:25.440 --> 01:11:25.920 +xlabelListen command and connecting to it + +01:11:27.100 --> 01:11:27.600 +with etherconnect command. + +01:11:28.580 --> 01:11:28.740 +And now I + +01:11:29.540 --> 01:11:30.040 +[Speaker 0]: can emulate this expression. + +01:11:32.780 --> 01:11:33.280 +Right? Wow. Right. Whoa. + +01:11:39.800 --> 01:11:40.300 +Okay. + +01:11:46.240 --> 01:11:46.740 +[Speaker 2]: It actually doesn't matter for my example. + +01:11:51.820 --> 01:11:52.320 +I will explain how it doesn't work easily. + +01:11:54.940 --> 01:11:55.400 +This is a long running process which prints + +01:11:57.980 --> 01:11:58.280 +something and it can take up to a few + +01:12:00.980 --> 01:12:01.160 +minutes. And for the whole few minutes I + +01:12:04.960 --> 01:12:05.440 +don't see any results the same as with this + +01:12:07.760 --> 01:12:08.000 +infinite loop, which brings the STD out, + +01:12:09.960 --> 01:12:10.460 +but I don't see anything interactive. + +01:12:15.720 --> 01:12:16.120 +And with array, I can run the evaluation of + +01:12:22.120 --> 01:12:22.620 +the same expression. And you will see + +01:12:27.040 --> 01:12:27.440 +instantly that STTR output is presented here + +01:12:29.060 --> 01:12:29.560 +in slightly yellowish color. + +01:12:32.200 --> 01:12:32.560 +And I can interrupt the evaluation if I don't + +01:12:35.080 --> 01:12:35.580 +want to wait until it's finished. + +01:12:39.560 --> 01:12:39.920 +And just after that, I can evaluate another + +01:12:48.340 --> 01:12:48.840 +[Speaker 0]: that's + +01:12:54.520 --> 01:12:55.020 +[Speaker 2]: value. So cool. And let's see 1 more thing. + +01:12:56.320 --> 01:12:56.820 +We have an infinite loop. + +01:12:59.060 --> 01:12:59.560 +And we have some completion here. + +01:13:00.700 --> 01:13:01.200 +And completion still works. + +01:13:05.740 --> 01:13:05.900 +Very nice. While the infinite loop is + +01:13:12.160 --> 01:13:12.440 +[Speaker 0]: OK. Actually, it took + +01:13:15.060 --> 01:13:15.560 +[Speaker 2]: running. me around 2 months of full-time work + +01:13:19.540 --> 01:13:19.740 +under my own savings. And you can support and + +01:13:22.800 --> 01:13:23.040 +help to the project using WebIn Collective or + +01:13:24.160 --> 01:13:24.660 +by contributing on SourceHub. + +01:13:30.180 --> 01:13:30.420 +The future steps for the project includes an + +01:13:32.980 --> 01:13:33.120 +experimental workflow where you have a + +01:13:35.580 --> 01:13:36.060 +multiple simultaneous evaluation in different + +01:13:37.060 --> 01:13:37.560 +contexts. For example, + +01:13:40.640 --> 01:13:41.140 +you have fibers, you have goblins, + +01:13:45.720 --> 01:13:46.000 +you have some HTTP server or some other + +01:13:48.340 --> 01:13:48.840 +thing, and you want to run all of them + +01:13:54.140 --> 01:13:54.640 +independently in slightly isolated sessions, + +01:13:59.280 --> 01:13:59.540 +and you want to have ability to still + +01:14:00.320 --> 01:14:00.720 +interact with them. For example, + +01:14:03.340 --> 01:14:03.800 +if they require standard input or something + +01:14:07.540 --> 01:14:08.040 +else you want to be able to provide. + +01:14:12.040 --> 01:14:12.320 +You want to see the STD out of those + +01:14:13.780 --> 01:14:14.280 +long-running processors and so on. + +01:14:19.780 --> 01:14:20.280 +The second thing is 3D integration for better + +01:14:22.000 --> 01:14:22.500 +syntax highlighting, code navigation, + +01:14:26.680 --> 01:14:27.180 +and other features. And after that, + +01:14:30.140 --> 01:14:30.640 +probably we will do a full-fledged debugger + +01:14:35.760 --> 01:14:36.020 +so you can jump expressions 1 by 1 and see + +01:14:39.380 --> 01:14:39.880 +the results and see some intermediate values + +01:14:41.880 --> 01:14:42.380 +during the evaluation. + +01:14:44.960 --> 01:14:45.020 +And it's very possible because nrecl is a + +01:14:46.760 --> 01:14:46.960 +very extensible protocol and you can + +01:14:49.480 --> 01:14:49.980 +implement whatever you want on top of it. + +01:14:55.380 --> 01:14:55.860 +I will answer 2 probably very frequent + +01:14:57.660 --> 01:14:58.000 +questions. Does it support other Scheme + +01:15:00.520 --> 01:15:01.020 +implementations? At the moment, + +01:15:04.200 --> 01:15:04.360 +it doesn't. But the Scheme implementation is + +01:15:07.340 --> 01:15:07.840 +not restricted. You have a server which + +01:15:09.520 --> 01:15:09.920 +implemented in your language, + +01:15:10.640 --> 01:15:11.140 +and you have a client, + +01:15:16.320 --> 01:15:16.620 +in our case, Array, which communicates with + +01:15:19.860 --> 01:15:20.280 +this protocol. So if you implement an Ripple + +01:15:21.300 --> 01:15:21.800 +server in a different language, + +01:15:25.460 --> 01:15:25.840 +it should work with already implemented Array + +01:15:32.180 --> 01:15:32.500 +client. And is it possible to use the same + +01:15:34.200 --> 01:15:34.640 +functionality in other text editors, + +01:15:35.920 --> 01:15:36.340 +for example, in VS Code, + +01:15:41.200 --> 01:15:41.420 +Vim, whatever, yes, it's possible and the + +01:15:43.860 --> 01:15:44.240 +case is similar here. You have already + +01:15:46.920 --> 01:15:47.220 +implemented an EnableServer and you can write + +01:15:50.500 --> 01:15:51.000 +your own and it will work. + +01:15:55.020 --> 01:15:55.260 +I would like to thank the authors and + +01:15:57.260 --> 01:15:57.760 +maintainers and contributors of Kyle, + +01:15:59.200 --> 01:15:59.700 +Geyser, Cider, Closure, + +01:16:03.260 --> 01:16:03.760 +and Emacs, and all other people who somehow + +01:16:07.360 --> 01:16:07.860 +related to the work on those projects + +01:16:10.240 --> 01:16:10.740 +involved in this talk. + +01:16:13.320 --> 01:16:13.480 +And I hope the scheme programming will be + +01:16:16.320 --> 01:16:16.820 +enjoyable. If you want to contact me, + +01:16:19.600 --> 01:16:19.900 +join TrojanRC channel at RepairerChat or drop + +01:16:21.820 --> 01:16:22.260 +me a message via email or feed the words + +01:16:26.600 --> 01:16:26.820 +using Andrew at TrojanHackle and I will see + +01:16:28.680 --> 01:16:29.180 +you in a bit in Kuwait session. + +01:16:57.220 --> 01:16:57.440 +[Speaker 3]: Hey folks. So this was a great talk by Andrew + +01:16:58.860 --> 01:16:59.340 +Tropan. Unfortunately, + +01:17:02.280 --> 01:17:02.780 +Andrew isn't around just yet. + +01:17:04.480 --> 01:17:04.680 +We are still waiting for him if he does show + +01:17:08.180 --> 01:17:08.680 +up but in the meantime please do feel free to + +01:17:11.480 --> 01:17:11.980 +continue posting your questions on the path + +01:17:14.580 --> 01:17:15.080 +and if Andrew does show up here of course + +01:17:17.340 --> 01:17:17.640 +We'll take them otherwise we will forward + +01:17:19.700 --> 01:17:19.920 +them to Andrew so that he could answer them + +01:17:21.360 --> 01:17:21.860 +after the conference. Thank you + +01:17:45.060 --> 01:17:45.560 +[Speaker 0]: You + +01:18:00.080 --> 01:18:00.580 +Silence. + +01:18:15.060 --> 01:18:15.560 +Silence. Silence. + +01:19:07.760 --> 01:19:08.260 +[Speaker 3]: I see 2 questions on the panel already. + +01:19:14.280 --> 01:19:14.600 +Let's see. 1 asking how much Android uses + +01:19:17.720 --> 01:19:18.040 +these repos remotely or versus on their + +01:19:20.640 --> 01:19:20.800 +desktop. And now they're asking if this can + +01:19:22.760 --> 01:19:23.260 +be integrated with EGLOT. + +01:19:26.400 --> 01:19:26.580 +And I will note that it is very cool that + +01:19:28.200 --> 01:19:28.700 +this year we've had so many talks on repos. + +01:19:32.320 --> 01:19:32.680 +Just goes to show how powerful Emacs is and + +01:19:34.540 --> 01:19:34.640 +just how much or how far you can push it and + +01:19:44.760 --> 01:19:45.020 +how much you can do So see someone asking on + +01:19:49.660 --> 01:19:50.160 +IRC If or how many people use Given Geeks + +01:19:52.960 --> 01:19:53.460 +Since we are talking about scheme, + +01:19:56.980 --> 01:19:57.260 +GivenGeeks is a great platform slash + +01:20:01.520 --> 01:20:01.700 +operating system or distro for for your + +01:20:03.480 --> 01:20:03.980 +desktops but also for servers and such. + +01:20:04.920 --> 01:20:05.380 +They do some impressive, + +01:20:09.400 --> 01:20:09.900 +amazing work. And it's pretty much all done + +01:20:10.900 --> 01:20:11.400 +in the Google Cloud schema. + +01:20:13.120 --> 01:20:13.620 +So very cool stuff. + +01:20:55.520 --> 01:20:56.020 +[Speaker 0]: Silence. Silence. + +01:21:11.040 --> 01:21:11.540 +Silence. + +01:21:30.060 --> 01:21:30.560 +You + +01:22:11.520 --> 01:22:11.680 +[Speaker 3]: I see another interesting question on the + +01:22:15.020 --> 01:22:15.520 +pad. How hard is it to add support for + +01:22:16.560 --> 01:22:17.060 +something relevant in Guile? + +01:22:19.600 --> 01:22:19.760 +And if it makes sense to contribute at this + +01:22:20.500 --> 01:22:21.000 +early stage of development. + +01:22:23.520 --> 01:22:23.860 +They said that they've written several + +01:22:25.080 --> 01:22:25.440 +packages for chicken skin before, + +01:22:26.960 --> 01:22:27.460 +and they would like to try this 1 as well. + +01:23:00.260 --> 01:23:00.760 +[Speaker 0]: You you + +01:23:46.380 --> 01:23:46.880 +[Speaker 3]: Okay. + +01:24:17.980 --> 01:24:18.480 +I guess since Andrew isn't still here, + +01:24:20.740 --> 01:24:21.100 +and there was some chatter about Giddu Geeks + +01:24:23.960 --> 01:24:24.460 +in the chat, maybe it might be nice for me to + +01:24:26.980 --> 01:24:27.100 +share my screen and plug Giddu Geeks for a + +01:24:29.600 --> 01:24:29.700 +little bit and introduce it, + +01:24:32.420 --> 01:24:32.600 +or at least show its website to folks who may + +01:24:34.400 --> 01:24:34.600 +not have seen it yet. So I'm going to try and + +01:24:35.000 --> 01:24:35.500 +do that now. + +01:25:11.320 --> 01:25:11.820 +OK, let's see if this works. + +01:25:25.080 --> 01:25:25.580 +OK, so this is GnuGeeks' website. + +01:25:26.580 --> 01:25:27.080 +You can go to geeks.gnu.org + +01:25:30.320 --> 01:25:30.800 +and they introduce it at the top. + +01:25:35.020 --> 01:25:35.520 +So it's a wholly free operating system or + +01:25:38.600 --> 01:25:38.780 +distribution of Gini Linux Meaning that it + +01:25:41.680 --> 01:25:41.920 +only has free software packaged and no + +01:25:44.220 --> 01:25:44.440 +non-free packages. So it is endorsed by the + +01:25:47.900 --> 01:25:48.040 +FSF on the Gini project As someone said in + +01:25:49.320 --> 01:25:49.820 +the chat, it's kind of like Nix, + +01:25:52.960 --> 01:25:53.460 +but instead built on GigaGallop scheme. + +01:25:56.880 --> 01:25:57.380 +It has transactional upgrades and rollbacks, + +01:26:01.780 --> 01:26:01.940 +so if you do upgrade your system and let's + +01:26:02.720 --> 01:26:02.980 +say in the middle of it, + +01:26:04.740 --> 01:26:05.240 +your hardware fails or your power goes out, + +01:26:08.080 --> 01:26:08.240 +the likelihood of things being corrupted is + +01:26:10.400 --> 01:26:10.900 +very low because the upgrade is essentially + +01:26:13.220 --> 01:26:13.720 +prepared like in the background. + +01:26:15.660 --> 01:26:16.160 +And then pretty much atomically, + +01:26:18.340 --> 01:26:18.840 +the system is switched to it. + +01:26:22.840 --> 01:26:23.080 +And also if there is some kind of Sorry, + +01:26:23.940 --> 01:26:24.440 +I'm losing my voice here. + +01:26:26.320 --> 01:26:26.660 +If there is some kind of issue that makes + +01:26:27.340 --> 01:26:27.840 +your system unbootable, + +01:26:31.100 --> 01:26:31.460 +you could always go back to booting the + +01:26:34.440 --> 01:26:34.640 +previously, the previous revision of your + +01:26:37.200 --> 01:26:37.360 +system when you restart in the + +01:26:47.360 --> 01:26:47.800 +GrubBootLoader. So they have a nice blog + +01:26:50.280 --> 01:26:50.500 +where they regularly post updates and what's + +01:26:52.360 --> 01:26:52.540 +new in the project. You can go check that + +01:26:57.160 --> 01:26:57.660 +out. They also have a packages archive where + +01:27:00.480 --> 01:27:00.660 +you can see a list of all the software that + +01:27:02.380 --> 01:27:02.880 +has been packaged for Pinookies. + +01:27:05.140 --> 01:27:05.640 +It is an impressive list. + +01:28:44.460 --> 01:28:44.960 +[Speaker 0]: You + +01:30:30.060 --> 01:30:30.560 +Silence. + +01:32:40.080 --> 01:32:40.580 +And obviously you can run kines in it. + +01:32:50.640 --> 01:32:51.140 +There is mouse support. + +01:33:02.580 --> 01:33:03.080 +And there is true color support, + +01:33:08.040 --> 01:33:08.180 +so you can show any color in a tagline as + +01:33:09.900 --> 01:33:10.400 +long as your main display supports it. + +01:33:17.660 --> 01:33:18.160 +And then there is shell integration. + +01:33:20.740 --> 01:33:21.240 +For example, directory tracking. + +01:33:28.697 --> 01:33:29.197 +Like if I can switch to some other directory + +01:33:31.420 --> 01:33:31.920 +and Thank you. diff --git a/2023/organizers-notebook/index.org b/2023/organizers-notebook/index.org index 8f5a4ab2..d6faae11 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 html +#+INCLUDE: schedule.svg 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 html +#+INCLUDE: schedule-option-aligned-talks.svg 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 html +#+INCLUDE: schedule-option-sun-am.svg export EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT EXPORT html diff --git a/2023/talks/hyperamp.md b/2023/talks/hyperamp.md index 63aa2e04..af5cf5eb 100644 --- a/2023/talks/hyperamp.md +++ b/2023/talks/hyperamp.md @@ -9,6 +9,13 @@ # Top 10 ways Hyperbole amps up Emacs Robert Weiner - Pronunciation: like fine 'wine' and 'er', , +[[!template id="help" +summary="main talk does not have captions" +tags="help_with_main_captions" +message="""This talk does not have captions yet. +Would you like to help [caption this talk](/captioning)? +You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt)."""]] + [[!inline pages="internal(2023/info/hyperamp-before)" raw="yes"]] We will count down the top ten ways that GNU Hyperbole can improve your -- cgit v1.2.3