summaryrefslogtreecommitdiffstats
path: root/2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt')
-rw-r--r--2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt2309
1 files changed, 2309 insertions, 0 deletions
diff --git a/2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt b/2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt
new file mode 100644
index 00000000..94baf853
--- /dev/null
+++ b/2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt
@@ -0,0 +1,2309 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:12.239
+All right, you're good to go. Are people here?
+
+00:00:12.240 --> 00:00:15.639
+Let me read the first question to you since I'm here.
+
+NOTE Q: I'm excited to know opinion on current state of using MCP and AI for PKM and PIEs. Since they do carry lot of burden out of us and ease lot of process. How does hyperbole stand with coming days?
+
+00:00:15.640 --> 00:00:17.639
+The first question here is,
+
+00:00:17.640 --> 00:00:20.599
+I'm excited to know opinion and current state
+
+00:00:20.600 --> 00:00:23.799
+of using MCP and AI for PKMs and PIEs.
+
+00:00:23.800 --> 00:00:28.639
+Since they do carry a lot of burden out of us, it means a lot of process.
+
+00:00:28.640 --> 00:00:33.439
+How does our pipeline stand with the coming days?
+
+00:00:33.440 --> 00:00:35.119
+Thanks for the question.
+
+00:00:35.120 --> 00:00:40.239
+AI is obviously on everybody's mind.
+
+00:00:40.240 --> 00:00:43.719
+We haven't done a lot of integration
+
+00:00:43.720 --> 00:00:47.199
+with any of the popular AI engines,
+
+00:00:47.200 --> 00:00:50.519
+but I think as you'll see through this Q&A session,
+
+00:00:50.520 --> 00:00:54.559
+Hyperbole's function is really to interlink
+
+00:00:54.560 --> 00:00:57.959
+your information everywhere throughout Emacs.
+
+00:00:57.960 --> 00:01:02.279
+And so, whether you're using a chatbot
+
+00:01:02.280 --> 00:01:04.919
+in a specific buffer,
+
+00:01:04.920 --> 00:01:11.359
+you can use hyperbole implicit links, implicit buttons
+
+00:01:11.360 --> 00:01:17.039
+to activate different actions there as well.
+
+00:01:17.040 --> 00:01:20.399
+So sometimes it takes a bit of customization,
+
+00:01:20.400 --> 00:01:25.999
+a small amount of two to seven lines of code to do that.
+
+00:01:26.000 --> 00:01:30.839
+As we get to working with more of these engines,
+
+00:01:30.840 --> 00:01:34.119
+we'll build that into the core part of Hyperbole.
+
+00:01:34.120 --> 00:01:40.039
+But right now, that's left as an extension
+
+00:01:40.040 --> 00:01:43.359
+for users who are heavily using MCP
+
+00:01:43.360 --> 00:01:45.879
+or other protocols right now.
+
+00:01:45.880 --> 00:01:50.239
+We have, for example, integrated
+
+00:01:50.240 --> 00:01:57.559
+with LSPs, you know, for coding and have that interface through xref
+
+00:01:57.560 --> 00:02:01.199
+and basically using the single key, the action key,
+
+00:02:01.200 --> 00:02:02.719
+which is made a return.
+
+00:02:02.720 --> 00:02:07.599
+You can jump around to any of your source definitions
+
+00:02:07.600 --> 00:02:10.999
+from any reference in almost any language
+
+00:02:11.000 --> 00:02:14.875
+that anybody uses today. So you can extrapolate from that
+
+00:02:14.876 --> 00:02:17.119
+how that might work with AI as well.
+
+00:02:17.120 --> 00:02:22.999
+And I think you'll see later when we talk about HyWiki
+
+00:02:23.000 --> 00:02:26.719
+that we're now enabling just just wiki words
+
+00:02:26.720 --> 00:02:30.079
+to be buttons in hyperbole.
+
+00:02:30.080 --> 00:02:33.999
+So those could be part of your chat with an AI
+
+00:02:34.000 --> 00:02:37.519
+and you just click on it and you jump right to all your references
+
+00:02:37.520 --> 00:02:49.119
+associated with that terminology. Thanks for the question.
+
+00:02:49.120 --> 00:02:51.839
+Should I just go through the second question?
+
+00:02:51.840 --> 00:02:54.199
+I thought people would be glad.
+
+NOTE Q: As a normal user who codes and takes notes, I really want to deep-dive and learn Hyperbole, but always end up winding back up to embark and org-mode being the better system. For me hyperbole looks like over-engineered (or over-configured) system which other individual packages do well. And outside emacs there is no system supporting hyperbole nor any usability.
+
+00:02:54.200 --> 00:02:56.559
+As a normal user who codes and takes notes,
+
+00:02:56.560 --> 00:02:58.759
+I really want to deep dive and learn Hyperbole,
+
+00:02:58.760 --> 00:03:02.079
+but always end up winding back up to Embark
+
+00:03:02.080 --> 00:03:04.399
+and Org Mode being the better system.
+
+00:03:04.400 --> 00:03:06.479
+For me, Hyperbole looks over engineering
+
+00:03:06.480 --> 00:03:08.079
+or over the peer system,
+
+00:03:08.080 --> 00:03:10.119
+which other individual packages do well.
+
+00:03:10.120 --> 00:03:15.399
+And outside Emacs, there's no system supporting Hyperbole or any usability.
+
+00:03:15.400 --> 00:03:17.519
+And I think you've cited answering
+
+00:03:17.520 --> 00:03:21.159
+that already, so go ahead.
+
+00:03:21.160 --> 00:03:26.919
+Right, Hyperbole is large, but there's reasons behind that.
+
+00:03:26.920 --> 00:03:30.599
+We're just trying to link all your information in Emacs.
+
+00:03:30.600 --> 00:03:38.079
+So I think you can see my screen here in Emacs.
+
+00:03:38.080 --> 00:03:45.439
+So for example, you can take any Lisp expression,
+
+00:03:45.440 --> 00:03:49.239
+even a variable like here we have in Hyperbole,
+
+00:03:49.240 --> 00:03:50.959
+hyperb:dir variable,
+
+00:03:50.960 --> 00:03:53.519
+and I just hit the action key M-RET,
+
+00:03:53.520 --> 00:03:57.759
+and in my minibuffer, I see the value of that variable,
+
+00:03:57.760 --> 00:04:01.599
+but I could just as well take any other expression
+
+00:04:01.600 --> 00:04:03.919
+and take the outer parens off
+
+00:04:03.920 --> 00:04:05.679
+and change them to angle brackets
+
+00:04:05.680 --> 00:04:08.239
+and now that's a live hyperbutton.
+
+00:04:08.240 --> 00:04:12.079
+Could be in a comment in a programming buffer in this case.
+
+00:04:12.080 --> 00:04:15.679
+It's in Koutliner buffer,
+
+00:04:15.680 --> 00:04:19.159
+which is a an auto-numbered outliner part of hyperbole.
+
+00:04:19.160 --> 00:04:23.599
+So let's just try this and say M-RET.
+
+00:04:23.600 --> 00:04:28.719
+I pressed and it ran occur and found all the occurrences of buttons.
+
+00:04:28.720 --> 00:04:31.919
+And similarly in here, I could just jump and go
+
+00:04:31.920 --> 00:04:35.519
+to any of these lines directly
+
+00:04:35.520 --> 00:04:37.919
+by hitting M-RET in that buffer as well.
+
+00:04:37.920 --> 00:04:40.760
+So all your text, all your sort of
+
+00:04:40.761 --> 00:04:44.879
+what we call implicit links become live in Hyperbole.
+
+00:04:44.880 --> 00:04:46.519
+And you didn't have to learn much.
+
+00:04:46.520 --> 00:04:48.559
+You just learn, you know, if you know a little Lisp
+
+00:04:48.560 --> 00:04:50.279
+or how to type any expression,
+
+00:04:50.280 --> 00:04:52.879
+then you just change the outer brackets.
+
+00:04:52.880 --> 00:04:55.079
+And all of a sudden, you have hyperbuttons.
+
+00:04:55.080 --> 00:05:01.079
+So Hyperbole, you can learn a little bit at a time.
+
+00:05:01.080 --> 00:05:04.479
+And although it seems daunting at first
+
+00:05:04.480 --> 00:05:06.879
+because it has so much functionality,
+
+00:05:06.880 --> 00:05:09.679
+very large and rich architecture.
+
+00:05:09.680 --> 00:05:13.639
+But what we do is teach people one piece at a time.
+
+NOTE Implicit buttons
+
+00:05:13.640 --> 00:05:17.919
+So just to continue on that a little bit,
+
+00:05:17.920 --> 00:05:19.639
+implicit buttons are buttons
+
+00:05:19.640 --> 00:05:23.359
+that exist just from the text pattern in the buffer.
+
+00:05:23.360 --> 00:05:28.279
+So you saw an example of changing Lisp into implicit buttons right there.
+
+00:05:28.280 --> 00:05:30.959
+I could do keystrokes.
+
+00:05:30.960 --> 00:05:33.119
+I can just type them out in my buffer
+
+00:05:33.120 --> 00:05:34.879
+and surround them with braces.
+
+00:05:34.880 --> 00:05:37.439
+So here's something, let's see,
+
+00:05:37.440 --> 00:05:41.079
+this is actually a command in the Koutliner
+
+00:05:41.080 --> 00:05:45.799
+to jump to the cell numbered four. So let's just do that.
+
+00:05:45.800 --> 00:05:47.599
+And it took me right there, right?
+
+00:05:47.600 --> 00:05:51.759
+So I'm just pressing M-RET to activate these buttons.
+
+00:05:51.760 --> 00:05:56.279
+Similarly, any sort of, this is a complex example,
+
+00:05:56.280 --> 00:05:59.479
+but any path name I can surround with double quotes,
+
+00:05:59.480 --> 00:06:01.079
+and it's a live hyperbutton.
+
+00:06:01.080 --> 00:06:05.479
+In this case, I want to jump to a path name called readme.md,
+
+00:06:05.480 --> 00:06:08.359
+but it's in a directory that's specified
+
+00:06:08.360 --> 00:06:13.519
+by an actual list variable. And then I want to go directly
+
+00:06:13.520 --> 00:06:17.479
+to a headline within that file called Hyperbole manual.
+
+00:06:17.480 --> 00:06:19.759
+And within that headline, I wanna go
+
+00:06:19.760 --> 00:06:22.719
+to the eighth line relative to that.
+
+00:06:22.720 --> 00:06:24.879
+So all I have to do, M-RET again,
+
+00:06:24.880 --> 00:06:28.959
+and boom, I'm in that, I'm directly linked to that.
+
+00:06:28.960 --> 00:06:33.799
+And Hyperbole has ways that you can just split your windows like this
+
+00:06:33.800 --> 00:06:38.079
+and create that reference in the source buffer right there.
+
+00:06:38.080 --> 00:06:41.999
+You just press a few keys and it'll embed that link.
+
+00:06:42.000 --> 00:06:43.839
+We'll see that a little later.
+
+NOTE Getting help
+
+00:06:43.840 --> 00:06:47.319
+Another example, so all of these buttons,
+
+00:06:47.320 --> 00:06:49.599
+if I just show you here,
+
+00:06:49.600 --> 00:06:52.279
+you can press C-h A anytime.
+
+00:06:52.280 --> 00:06:54.319
+and it will show you exactly
+
+00:06:54.320 --> 00:06:56.559
+what M-RET will do in that context.
+
+00:06:56.560 --> 00:06:59.479
+In this case, it's an implicit button,
+
+00:06:59.480 --> 00:07:03.119
+and it shows you even where the button starts and ends,
+
+00:07:03.120 --> 00:07:06.679
+what type of action it will run,
+
+00:07:06.680 --> 00:07:08.039
+it's a link to a file line,
+
+00:07:08.040 --> 00:07:09.999
+and then what arguments it takes.
+
+00:07:10.000 --> 00:07:13.999
+So Hyperbole extracts all this meta information
+
+00:07:14.000 --> 00:07:16.679
+just from the text in your buffer
+
+00:07:16.680 --> 00:07:19.119
+and displays it to you conveniently
+
+00:07:19.120 --> 00:07:22.319
+so you can know before you ever touch a hyper button
+
+00:07:22.320 --> 00:07:24.479
+if it will do something that you want it to do.
+
+00:07:24.480 --> 00:07:28.559
+Here we have a fairly advanced button
+
+00:07:28.560 --> 00:07:31.519
+that's very simple to do. You just specify a bug in Emacs
+
+00:07:31.520 --> 00:07:34.279
+that you want to reference to.
+
+00:07:34.280 --> 00:07:40.039
+Notice no delimiters, just bug pound, whatever, M-RET.
+
+00:07:40.040 --> 00:07:45.479
+And I'm in Gnus reading the conversation for that bug.
+
+00:07:45.480 --> 00:07:48.719
+And I can just, you know, move
+
+00:07:48.720 --> 00:07:50.919
+through all the conversation.
+
+00:07:50.920 --> 00:07:56.039
+I can quit out of there and go back to where I was.
+
+00:07:56.040 --> 00:07:59.599
+So very, very easy to use these implicit buttons
+
+00:07:59.600 --> 00:08:00.879
+because they're already there
+
+00:08:00.880 --> 00:08:03.679
+throughout your Emacs buffers.
+
+00:08:03.680 --> 00:08:06.119
+I described the C-h A, what that does.
+
+00:08:06.120 --> 00:08:09.359
+And there's other types of buttons
+
+00:08:09.360 --> 00:08:11.559
+that we can get into as questions go on,
+
+00:08:11.560 --> 00:08:14.719
+but you can create your own explicit buttons
+
+00:08:14.720 --> 00:08:18.719
+that have a little slightly different delimiter than you see
+
+00:08:18.720 --> 00:08:19.799
+in the implicit buttons.
+
+00:08:19.800 --> 00:08:24.759
+And this one I just put in here to show you that
+
+00:08:24.760 --> 00:08:30.439
+If you use it and you go, this is the hyperbole to do list,
+
+00:08:30.440 --> 00:08:31.879
+which is an org buffer.
+
+00:08:31.880 --> 00:08:35.079
+But I wanted to show in here that similarly,
+
+00:08:35.080 --> 00:08:37.799
+we have implicit buttons for TODOs in the work.
+
+00:08:37.800 --> 00:08:39.679
+And when we hit M-RET,
+
+00:08:39.680 --> 00:08:42.679
+it just changes the state of that to do.
+
+00:08:42.680 --> 00:08:44.919
+And I can cycle through those
+
+00:08:44.920 --> 00:08:47.399
+but even better with the prefix argument
+
+00:08:47.400 --> 00:08:50.399
+if I have multiple sequences of TODOs
+
+00:08:50.400 --> 00:08:53.519
+because there's Bob and Mats that maintain hyperbole
+
+00:08:53.520 --> 00:08:55.999
+so I can shift to Bob's TODOs
+
+00:08:56.000 --> 00:08:57.759
+with C-u M-RET
+
+00:08:57.760 --> 00:09:00.079
+and then cycle through the states for me
+
+00:09:00.080 --> 00:09:05.039
+So very very easy to use,
+
+00:09:05.040 --> 00:09:08.319
+you know something that's a little bit more difficult to do
+
+00:09:08.320 --> 00:09:12.079
+I think in org without it.
+
+NOTE Explicit buttons
+
+00:09:12.080 --> 00:09:16.239
+So that's an explicit button
+
+00:09:16.240 --> 00:09:19.479
+where I had to actually say I want to create this button,
+
+00:09:19.480 --> 00:09:21.599
+and I had to specify what type it is.
+
+00:09:21.600 --> 00:09:23.759
+If I show you the information there again,
+
+00:09:23.760 --> 00:09:25.879
+you see it has a little different type
+
+00:09:25.880 --> 00:09:29.679
+called a keyboard key, which runs just the key sequence.
+
+00:09:29.680 --> 00:09:34.759
+So you're starting to see already
+
+00:09:34.760 --> 00:09:36.839
+that explicit buttons have a type
+
+00:09:36.840 --> 00:09:38.159
+that's connected to an action
+
+00:09:38.160 --> 00:09:41.199
+that an implicit button can do as well.
+
+00:09:41.200 --> 00:09:42.959
+So all of this ties back together.
+
+NOTE Homepage
+
+00:09:42.960 --> 00:09:47.079
+And finally, there's a homepage that Hyperbole has,
+
+00:09:47.080 --> 00:09:49.159
+a personal homepage that you have.
+
+00:09:49.160 --> 00:09:52.999
+You hit C-h h, which is our mini-buffer menu,
+
+00:09:53.000 --> 00:09:58.319
+and then you hit what is it, b for button file
+
+00:09:58.320 --> 00:10:01.439
+and then p for personal file.
+
+00:10:01.440 --> 00:10:05.239
+And that just brings you to basically a set of links
+
+00:10:05.240 --> 00:10:10.199
+that you can create buttons in any format you want.
+
+00:10:10.200 --> 00:10:12.479
+There's no structure that you see here.
+
+00:10:12.480 --> 00:10:18.759
+But the nice thing is that all of these buttons that have these names, as we call them,
+
+00:10:18.760 --> 00:10:20.279
+with the delimiters here,
+
+00:10:20.280 --> 00:10:23.799
+can be referenced now as what we call global buttons
+
+00:10:23.800 --> 00:10:28.239
+wherever you are in Emacs. So I'm in a separate buffer here
+
+00:10:28.240 --> 00:10:30.719
+and say I want to jump to that to-do button
+
+00:10:30.720 --> 00:10:33.279
+that's labeled td on line 10 down there.
+
+00:10:33.280 --> 00:10:35.519
+No matter what I have on screen,
+
+00:10:35.520 --> 00:10:39.199
+I can hit C-h h g for global button,
+
+00:10:39.200 --> 00:10:43.719
+a for activate, and then it gives me a list of those.
+
+00:10:43.720 --> 00:10:47.119
+So I know it's td, I just put td in.
+
+00:10:47.120 --> 00:10:52.159
+Okay, that's a path link problem I have,
+
+00:10:52.160 --> 00:10:56.359
+but when I fix the link, it would go to it.
+
+00:10:56.360 --> 00:10:58.239
+So you can create buttons
+
+00:10:58.240 --> 00:11:01.639
+that you can access in any mode, anywhere,
+
+00:11:01.640 --> 00:11:05.799
+and just give them quick names, and it's very easy.
+
+00:11:05.800 --> 00:11:08.559
+So that kind of gives you an idea
+
+00:11:08.560 --> 00:11:11.719
+of how you can get very productive
+
+00:11:11.720 --> 00:11:14.999
+with hyperbole with just a few simple techniques.
+
+00:11:15.000 --> 00:11:30.439
+You still there Sacha? Yep, I'm still here.
+
+00:11:30.440 --> 00:11:41.539
+I have too many tabs.
+
+NOTE Q: I've been using "activities.el" and "Bufferlo" to save dedicated workspaces (open buffers, window positions) in tabs and frames for tasks/projects across Emacs sessions. Could I do something similar with Hyperbole?
+
+00:11:41.540 --> 00:11:46.199
+So the question is, I've been using activities.el
+
+00:11:46.200 --> 00:11:48.879
+and bufferlo to save dedicated workplaces,
+
+00:11:48.880 --> 00:11:52.159
+open buffers, and decisions in tabs and frames
+
+00:11:52.160 --> 00:11:54.599
+for tasks and projects across the next sessions.
+
+00:11:54.600 --> 00:12:00.119
+Can I do something similar with Hyperbole? Yes, you can.
+
+00:12:00.120 --> 00:12:03.719
+And activities is a nice package from alphapapa.
+
+00:12:03.720 --> 00:12:07.399
+We've actually been working with it lately.
+
+00:12:07.400 --> 00:12:11.159
+So we're probably in the next month or so
+
+00:12:11.160 --> 00:12:13.479
+we'll have a specific integration
+
+00:12:13.480 --> 00:12:15.999
+to activities built into Hyperbole.
+
+00:12:16.000 --> 00:12:21.519
+But right now, we don't. But of course, you can call
+
+00:12:21.520 --> 00:12:23.279
+any of its functions or key bindings
+
+00:12:23.280 --> 00:12:26.079
+using the techniques that I just showed you earlier.
+
+00:12:26.080 --> 00:12:33.599
+But what we do have built in if you go to the menu again.
+
+00:12:33.600 --> 00:12:35.959
+and you see C-h h,
+
+00:12:35.960 --> 00:12:43.039
+and then there's a w, Windows, WinConfig menu,
+
+00:12:43.040 --> 00:12:48.399
+and there's two types of window configurations that you can save here.
+
+00:12:48.400 --> 00:12:52.599
+They are, right now, they're per Emacs session.
+
+00:12:52.600 --> 00:12:55.759
+They're not stored beyond that,
+
+00:12:55.760 --> 00:12:58.519
+but we'll probably add that in as well,
+
+00:12:58.520 --> 00:12:59.879
+or we'll use activities for that.
+
+00:12:59.880 --> 00:13:03.165
+so the two types are you can either
+
+00:13:03.166 --> 00:13:07.199
+just save a window configuration in a frame...
+
+00:13:07.200 --> 00:13:10.319
+Actually, it stores the frame configuration
+
+00:13:10.320 --> 00:13:13.359
+to a ring just like the kill ring.
+
+00:13:13.360 --> 00:13:16.119
+So you have the three commands at the right.
+
+00:13:16.120 --> 00:13:21.239
+you can save with an s, you can pop one off the ring with p,
+
+00:13:21.240 --> 00:13:25.959
+or you can just yank and keep cycling through with a y
+
+00:13:25.960 --> 00:13:31.119
+and it will restore the frame configuration that you saved.
+
+00:13:31.120 --> 00:13:35.079
+Similarly, you can just do it by name,
+
+00:13:35.080 --> 00:13:36.839
+and you can say "I want to add a name"
+
+00:13:36.840 --> 00:13:43.667
+and then just give it a name again, winc,
+
+00:13:43.668 --> 00:13:45.799
+and store it and it stores it there
+
+00:13:45.800 --> 00:13:48.559
+and then you can get back to it by name as well.
+
+00:13:48.560 --> 00:13:51.319
+So fairly easy to use as well
+
+00:13:51.320 --> 00:13:54.999
+and again integrated in the same simple menu system.
+
+00:13:55.000 --> 00:13:57.079
+So thanks for that question.
+
+00:14:05.020 --> 00:14:07.119
+Should I just go to the next question?
+
+NOTE Q: How well do Hyperbole and org-mode work together? Is there any kind of integration?
+
+00:14:07.120 --> 00:14:10.079
+How well do hyperbole and org mode work together?
+
+00:14:10.080 --> 00:14:12.759
+Is there any kind of integration?
+
+00:14:12.760 --> 00:14:18.079
+Yes, in fact, that's really good.
+
+00:14:18.080 --> 00:14:22.359
+I'll just mention something. Let me go back to my homepage.
+
+00:14:22.360 --> 00:14:26.679
+I just stored that here. So we gave a talk at an earlier
+
+00:14:26.680 --> 00:14:31.559
+Emacs conference right here on org
+
+00:14:31.560 --> 00:14:33.199
+and hyperbole integration.
+
+00:14:33.200 --> 00:14:35.919
+So that's a good one to go back to.
+
+00:14:35.920 --> 00:14:39.479
+And I believe it's in this files
+
+00:14:39.480 --> 00:14:41.599
+included with hyperbole as well.
+
+00:14:41.600 --> 00:14:45.079
+So you can learn various techniques
+
+00:14:45.080 --> 00:14:48.199
+of how the action key helps you in org.
+
+00:14:48.200 --> 00:14:51.679
+It does special things in tables.
+
+00:14:51.680 --> 00:15:00.239
+And there's some nice support for, for example, working with code blocks.
+
+00:15:00.240 --> 00:15:02.639
+Let me see where that is. Okay, so right back here.
+
+00:15:02.640 --> 00:15:09.759
+So you can run them with the action key.
+
+00:15:09.760 --> 00:15:15.039
+You can refresh the output and do things like that.
+
+00:15:15.040 --> 00:15:17.559
+So again, if I just hit C-h A,
+
+00:15:17.560 --> 00:15:20.439
+it'll tell me that it's in smart org,
+
+00:15:20.440 --> 00:15:22.928
+and it'll give me all the different contexts
+
+00:15:22.929 --> 00:15:24.359
+that that operates within.
+
+00:15:24.360 --> 00:15:26.559
+So there's a lot that it does in here.
+
+00:15:26.560 --> 00:15:28.173
+And you can see it would point
+
+00:15:28.174 --> 00:15:30.479
+on the dir value of a code block definition
+
+00:15:30.480 --> 00:15:33.559
+that will actually display a summary
+
+00:15:33.560 --> 00:15:35.199
+and all sorts of functionality.
+
+00:15:35.200 --> 00:15:37.439
+So the integration is quite tight.
+
+00:15:37.440 --> 00:15:39.679
+And one of the things we do
+
+00:15:39.680 --> 00:15:41.799
+since M-RET is used in org,
+
+00:15:41.800 --> 00:15:44.719
+we have a customization setting, c then o.
+
+00:15:44.720 --> 00:15:48.239
+And you have these three settings where you can say,
+
+00:15:48.240 --> 00:15:53.359
+I want M-RET to... I want hyperbole to control that
+
+00:15:53.360 --> 00:15:57.279
+and everything that the action key does I want to happen,
+
+00:15:57.280 --> 00:16:00.479
+or I only want hyperbole to control
+
+00:16:00.480 --> 00:16:03.239
+when I'm over a hyperbole implicit/explicit button,
+
+00:16:03.240 --> 00:16:09.159
+or I want org to control that key and never use hyperbole.
+
+00:16:09.160 --> 00:16:10.799
+So you just set that once,
+
+00:16:10.800 --> 00:16:13.919
+it's persistent across sessions and you're good to go.
+
+00:16:13.920 --> 00:16:16.399
+And again, it's built right into the menus.
+
+NOTE Hywiki
+
+00:16:16.400 --> 00:16:23.919
+But even following that we've the latest addition to hyperbole is something,
+
+00:16:23.920 --> 00:16:25.799
+and this is the first time
+
+00:16:25.800 --> 00:16:29.799
+we're really showing it publicly, is the Hywiki,
+
+00:16:29.800 --> 00:16:33.559
+which is a new subsystem as we call it,
+
+00:16:33.560 --> 00:16:39.163
+and this is I think the best wiki capability in Emacs.
+
+00:16:39.164 --> 00:16:44.719
+Now what it does is it automatically highlights...
+
+00:16:44.720 --> 00:16:48.119
+Let me turn it on. I have to turn on hywiki mode.
+
+00:16:48.120 --> 00:16:52.758
+And you see those wiki words now got highlighted,
+
+00:16:52.759 --> 00:16:54.679
+so any any wiki word
+
+00:16:54.680 --> 00:16:58.839
+which is the capitalized alpha word you know,
+
+00:16:58.840 --> 00:17:01.439
+so you can have multiple capitals in there
+
+00:17:01.440 --> 00:17:06.039
+and it'll get recognized, can be used as a wiki word.
+
+00:17:06.040 --> 00:17:09.519
+So for example when I just type HyWiki here,
+
+00:17:09.520 --> 00:17:11.750
+it automatically recognizes it,
+
+00:17:11.751 --> 00:17:14.239
+and you see it turned it into a hyperlink button,
+
+00:17:14.240 --> 00:17:18.159
+which again, C-h a will tell me exactly what it does there.
+
+00:17:18.160 --> 00:17:21.599
+But I can just hit the action key, M-RET,
+
+00:17:21.600 --> 00:17:26.879
+and it'll display my hywiki.org file.
+
+00:17:26.880 --> 00:17:30.559
+All wiki pages are org files.
+
+00:17:30.560 --> 00:17:35.679
+So we're using that for the wikis, and you have
+
+00:17:35.680 --> 00:17:40.359
+You can export an entire wiki
+
+00:17:40.360 --> 00:17:43.159
+using essentially the org export capability
+
+00:17:43.160 --> 00:17:47.539
+with a little extra set of features that we've added in,
+
+00:17:47.540 --> 00:17:50.083
+but let's say, even better. You see
+
+00:17:50.084 --> 00:17:54.119
+I have this heading here, so let me just change this.
+
+00:17:54.120 --> 00:17:59.239
+You go back here, and I'll say go to heading,
+
+00:17:59.240 --> 00:18:01.039
+so you just put a pound on it,
+
+00:18:01.040 --> 00:18:05.679
+and now that whole thing is a reference to a specific org section.
+
+00:18:05.680 --> 00:18:08.439
+Notice there's no org IDs here.
+
+00:18:08.440 --> 00:18:11.639
+There's nothing other than the text that you're seeing.
+
+00:18:11.640 --> 00:18:13.439
+There's not even a delimiter.
+
+00:18:13.440 --> 00:18:17.839
+So we have automatic implicit hyper buttons
+
+00:18:17.840 --> 00:18:20.679
+being added in any buffer.
+
+00:18:20.680 --> 00:18:23.959
+Could be a comment in a programming buffer with all you
+
+00:18:23.960 --> 00:18:26.599
+You don't have to add anything.
+
+00:18:26.600 --> 00:18:31.999
+I'll show you how to create a new page in a minute.
+
+00:18:32.000 --> 00:18:35.959
+But you see I can link to any org section without any IDs.
+
+00:18:35.960 --> 00:18:38.799
+And then I can also do like org-roam does,
+
+00:18:38.800 --> 00:18:42.039
+but without the indexing or database that it requires.
+
+00:18:42.040 --> 00:18:46.839
+I can scan over all of my wiki files and headings.
+
+00:18:46.840 --> 00:18:48.759
+find a match really quickly.
+
+00:18:48.760 --> 00:18:53.279
+So we can get into some of that a little later as well.
+
+00:18:53.280 --> 00:18:55.759
+But, you know, very convenient.
+
+00:18:55.760 --> 00:18:58.439
+There's nothing that you change on org to do this.
+
+00:18:58.440 --> 00:19:00.879
+So how do I create a wiki word?
+
+00:19:00.880 --> 00:19:07.359
+Well, let's say I wanted, you know, wiki word for me.
+
+00:19:07.360 --> 00:19:09.999
+So that's already, that was a wiki word,
+
+00:19:10.000 --> 00:19:12.959
+but now this is a new one. So you see it doesn't highlight
+
+00:19:12.960 --> 00:19:16.559
+because I haven't created a wiki page yet.
+
+00:19:16.560 --> 00:19:20.319
+So all I hit is the action key, and boom.
+
+00:19:20.320 --> 00:19:23.519
+Now it created it as a new wiki word.
+
+00:19:23.520 --> 00:19:24.879
+It created the .org file.
+
+00:19:24.880 --> 00:19:28.279
+If I don't edit this file, it won't save it,
+
+00:19:28.280 --> 00:19:32.359
+and it'll not become a word in case you made an accident.
+
+00:19:32.360 --> 00:19:34.319
+But let's just say I want to say it.
+
+00:19:34.320 --> 00:19:39.159
+So, you know, heading. That's it. I'm just in org mode.
+
+00:19:39.160 --> 00:19:42.879
+Now anytime that hywiki mode is active,
+
+00:19:42.880 --> 00:19:46.239
+in any buffer essentially,
+
+00:19:46.240 --> 00:19:50.279
+I can type that out and it'll recognize it.
+
+00:19:50.280 --> 00:19:53.039
+Notice so that's not a wiki word.
+
+00:19:53.040 --> 00:19:55.279
+So it's highlighting and it's unhighlighting
+
+00:19:55.280 --> 00:19:56.599
+right as I type.
+
+00:19:56.600 --> 00:20:03.199
+So, again, you can embed these as org links in org.
+
+00:20:03.200 --> 00:20:09.439
+There's a special format like this, HyWiki word
+
+00:20:09.440 --> 00:20:11.239
+that you can make an org link
+
+00:20:11.240 --> 00:20:13.479
+if I was in org mode, just like that.
+
+00:20:13.480 --> 00:20:16.599
+So there's all sorts of compatibility,
+
+00:20:16.600 --> 00:20:18.319
+but basically it's just words,
+
+00:20:18.320 --> 00:20:21.119
+and HyWiki takes care of the rest for you.
+
+00:20:21.120 --> 00:20:26.679
+So there's a directory where all these, it's HyWiki,
+
+00:20:26.680 --> 00:20:31.206
+hywiki, ~/hywiki is the default place
+
+00:20:31.207 --> 00:20:32.719
+where all these would be found,
+
+00:20:32.720 --> 00:20:36.359
+and there's a menu now in hyperbole for hywiki, h,
+
+00:20:36.360 --> 00:20:40.639
+and you can see, it has a lot of capabilities.
+
+00:20:40.640 --> 00:20:44.359
+But I can say, b, go into the directory of all the files,
+
+00:20:44.360 --> 00:20:47.799
+just pull them up, and any of these you'll see...
+
+00:20:47.800 --> 00:20:56.589
+Let me give you one like this.
+
+00:20:56.590 --> 00:20:58.473
+Okay. So you can see the other wiki words
+
+00:20:58.474 --> 00:20:59.959
+being highlighted in here.
+
+00:20:59.960 --> 00:21:04.039
+It's very fast too. There's almost no delay for anything,
+
+00:21:04.040 --> 00:21:07.129
+and yet very flexible,
+
+00:21:07.130 --> 00:21:09.915
+and you have this ability
+
+00:21:09.916 --> 00:21:14.679
+where you could type emacs#section-1-2
+
+00:21:14.680 --> 00:21:16.759
+and if you didn't have delimiters around it,
+
+00:21:16.760 --> 00:21:18.479
+but you can put any delimiters
+
+00:21:18.480 --> 00:21:20.839
+like double quotes or parentheses,
+
+00:21:20.840 --> 00:21:23.502
+and then it'll match without you
+
+00:21:23.503 --> 00:21:25.159
+having to change the header at all
+
+00:21:25.160 --> 00:21:28.439
+with the spaces included, and all of those
+
+00:21:28.440 --> 00:21:31.919
+will get recognized.
+
+00:21:31.920 --> 00:21:35.599
+I don't know if the section exists right there.
+
+00:21:35.600 --> 00:21:40.454
+So anyway a lot of capability you can see that here
+
+00:21:40.455 --> 00:21:41.959
+where I did the hy...
+
+00:21:41.960 --> 00:21:45.519
+it actually highlights as an org link
+
+00:21:45.520 --> 00:21:46.839
+because it is an org link,
+
+00:21:46.840 --> 00:21:50.319
+and it'll operate just like any other org link
+
+00:21:50.320 --> 00:21:54.279
+even though it's a hywiki word link as well.
+
+00:21:54.280 --> 00:21:55.759
+So very powerful stuff
+
+00:21:55.760 --> 00:22:00.959
+and totally integrated with Org Mode throughout.
+
+00:22:00.960 --> 00:22:06.439
+Great. There's another question.
+
+NOTE Q: Are there any talks from this year's emacsconf that discussed things that would work well with Hyperbole?
+
+00:22:06.440 --> 00:22:09.039
+Are there any talks from this year's Emacs Conf
+
+00:22:09.040 --> 00:22:12.599
+that discuss things that would work well with Hyperbole?
+
+00:22:12.600 --> 00:22:19.279
+No. Unfortunately, I had to work yesterday, so I haven't
+
+00:22:19.280 --> 00:22:22.639
+been following the conference as much as I do.
+
+00:22:22.640 --> 00:22:25.559
+Maybe somebody else could comment on that.
+
+00:22:25.560 --> 00:22:29.519
+But I think, you know, again,
+
+00:22:29.520 --> 00:22:31.879
+it's like pick your favorite mode,
+
+00:22:31.880 --> 00:22:34.719
+pick your favorite type of information.
+
+00:22:34.720 --> 00:22:36.839
+Can hyperbole work with that?
+
+00:22:36.840 --> 00:22:39.999
+You know, the answer is almost always yes.
+
+00:22:40.000 --> 00:22:44.959
+So, you know, if I show you just a little bit,
+
+00:22:44.960 --> 00:22:48.679
+if I show you some of these implicit button types,
+
+00:22:48.680 --> 00:22:50.799
+just so you know the amount of code
+
+00:22:50.800 --> 00:22:53.708
+involved to create a type.
+
+00:22:53.709 --> 00:22:59.679
+So here's like a mail, recognizing
+
+00:22:59.680 --> 00:23:01.639
+an email address as a button.
+
+00:23:01.640 --> 00:23:05.519
+It's a little long, so that it creates a lot of things,
+
+00:23:05.520 --> 00:23:09.199
+but you know it's less than 15 lines of code for that.
+
+00:23:09.200 --> 00:23:12.199
+Path names are complicated, so that's a longer one,
+
+00:23:12.200 --> 00:23:14.299
+but let's look at...
+
+00:23:14.300 --> 00:23:18.799
+So here's one recognizing a bibliography entry.
+
+00:23:18.800 --> 00:23:24.879
+So it can be between two and 20 lines of code
+
+00:23:24.880 --> 00:23:27.519
+to create an entirely new button type.
+
+00:23:27.520 --> 00:23:29.818
+And you create it once,
+
+00:23:29.819 --> 00:23:32.159
+and you just add it to the set of types,
+
+00:23:32.160 --> 00:23:33.922
+just like at the fun,
+
+00:23:33.923 --> 00:23:35.479
+except it's done with this macro
+
+00:23:35.480 --> 00:23:39.479
+called def implicit button type, and defib.
+
+00:23:39.480 --> 00:23:45.559
+And it's part of your hyperlinking system forever then.
+
+00:23:45.560 --> 00:23:49.799
+So say you got dumped with 5,000 documents
+
+00:23:49.800 --> 00:23:51.519
+that were in this weird text format,
+
+00:23:51.520 --> 00:23:54.119
+and they all had cross-references among them,
+
+00:23:54.120 --> 00:23:56.792
+but it was, again, using a weird format.
+
+00:23:56.760 --> 00:23:59.919
+You could just write your own little type for that,
+
+00:23:59.920 --> 00:24:04.319
+and then those 5,000 documents are hyperlinked for you
+
+00:24:04.320 --> 00:24:08.759
+every time you're browsing them in Emacs automatically.
+
+00:24:08.760 --> 00:24:11.959
+So we do that all the time, create small things,
+
+00:24:11.960 --> 00:24:15.159
+but all of these are built into Hyperbole.
+
+00:24:15.160 --> 00:24:20.199
+Markdown links, texinfo links, all of that's automatic.
+
+00:24:20.200 --> 00:24:26.199
+I could even be in a shell mode, and I just say ls,
+
+00:24:26.200 --> 00:24:30.519
+and these are hyperlinks that Hyperbole understands, right?
+
+00:24:30.520 --> 00:24:33.125
+It just jumps right to the file.
+
+00:24:33.126 --> 00:24:36.999
+So grep -n, you know, looking at any line numbers,
+
+00:24:37.000 --> 00:24:39.839
+you don't have to remember
+
+00:24:39.840 --> 00:24:41.959
+all these different commands anymore.
+
+00:24:41.960 --> 00:24:44.319
+You just hit M-RET,
+
+00:24:44.320 --> 00:24:46.599
+and Hyperbole does the right thing
+
+00:24:46.600 --> 00:24:48.359
+in all these different contexts,
+
+00:24:48.360 --> 00:24:52.639
+including following cross-references in code.
+
+00:24:52.640 --> 00:24:56.079
+So I would say that's your answer.
+
+00:24:56.080 --> 00:24:58.399
+Most things that people are talking about,
+
+00:24:58.400 --> 00:25:02.199
+we've already probably integrated with Hyperbole
+
+00:25:02.200 --> 00:25:04.639
+or with a little bit of custom coding.
+
+00:25:04.640 --> 00:25:08.402
+You can do it.
+
+00:25:08.403 --> 00:25:11.199
+I think that's the end of the etherpad questions for now,
+
+00:25:11.200 --> 00:25:12.919
+but I see a number of people in the room,
+
+00:25:12.920 --> 00:25:15.439
+so you can continue the conversation.
+
+00:25:15.440 --> 00:25:18.719
+We'll be on the stream for another five minutes or so,
+
+00:25:18.720 --> 00:25:22.319
+but yes, please go ahead. Great. Yeah.
+
+00:25:22.320 --> 00:25:27.639
+I mean, people, does everybody have, can talk on the conference?
+
+00:25:27.640 --> 00:25:31.439
+I was expecting to just talk with people here.
+
+00:25:31.440 --> 00:25:40.799
+Let's see. Yeah. Can anybody say anything here?
+
+00:25:40.800 --> 00:25:52.039
+Hi, Bob. I can say something. Hey, Matt. Hi. Yeah.
+
+00:25:52.040 --> 00:25:55.199
+Maybe you want to bring up a topic.
+
+00:25:55.200 --> 00:25:56.839
+I think I... Yes. Sorry, Bob.
+
+00:25:56.840 --> 00:26:05.839
+I think I saw a question here on IRC. It was like this.
+
+NOTE Interesting, but the many different link formats makes reading and analyzing my notes much harder and less usable outside Emacs.
+
+00:26:05.840 --> 00:26:08.599
+Interesting, but the many different link formats
+
+00:26:08.600 --> 00:26:11.279
+makes reading and analyzing my notes
+
+00:26:11.280 --> 00:26:14.959
+much harder and less usable outside Emacs.
+
+00:26:14.960 --> 00:26:18.759
+I don't know if you have some comment on that.
+
+00:26:18.760 --> 00:26:22.319
+Well, I mean, the different formats that you're saying,
+
+00:26:22.320 --> 00:26:24.839
+like angle brackets or curly braces,
+
+00:26:24.840 --> 00:26:31.319
+are just so that you can utilize many different types.
+
+00:26:31.320 --> 00:26:35.599
+of buttons, but if you just want to use key sequences,
+
+00:26:35.600 --> 00:26:37.759
+there's only one markup format.
+
+00:26:37.760 --> 00:26:41.599
+With org, you've got the square brackets,
+
+00:26:41.600 --> 00:26:44.919
+which are consistent, but in order to have different types,
+
+00:26:44.920 --> 00:26:47.279
+you have to type a prefix name,
+
+00:26:47.280 --> 00:26:53.279
+like you see the HY for the HyWiki buttons in org mode.
+
+00:26:53.280 --> 00:26:56.999
+So I think the trade-off is pretty much the same,
+
+00:26:57.000 --> 00:27:02.239
+but Hyperbole always, always works
+
+00:27:02.240 --> 00:27:04.559
+to minimize the amount of markup.
+
+00:27:04.560 --> 00:27:07.439
+Markdown is pretty simple. A lot of people like that.
+
+00:27:07.440 --> 00:27:10.759
+But I think you'll find in hyperbole texts,
+
+00:27:10.760 --> 00:27:15.479
+they read just like regular language.
+
+00:27:15.480 --> 00:27:19.599
+I mean, the delimiters are fairly invisible.
+
+00:27:19.600 --> 00:27:23.039
+So I'm not sure what the issue is there.
+
+00:27:23.040 --> 00:27:24.919
+And again, you can choose your own.
+
+00:27:24.920 --> 00:27:27.639
+You can make your own types with your own delimiters.
+
+00:27:27.640 --> 00:27:31.359
+There's even a custom macro
+
+00:27:31.360 --> 00:27:33.399
+that instead of using that defib
+
+00:27:33.400 --> 00:27:35.559
+where you have to type out Lisp code,
+
+00:27:35.560 --> 00:27:37.519
+you can use regular expressions.
+
+00:27:37.520 --> 00:27:41.239
+And in one line, you can define your own type of button
+
+00:27:41.240 --> 00:27:42.919
+with its own delimiters.
+
+00:27:42.920 --> 00:27:47.879
+So, you know, depending on what works well for your eyes,
+
+00:27:47.880 --> 00:27:51.359
+you can make Hyperbole adapt quite well to that.
+
+00:27:51.360 --> 00:27:54.319
+And again, if you start using the HyWiki,
+
+00:27:54.320 --> 00:27:57.479
+there's literally zero markup on that.
+
+00:27:57.480 --> 00:27:59.599
+So you're just reading text,
+
+00:27:59.600 --> 00:28:01.759
+and when you want something hyperlinked,
+
+00:28:01.760 --> 00:28:04.599
+it's like a glossary or a dictionary entry.
+
+00:28:04.600 --> 00:28:09.599
+It's just there, and it's just highlighted in the text.
+
+00:28:09.600 --> 00:28:17.479
+So I don't see much barrier to using it with many different types of documents.
+
+00:28:17.480 --> 00:28:23.319
+Let me go back to the Emacs here.
+
+00:28:23.320 --> 00:28:27.039
+If there are any other questions.
+
+00:28:27.040 --> 00:28:36.639
+Let me see. Let me go back to that. This Koutline here.
+
+00:28:36.640 --> 00:28:38.719
+So we covered HyWiki.
+
+00:28:38.720 --> 00:28:42.999
+We're in the... I'll just show you some things
+
+00:28:43.000 --> 00:28:44.039
+that we wanted to highlight
+
+00:28:44.040 --> 00:28:46.279
+if people didn't have specific questions.
+
+00:28:46.280 --> 00:28:48.879
+But feel free to jump in anytime
+
+00:28:48.880 --> 00:28:51.399
+if you want to ask something.
+
+NOTE Koutliner
+
+00:28:51.400 --> 00:28:57.039
+So what we're looking at here is a Koutliner document.
+
+00:28:57.040 --> 00:29:00.399
+There's, you know, hyperbole is pretty well documented.
+
+00:29:00.400 --> 00:29:04.719
+There's a large manual. There's interactive
+
+00:29:04.720 --> 00:29:09.319
+demos of it, and there are videos as well.
+
+00:29:09.320 --> 00:29:12.079
+But the Koutliner is unique in Emacs,
+
+00:29:12.080 --> 00:29:17.258
+because it can do like full legal auto numbering.
+
+00:29:17.259 --> 00:29:21.399
+You just say, I want to create a new headline,
+
+00:29:21.400 --> 00:29:23.919
+and you can see. Or I could create four,
+
+00:29:23.920 --> 00:29:26.679
+I could say I want to create three more of these,
+
+00:29:26.680 --> 00:29:29.239
+and I can do it all at once with one key.
+
+00:29:29.240 --> 00:29:33.679
+I can then just tab to make sublevels here.
+
+00:29:33.680 --> 00:29:40.319
+And you see this is using a specific outline format that we have
+
+00:29:40.320 --> 00:29:43.919
+but if we do . in the view specs here,
+
+00:29:43.920 --> 00:29:48.239
+it changes to legal outlining. So it's really that simple.
+
+00:29:48.240 --> 00:29:51.399
+All of these numbers are automatically maintained.
+
+00:29:51.400 --> 00:29:56.639
+As I move stuff around, I can use Org mode alt arrow keys
+
+00:29:56.640 --> 00:30:00.119
+to move things up and down, right?
+
+00:30:00.120 --> 00:30:00.839
+And just move them around.
+
+00:30:00.840 --> 00:30:04.719
+And when I run out, you know, when it can't go any higher,
+
+00:30:04.720 --> 00:30:06.039
+it gives me an error.
+
+00:30:06.040 --> 00:30:11.079
+And then it's just fre- form typing here with auto-wrapping.
+
+00:30:11.080 --> 00:30:13.759
+The nice thing is that
+
+00:30:13.760 --> 00:30:17.359
+there's actually these hidden,
+
+00:30:17.360 --> 00:30:22.519
+let's get, hidden what are called ID stamps.
+
+00:30:22.520 --> 00:30:24.919
+So these are permanent hyperlink anchors
+
+00:30:24.920 --> 00:30:26.719
+that are assigned to each cell.
+
+00:30:26.720 --> 00:30:29.679
+So as this cell moves in the outline,
+
+00:30:29.680 --> 00:30:32.679
+you notice that this 29 didn't change.
+
+00:30:32.680 --> 00:30:37.439
+So you can move and all those other auto numbers shift
+
+00:30:37.440 --> 00:30:40.359
+to represent the actual outline structure.
+
+00:30:40.360 --> 00:30:44.079
+But this ID stamp of 29 stays the same.
+
+00:30:44.080 --> 00:30:47.679
+So you can embed that in links and say,
+
+00:30:47.680 --> 00:30:51.719
+I want to link to cell 29.
+
+00:30:51.720 --> 00:30:55.999
+If I go, let me just go to the Koutliner example.
+
+00:30:56.000 --> 00:30:59.039
+And I'll show you one of those, which is really cool.
+
+00:30:59.040 --> 00:31:02.599
+Because what you can do is say, I want to link
+
+00:31:02.600 --> 00:31:06.999
+Let me find that. It's down here somewhere.
+
+00:31:07.000 --> 00:31:12.199
+I think there's 3A. Where was it? Yeah, okay.
+
+00:31:12.200 --> 00:31:16.479
+So see right here, this is an internal link
+
+00:31:16.480 --> 00:31:21.200
+with just the pound and then the relative ID, as we call it, 3B.
+
+00:31:21.200 --> 00:31:25.719
+But of course, somebody may have moved 3B in the outline.
+
+00:31:25.720 --> 00:31:27.919
+So when Hyperbole inserts a link,
+
+00:31:27.920 --> 00:31:32.039
+it puts this equal with the ID stamp in it automatically.
+
+00:31:32.040 --> 00:31:35.839
+So if... What'll happen is when I reference this,
+
+00:31:35.840 --> 00:31:37.639
+okay, it's still the same.
+
+00:31:37.640 --> 00:31:40.959
+But if it had changed, it would update this link
+
+00:31:40.960 --> 00:31:44.759
+and would change the 3B to say it was 3D now
+
+00:31:44.760 --> 00:31:50.519
+based on this permalink, the 08 that's hidden away in here.
+
+00:31:50.520 --> 00:31:52.439
+So you don't have to do anything.
+
+00:31:52.440 --> 00:31:56.599
+It's just that you have these automatic hyperlink anchors
+
+00:31:56.600 --> 00:31:58.959
+that are embedded in your outlines again.
+
+00:31:58.960 --> 00:32:04.519
+sort of like org IDs, but you have to manually place those in org.
+
+00:32:04.520 --> 00:32:09.039
+And it just makes linking much simpler.
+
+00:32:09.040 --> 00:32:10.359
+And you can reference this.
+
+00:32:10.360 --> 00:32:13.799
+You can reference the file and the cell number.
+
+00:32:13.800 --> 00:32:15.487
+And again, you don't put this...
+
+00:32:15.488 --> 00:32:17.679
+Hyperbole will put this in.
+
+00:32:17.680 --> 00:32:20.719
+And then you can even have these view specs, which say,
+
+00:32:20.720 --> 00:32:25.919
+I want to clip the display to one line,
+
+00:32:25.920 --> 00:32:27.399
+and I want to delete ellipses.
+
+00:32:27.400 --> 00:32:31.079
+So here we see a view over the same outline
+
+00:32:31.080 --> 00:32:37.319
+that's all in one mode. So it's just incredibly capable.
+
+00:32:37.320 --> 00:32:40.079
+So here we've said, you know,
+
+00:32:40.080 --> 00:32:42.879
+there's no blank lines between cells.
+
+00:32:42.880 --> 00:32:46.719
+Now I change the view spec and put a blank line in there,
+
+00:32:46.720 --> 00:32:51.879
+and it's all changed. So lots of consistency that you get.
+
+00:32:51.880 --> 00:32:55.599
+When you change a node in the outline,
+
+00:32:55.600 --> 00:32:58.799
+the whole tree shifts, and all of this is maintained,
+
+00:32:58.800 --> 00:33:02.839
+all of the structure is maintained automatically by Hyperbole.
+
+NOTE Org tables
+
+00:33:02.840 --> 00:33:09.479
+You can embed Org tables in here as well.
+
+00:33:09.480 --> 00:33:17.079
+So if I just press M-RET action key again on this... Org disabled.
+
+00:33:17.080 --> 00:33:21.799
+Okay. So now I enabled Org mode here,
+
+00:33:21.800 --> 00:33:25.340
+and where you see, like, tab here shifts a cell.
+
+00:33:25.341 --> 00:33:27.606
+When I'm inside the table,
+
+00:33:27.607 --> 00:33:31.719
+tab just operates like normal Org tables.
+
+00:33:31.720 --> 00:33:33.519
+So I can do all of the things
+
+00:33:33.520 --> 00:33:40.839
+that I can do in org table mode as well within this koutline.
+
+00:33:40.840 --> 00:33:43.399
+So it seems pretty useful to me,
+
+00:33:43.400 --> 00:33:48.519
+but of course, I helped write it.
+
+00:33:48.520 --> 00:33:51.279
+But I think you see some of the benefits
+
+00:33:51.280 --> 00:33:53.959
+that can accrue by using that format.
+
+00:33:53.960 --> 00:33:57.839
+But this is just one piece of Hyperbole,
+
+00:33:57.840 --> 00:34:02.179
+a major mode that you can choose to use or ignore entirely,
+
+00:34:02.180 --> 00:34:04.039
+you know, dependent on your needs.
+
+00:34:04.040 --> 00:34:06.399
+If you're writing requirements, documents,
+
+00:34:06.400 --> 00:34:08.879
+or anything that needs structure,
+
+00:34:08.880 --> 00:34:12.079
+I think that's where this is really ideal.
+
+00:34:12.080 --> 00:34:14.279
+You can write a legal document,
+
+00:34:14.280 --> 00:34:16.159
+and you've got auto-numbering,
+
+00:34:16.160 --> 00:34:18.679
+which is always, if you've ever used Word
+
+00:34:18.680 --> 00:34:21.039
+or any of those word processors,
+
+00:34:21.040 --> 00:34:24.589
+it's really a pain to maintain those hierarchies
+
+00:34:24.590 --> 00:34:26.479
+in those compared to here.
+
+00:34:26.480 --> 00:34:32.239
+Okay, so that was just showing you the Koutliner.
+
+00:34:32.240 --> 00:34:35.279
+Does anybody have any questions
+
+00:34:35.280 --> 00:34:43.279
+or I'll just continue down a bit?
+
+NOTE Selecting between delimiters
+
+00:34:43.280 --> 00:34:47.999
+Okay, so some other capabilities
+
+00:34:48.000 --> 00:34:49.959
+that we've fairly recently put in.
+
+00:34:49.960 --> 00:34:52.799
+Well, this has been here for a long time.
+
+00:34:52.800 --> 00:34:58.719
+You can, I think the binding I use is C-c m.
+
+00:34:58.720 --> 00:35:00.159
+I forget what it is.
+
+00:35:00.160 --> 00:35:07.159
+No, sorry, that's C-c C-m.
+
+00:35:07.160 --> 00:35:14.319
+Now let's C-c \.
+
+00:35:14.320 --> 00:35:21.719
+Okay, so what I wanted to show you here is that the action key
+
+00:35:21.720 --> 00:35:26.679
+on any double quote, single quote, usually,
+
+00:35:26.680 --> 00:35:30.079
+or paired delimiters will select that whole thing.
+
+00:35:30.080 --> 00:35:33.239
+There is this capability, and I probably just select bigger
+
+00:35:33.240 --> 00:35:35.119
+and bigger chunks of text,
+
+00:35:35.120 --> 00:35:39.319
+but this is really nice that you can just go anywhere
+
+00:35:39.320 --> 00:35:42.479
+in pretty much any mode and hit M-RET.
+
+00:35:42.480 --> 00:35:46.559
+And so in Lisp, you can be on the trailing paren
+
+00:35:46.560 --> 00:35:50.599
+and it will select the whole expression, or the opening
+
+00:35:50.600 --> 00:35:52.879
+and it'll select just that piece,
+
+00:35:52.880 --> 00:35:56.159
+but even better when you're copying, pasting,
+
+00:35:56.160 --> 00:36:02.039
+I can... Now if there's no region selected, C-w, M-w,
+
+00:36:02.040 --> 00:36:05.679
+will act on the structured entity
+
+00:36:05.680 --> 00:36:09.359
+that you're at the beginning or ending delimiter for
+
+00:36:09.360 --> 00:36:12.199
+without you having to highlight the region
+
+00:36:12.200 --> 00:36:14.719
+So if I hit M-RET, it would highlight it,
+
+00:36:14.720 --> 00:36:19.085
+but let's just do M-w to cut that
+
+00:36:19.086 --> 00:36:20.917
+and then I'll yank it here.
+
+00:36:20.918 --> 00:36:23.599
+And you see it grabbed the whole expression
+
+00:36:23.600 --> 00:36:25.599
+and just let you yank it.
+
+00:36:25.600 --> 00:36:29.679
+So it's a nice add on to the basic Emacs commands
+
+00:36:29.680 --> 00:36:33.159
+that just let you operate a lot more efficiently.
+
+00:36:33.160 --> 00:36:35.359
+You can do something similar in C mode.
+
+00:36:35.360 --> 00:36:39.439
+You know, on the braces, you can select the whole function
+
+00:36:39.440 --> 00:36:40.439
+with one key press,
+
+00:36:40.440 --> 00:36:43.079
+M-RET, and then copy it somewhere.
+
+NOTE Ace-window
+
+00:36:43.080 --> 00:36:50.559
+And Hyperbole integrates with Ace Window if you use that.
+
+00:36:50.560 --> 00:36:56.799
+So let me split this a few ways. And let's do it over here.
+
+00:36:56.800 --> 00:37:06.799
+We'll just go to scratch. Okay. And then I can go,
+
+00:37:06.800 --> 00:37:08.119
+it's sort of interesting,
+
+00:37:08.120 --> 00:37:11.120
+it works with Dired as well.
+
+00:37:11.120 --> 00:37:16.519
+So I can go here and say, I want to... So if I do M-o,
+
+00:37:16.520 --> 00:37:22.159
+Ace-window will show me the labels to use, a, d, or s, to do something.
+
+00:37:22.160 --> 00:37:24.559
+Like I can move to any of those windows.
+
+00:37:24.560 --> 00:37:27.959
+But what Hyperbole lets you do
+
+00:37:27.960 --> 00:37:30.759
+is say I want to throw with t,
+
+00:37:30.760 --> 00:37:36.399
+like this glass.org file over to the bottom window.
+
+00:37:36.400 --> 00:37:42.479
+So I go M-o to invoke it. I say I want a t to throw it.
+
+00:37:42.480 --> 00:37:46.399
+Then where do I want to throw it to? s, the window, and
+
+00:37:46.400 --> 00:37:49.879
+then you see it's now displaying glass.org.
+
+00:37:49.880 --> 00:37:55.763
+So I can do that with files. I can do it with regions of text.
+
+00:37:55.764 --> 00:37:58.719
+You can replace things in a buffer,
+
+00:37:58.720 --> 00:38:01.199
+or throw the whole thing to the window.
+
+NOTE Dired
+
+00:38:01.200 --> 00:38:02.759
+So a couple extra commands
+
+00:38:02.760 --> 00:38:05.034
+that it extends ace window with...
+
+00:38:05.035 --> 00:38:12.159
+you can even, I think, well, we also have this command,
+
+00:38:12.160 --> 00:38:16.799
+I think it's C-c @, yeah.
+
+00:38:16.800 --> 00:38:21.719
+So what it did there was it just selected the files
+
+00:38:21.720 --> 00:38:22.799
+that I had marked in Dired,
+
+00:38:22.800 --> 00:38:26.839
+it selected and created a window grid out of all of them.
+
+00:38:26.840 --> 00:38:29.559
+You know, so I hit like three keystrokes.
+
+00:38:29.560 --> 00:38:35.159
+That's kind of convenient if you want to see
+
+00:38:35.160 --> 00:38:38.159
+a lot of information all at once.
+
+00:38:38.160 --> 00:38:42.239
+And so we covered all that. I won't go into it too much,
+
+NOTE Controlling windows or frames
+
+00:38:42.240 --> 00:38:46.639
+but there's a whole 'nother window and frame control system
+
+00:38:46.640 --> 00:38:50.799
+under the screen menu here if you type C-h h s.
+
+00:38:50.800 --> 00:38:54.479
+then you can select either controlling windows or frames.
+
+00:38:54.480 --> 00:38:56.119
+Let's do windows.
+
+00:38:56.120 --> 00:39:00.479
+And it has this menu where it's just sort of showing you.
+
+00:39:00.480 --> 00:39:07.839
+I can like split my windows vertically or horizontally.
+
+00:39:07.840 --> 00:39:13.759
+I can widen by a pixel or I can say, or character.
+
+00:39:13.760 --> 00:39:18.319
+I can say, use my prefix argument to change that to 10.
+
+00:39:18.320 --> 00:39:22.479
+And then when I shrink it, shrinks it up by 10
+
+00:39:22.480 --> 00:39:27.319
+or it narrows it width by 10 or it widens it by 10.
+
+00:39:27.320 --> 00:39:33.679
+So it has this concept of prefix arguments that persist
+
+00:39:33.680 --> 00:39:35.719
+and you just type in the number
+
+00:39:35.720 --> 00:39:38.359
+and then you can issue any number of the commands.
+
+00:39:38.360 --> 00:39:41.679
+So you could move windows or frames
+
+00:39:41.680 --> 00:39:44.919
+or create them, delete them, cycle through them,
+
+00:39:44.920 --> 00:39:48.279
+all sorts of things, including relative to movement,
+
+00:39:48.280 --> 00:39:50.719
+relative to the edges of your screens.
+
+00:39:50.720 --> 00:39:52.559
+So if you have multiple screens
+
+00:39:52.560 --> 00:39:54.479
+and many frames that you use,
+
+00:39:54.480 --> 00:39:59.639
+it just makes management very convenient.
+
+00:39:59.640 --> 00:40:02.439
+And then you just q to quit out of there
+
+00:40:02.440 --> 00:40:04.959
+and you're back wherever you were.
+
+NOTE Documentation
+
+00:40:04.960 --> 00:40:10.439
+So, finally, we have a lot of documentation.
+
+00:40:10.440 --> 00:40:12.599
+This is just a link to the videos,
+
+00:40:12.600 --> 00:40:16.239
+which is in the readme and in the manuals.
+
+00:40:16.240 --> 00:40:21.399
+There's two demos or tutorials. One to get you started.
+
+00:40:21.400 --> 00:40:24.719
+Notice I'm using these implicit buttons, so keystrokes,
+
+00:40:24.720 --> 00:40:26.879
+and I can just M-RET on that.
+
+00:40:26.880 --> 00:40:30.519
+And that takes me to, here's all the videos.
+
+00:40:30.520 --> 00:40:34.239
+And you can get started with that
+
+00:40:34.240 --> 00:40:38.279
+or just interact with this demo that we have.
+
+00:40:38.280 --> 00:40:41.519
+And there's one for the Koutliner as well.
+
+NOTE Videos
+
+00:40:41.520 --> 00:40:45.399
+One of the things that... If you're into videos
+
+00:40:45.400 --> 00:40:46.919
+and you need to link to them,
+
+00:40:46.920 --> 00:40:50.519
+notice what you're seeing here. This is a hyperbole feature
+
+00:40:50.520 --> 00:40:54.919
+which is very difficult to achieve any other way that I've seen
+
+00:40:54.920 --> 00:40:59.279
+where you want a specific start and stop time
+
+00:40:59.280 --> 00:41:01.039
+in a video that you want to play.
+
+00:41:01.040 --> 00:41:05.639
+Hyperbole has a built-in link type for that.
+
+00:41:05.640 --> 00:41:08.760
+as you see here. So this is the name of the link
+
+00:41:08.760 --> 00:41:10.919
+that you can reference it by,
+
+00:41:10.920 --> 00:41:14.279
+and then this is the actual link expression.
+
+00:41:14.280 --> 00:41:17.479
+So I could just go and play a video right here,
+
+00:41:17.480 --> 00:41:22.079
+and this is from one long intro to hyperbole that we did.
+
+00:41:22.080 --> 00:41:25.759
+So it's just linking to the specific sections.
+
+00:41:25.760 --> 00:41:27.439
+But that's something, again,
+
+00:41:27.440 --> 00:41:29.519
+this could be embedded anywhere.
+
+00:41:29.520 --> 00:41:33.759
+in any file and it would start to play.
+
+00:41:33.760 --> 00:41:36.559
+Uh, I guess I could try YouTube.
+
+00:41:36.560 --> 00:41:43.239
+Well, I don't want to. Yeah. Okay. It's on my other screen.
+
+00:41:43.240 --> 00:41:48.199
+So, but it did, it did, uh, link to it.
+
+00:41:48.200 --> 00:41:53.319
+So, um, yeah, just, you know, tremendous capability
+
+00:41:53.320 --> 00:41:56.919
+to interlink your information that way.
+
+00:41:56.920 --> 00:42:00.359
+And, uh, You know, again, you learn it bit by bit.
+
+00:42:00.360 --> 00:42:04.279
+You can study one particular section right here.
+
+00:42:04.280 --> 00:42:09.039
+Just jump directly to that if you want to know about it.
+
+NOTE Manual
+
+00:42:09.040 --> 00:42:13.319
+The manual is interlinked, has an extensive glossary,
+
+00:42:13.320 --> 00:42:16.119
+cross-references of sections.
+
+00:42:16.120 --> 00:42:23.119
+And if you go in there, this is the hyperlinked manual.
+
+00:42:23.120 --> 00:42:25.119
+So this is the structure of it
+
+00:42:25.120 --> 00:42:27.799
+with all the subsystems documented.
+
+00:42:27.800 --> 00:42:31.519
+But one of the sections we've added
+
+00:42:31.520 --> 00:42:33.559
+is developing with hyperbole.
+
+00:42:33.560 --> 00:42:37.319
+So if you are or you want to create your own button types,
+
+00:42:37.320 --> 00:42:38.919
+this explains how to do it.
+
+00:42:38.920 --> 00:42:42.959
+Creating types, you can create your own action
+
+00:42:42.960 --> 00:42:44.999
+and implicit button types.
+
+00:42:45.000 --> 00:42:48.359
+And if you look in here, there are three ways
+
+00:42:48.360 --> 00:42:55.039
+to create implicit button types from simpler to harder.
+
+00:42:55.040 --> 00:42:59.079
+So like, here's an example
+
+00:42:59.080 --> 00:43:03.679
+where pressing C-x after this expression
+
+00:43:03.680 --> 00:43:07.199
+defines a new action button link type called pilot.
+
+00:43:07.200 --> 00:43:13.359
+So let's say, I don't know if I have this set up, but we can try it.
+
+00:43:13.360 --> 00:43:21.999
+Yeah, I don't have the variable setup,
+
+00:43:22.000 --> 00:43:25.759
+but basically, you know, it can get you.
+
+00:43:25.760 --> 00:43:31.359
+This is a one line definition of a new action type.
+
+00:43:31.360 --> 00:43:36.399
+that can get you to a Python file
+
+00:43:36.400 --> 00:43:39.639
+based on whatever your Python path is set to
+
+00:43:39.640 --> 00:43:42.919
+with this simple syntax right here.
+
+00:43:42.920 --> 00:43:45.199
+And here we're going to the file.
+
+00:43:45.200 --> 00:43:48.399
+So we have no idea where this is on the file system.
+
+00:43:48.400 --> 00:43:54.959
+And the same way like if you use man path, Python path,
+
+00:43:54.960 --> 00:44:08.599
+you can embed buttons. Let's just go to scratch buffer.
+
+00:44:08.600 --> 00:44:17.919
+My first read-only. It doesn't want me to go.
+
+00:44:17.920 --> 00:44:24.999
+It must be kind of strange.
+
+00:44:25.000 --> 00:44:32.559
+Something with this key window that I have over here.
+
+00:44:32.560 --> 00:44:35.679
+Let me just move off there. Look at that.
+
+00:44:35.680 --> 00:44:38.319
+Maybe it's just activating that.
+
+00:44:38.320 --> 00:44:46.319
+Yeah, it keeps jumping back there.
+
+00:44:46.320 --> 00:44:49.542
+I don't know. I have to get this straight.
+
+00:44:49.543 --> 00:44:53.958
+Yeah, it's not letting me type the buttons.
+
+00:44:53.959 --> 00:44:57.875
+Let me see if I can turn off the key casting.
+
+00:44:57.876 --> 00:45:23.999
+Yeah, maybe that'll help. I don't know, that put me in some strange...
+
+00:45:24.000 --> 00:45:30.719
+Just going to exit out of here if I can.
+
+00:45:30.720 --> 00:45:32.960
+Does anybody have any questions they want to cover?
+
+00:45:33.000 --> 00:45:39.079
+I was just gonna show you yeah a little more on type definitions
+
+00:45:39.080 --> 00:45:53.119
+if there was any interest OK, there's nobody piping up.
+
+00:45:53.120 --> 00:45:56.999
+Let me see if there's any other questions.
+
+00:45:57.000 --> 00:46:04.439
+Hi, Bob. I haven't seen any more questions.
+
+00:46:04.440 --> 00:46:10.839
+Yeah, so maybe it's you, me, and someone called Max is here in the channel.
+
+00:46:10.840 --> 00:46:19.479
+OK. Okay, so if Max doesn't have any questions
+
+00:46:19.480 --> 00:46:24.839
+and there aren't other people, we can just end it there.
+
+00:46:24.840 --> 00:46:34.479
+I don't want to have an audience of zero or talk to that.
+
+00:46:34.480 --> 00:46:37.919
+So, but I think that was a good overview, Max, right?
+
+00:46:37.920 --> 00:46:45.479
+Yes, definitely covered a lot in a short time.
+
+00:46:45.480 --> 00:46:48.639
+And hopefully, you know, just try it out.
+
+00:46:48.640 --> 00:46:52.399
+At the top here, it shows you how to install it.
+
+00:46:52.400 --> 00:46:56.559
+It's pretty simple, basic package and installation.
+
+00:46:56.560 --> 00:47:02.719
+And we're happy to help anybody get started if they need to.
+
+00:47:02.720 --> 00:47:05.199
+So thanks, everyone.
+
+00:47:05.200 --> 00:47:09.279
+And we'll answer any further questions on the Etherpad after this.