summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2023-12-26 20:44:44 -0500
committerSacha Chua <sacha@sachachua.com>2023-12-26 20:44:44 -0500
commit3d9dbd0ce9c94f59e1c3d580f64075ff9c2ad834 (patch)
tree721e744665b276bee6ebe22f2bd65ee804cfdbbf
parent0b00ae488c79a18ca5bc68eaaaf7ef9f8e401c25 (diff)
downloademacsconf-wiki-3d9dbd0ce9c94f59e1c3d580f64075ff9c2ad834.tar.xz
emacsconf-wiki-3d9dbd0ce9c94f59e1c3d580f64075ff9c2ad834.zip
add hyperamp captions
-rw-r--r--2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--original.vtt4625
-rw-r--r--2023/organizers-notebook/index.org6
-rw-r--r--2023/talks/hyperamp.md7
3 files changed, 4635 insertions, 3 deletions
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', <https://gnu.org/s/hyperbole> <https://github.com/rswgnu/hyperbole>, <mailto:rsw@gnu.org>
+[[!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