Yes. Okay. Hi, everyone. We are back now, and I'm with Mats. Hi, Mats.
Hi. How are you doing?
I'm fine. How are you?
I'm doing great as well. As the talk goes by,
I keep warming up, and this is a very nice feeling. I look absolutely big
with this down jacket, but it works, and I'm not going to question it.
You do know, for the people coming every year to AMX Conf, that I do try
to look dashing, but I also need to be warm, because this year,
we are doing it in December and not in November.
Okay. So, Mats,
how about you start reading questions? I believe you've got one already.
I got one question already. Yes. The question is, so with one line of code,
you can create custom hyper button types that are live in an AMX buffer.
Is that right? Yes. The short answer is yes.
Maybe I should use the presentation and go into here.
Let's see if I can find it.
No. Read it wrong. So, here, the field macro allows you, in principle, to,
in one line, define a hyper button, starting with the starting delimiter
and an end delimiter, and then there's this mapping
to whatever functionality should sort of come out of pressing that button.
So, that was significantly more than just a yes. Thank you.
I'll be glad we put your screen up so that you can answer this.
So, people, just to remind you, so we do have the pad to answer the pad
to ask you questions over there. We are, let me check
how much time we have for this Q&A. We have until 15 of the next hour,
which leaves about 20 minutes, but right now we only have one question.
So, people on ISE, if you could place questions in the pad. Right.
Sorry, I'm managing multiple things at the same time.
Is there anything else you wanted to talk about? Anything else?
Because, you know, to let people know,
we do ask speakers to submit pre-recordings to us
because it makes our life much easier on the day
of the recording at EmacsConf, on the day of the conference at EmacsConf,
because this way we can get away with not having
to worry about live presentation catching fires and not, oh,
I cannot share my screen, my microphone is not working.
So, not only is everything working today inside the BBBO room,
but Matt also sent a pre-recording. So, that's great.
I got another question. Oh yes, go, but please, I'm down in the background.
Let me jump over to the second question.
The second question is, is there a good way to share common patterns
for links other than the ones that you shared?
Shall those be pull requests to your repository?
Okay, let me think. Those should not be pull requests to our repository
because these are your patterns, your links.
That's something you would share like that I'm showing here.
Could even be like you're sharing maybe the pattern, how this
button looks, but maybe the implementation could in principle be different.
So, the one you're sharing with might put their information
in some other storage that might be accessed using the same information,
or maybe just placed in some other part of the file system.
So, the only good way to share it would be like to send it over email
or some other message to someone else. Share it some way.
First question. I like the link to evaluate calc expressions.
Any way to get the outcome into the buffer and not just in the message window?
I mean, that will be up to the sort of the implementation of the function
that you would use in the bottom. I mean, the function that
is evaluated could do anything really. So, that was just an example
to show that you could, you don't have to be a link that you actually go
to some new place. It can just be some computation or whatever. So,
that's just trying to show that you shouldn't be limiting yourself
to just thinking about links. It can be computing anything.
It's really the thing about Elisp really. It's just when people ask you,
you know, when they come from outside of Emacs and they ask you,
can your function do this? The answer is more often than not, yes.
Can you write it in Elisp? Yeah, I might need
to look at the documentation a little bit, but I'll be able to do it.
And, you know, calc does have the ability to paste the result
when you're not calc used as a library, but calc the node.
When you type something in it and you press Y,
it will paste it into the buffer, which means that there is the ability
to communicate between calc and the buffer you're currently in. So,
it's probably just a matter of doing Ctrl-H-K-Y inside the calc mode,
checking which function is running, and just putting this at the end
of the button, and voila, there you go.
So, Matt, I don't think you have any questions at the moment.
We're going to leave some time for people to gather more questions,
but I think, if I'm not mistaken, I might be wrong with the,
we changed the schedule a little bit,
but you're the first Hyperbole talk for today,
and as such, you are introducing people to the concept of buttons,
which is very instrumental to Hyperbole. Hyperbole?
I'm going to go with Hyperbole, actually.
So, could you maybe, I know it's a big task,
and you've also touched upon what Hyperbole was, but a lot
of people always ask, you know, Hyperbole, Org Mode,
I see both of them sometimes crop up at the top of the subreddit,
and I'm not exactly sure which one is doing which.
You're using the term links, and this speaks to me as someone who works
in Zettelkasten Methods, so maybe
could you, I'm asking you with a very difficult question now,
could you differentiate maybe Hyperbole and Org, or try your best,
knowing that we'll have more Hyperbole talks later in the conference?
Well, I will not try to get into that sort of wormhole,
because I don't think they should be compared, they're more companions, so yeah.
It's the best way you could have answered this question, and you know,
I'm going to remove you from this tricky situation in which I put you,
so yes, they are complementary tool, they do some of the same thing,
they do have different philosophy, and at the end,
if they allow you to take notes,
if they allow you to relate notes in different places,
you know, it's a good note-taking system. Let's put it at this,
let's not concern ourselves with comparison, at least Org, you know,
the best thing about comparing is cross-pollination,
which is made all the more easier with something like Emacs,
because ideas from one mode can be taken and applied in another mode.
Now, maybe not straightforwardly between Hyperbole and Org,
but the idea can be translated at the very least.
You did have a question, I'll answer this one very quick,
because it's a quick one.
Yeah, yes, you want to take it?
I just want to quickly follow up on what you said there,
that, ah, now I lost, I lost it, maybe come back,
so let's jump into the question instead,
because I got an answer, so thank you for everybody who wrote the answer,
great, and the next question was, this talk is really straightforward,
so that's probably why there aren't many questions,
maybe Mats could talk about Hyperbole in general, while he was, aha, okay,
that's maybe what you were trying to do here, so maybe I should,
and the last one is, second question, last question is,
how did you present the lossage bar at the right of your buffer?
A lot of people are wondering, the lossage bar, oh, well, you have
to elaborate on what the lossage bar is. I can, although
I do have a slight problem, my daily backup is running,
so if my voice is crackly, I'm sorry, I can't do anything about it,
can you hear me?
Yeah, you're shopping up,
but I can understand what you're saying, so that's great.
So lossage is the stuff that you have on the right side of your screen,
it's the commands that you're running and the key binding that you're using
to run them, and yes, this is a mode that we ask,
or that we provide Emacs on speakers with,
and it's called interactive log mode, which is available on GitHub,
which will allow you to have this pretty print on the right side of your screen,
or whatever really, it's just a buffer.
Yeah, and I haven't used it before doing this presentation, so it was a news
to me, so I'm very new to using it, but it works. Well, if you move around,
you see that, yeah.
So for the people, we did open up the BBB chat room now,
which means that again, if you go to the talk page for Matz,
where this was Button, you will be able to join the BBB by clicking on the link,
and you'll be able to ask questions right away to Matz.
We've started a nice question about org hyperbole and stuff like this,
but maybe we should, yes, I'm trying to save you here,
maybe we should re-center on the buttons and what they can do,
especially what we talked about Elisp, allowing buttons to be whatever,
and since Matz, you have your Emacs available,
it might be a good opportunity for you to show some of the buttons
that you're using as well, maybe some different ones that you've presented.
So if people want to join, that would be a great opportunity
to ask your questions. We have about 20 more minutes of Q&A,
and if we don't have any more people showing up
and no more questions on the pad, we can also go on a little break,
and I would appreciate this, but I'm also happy to stay.
Yeah, I understand the interest, but there are more talks coming up
in related to hyperbole, and I haven't prepared any cool stuff.
What I could mention that I think is cool, I will not demo that,
but I work as a programmer, and then I have different support systems,
which have these strings, identifiers that may be linked
to different information, like a ticketing system, for instance,
that would do bugs. It could be like a novel text string
that identify your bug or your ticket, and it's an internal tool,
so no one else can support that, but by using hyperbole,
I can write my own interpretation of that string
and get that to work as a button, so I can easily
from the code or from some notes link directly into that ticketing system.
So that's the point I'm trying to make with this talk is
that it's useful for setting up your own environment
that only you really know about and how you want to navigate
with your information, and it's not about trying to force some type
of work stream upon anybody. It's more like giving you the opportunity
to streamline your own workflow instead.
I think the remaining talks about hyperbole will be more focused
on all the features. It's a multi-functional package
with a lot of different stuff in it,
so I could not give justice to it in just doing some quick demos.
It won't show all the things you can do.
Yeah, but I'm going to say for someone saying
that you couldn't do justice to the topic,
you've done a very fine job, so do not worry about this.
It's funny, I was listening to you describe this, the
buttons really, but when
you think about it, you could have forgotten about the buttons
and really remembered about Emacs and would make as much sense as well,
because Emacs as a whole, the Elisp stuff behind it allows you
to do whatever interface you want very easily,
and the buttons really enshrines the interface type of things really,
because you just have a button that is running code.
It's no longer, oh, you need to go to
the end of the parenthesis, the end of the sex,
and you need to evaluate it. There's something more interactive about it,
which feels closer to your user interface as a result to this,
but I've already blabbered enough.
We do have someone with a microphone in the VBB chat,
so does this person want to unmute themselves
and ask a question, maybe?
I think I have some very knowledgeable person about hyperbole in the chat.
Yes, I didn't want to spoil it, but I'm not sure if they're going
to unmute themselves, so I don't want to put too much pressure on them.
Can you guys hear me? We can, yes.
Hi, Bob. Hi, long time fan of hyperbole.
You might want to cue people in on a joke here,
because I'm not sure if anyone knows who you are.
I wrote hyperbole, and Matt's my co-maintainer on it,
so really exciting to have the first talk here.
I think I just wanted to mention two things.
Maybe you could show a little key series,
just type one out dynamically and show how simple that is,
and then talk about the UKIPA daily journal,
right? Time-stamped journal that was originally org mode,
and I think you're now using Hyperbole's K-outliner,
so maybe mention doing that. Okay.
Something that's more than one key sequence, please.
Do a couple operations that you do a lot of or that are interesting,
all in one.
So the key series is like a keyboard macro,
so it's not limited to one key sequence,
but any series of key sequences can be strung together
just like that with nothing else,
and then you activate it the same way as any other button, right?
Yes, but you're putting me on the spot here,
because now I have to remember, actually, how to write these things.
You just write it the way you would type it.
Yeah, I see it.
Okay, so let's see. So the key series is between these braces and...
And you could leave out the quote marks if you don't...
Maybe I can skip that as well.
So here's the key series.
Let's see what's happening.
Do I go to the 10th folder or not?
Boom, I got there. Yeah, it worked.
Bob, great. So you can name them and then reuse them,
and so it's sort of like you've got this toolkit that you can embed
in all these different modes that you have in Emacs,
and you just carry it with you.
It's not like a whole mode unto itself that you always have to use.
Yeah, so in this example here with the field, you can,
instead of having like this path string here,
you can have a key series as well.
But to the other point, also, Elisp is available,
but this is even more available
because you don't even have to code using Elisp.
So that's the point also with this, the fill and the file macros.
You should make it even simpler.
And if you just know how to type some command,
you can use the key series together with this
to get some functionality out of this.
I think one of the things we've taken to saying about Hyperbole
is it's kind of the lightest hypertext markup
that you can have, as you saw there, right?
I mean, there were just braces, and all of a sudden,
it's a live hyper button. So we've tried to strip away
having to write stuff like HTML or even all the drawers
and stuff like that, and we've tried to make it so that you know,
even all the like drawers and the property markup in org mode,
and just provide very, very simple sort of syntactical things similar
to what Elisp does, so that you can get a lot of power
and put buttons everywhere, but not have to recognize a lot of syntax
or use a whole bunch of keys on your buttons.
It's pretty interesting,
by the way.
I'm sorry I have to do this,
but we only have about five more minutes in the Q&A before we need
to move on to the next talk. But don't worry, you've had a little test
of Hyperbole right there, and you'll have more over the weekend.
We've had a lot of Hyperbole talk this year, which is amazing.
You know, we usually have a lot of talk about org, but this year
is truly the one where we also have a similar amount of Hyperbole talk,
which is amazing to see. Obviously, I am more of an org guy,
but I see so many parallels between the two, so many bridges
that could be built as well, and it's amazing to see the amount of passion
that goes into this. Usually I deal with people who are passionate about org,
but to see that there's a similar amount of passion on the Hyperbole side
of things is truly amazing to me.
I think we had one more question in the pad, if you can take it, Matt.
Yeah, the last here is, does the links buttons create in Hyperbole,
like the one with the URL get exported on org mode files too,
like when exported to HTML?
Oh, tricky question.
I mean, these implicit buttons, they are just like the patterns.
So the pattern will of course be exported to HTML,
but you will not be able maybe
to do something there unless you're watching the HTML within Emacs,
so the sort of Hyperbole machinery would be available, if that makes sense.
I mean, yeah, it's possible. It depends what the encoding is,
what the encoding is, but we do have an outliner mode, the K outliner
in Hyperbole as well, and that has a single command export to HTML.
So if you've embedded URLs in there,
you would see them just like if you embedded them in org mode,
and potentially the org exporter, if you just write a raw URL,
will also encode it for you when you export it.
There's other Hyperbole buttons in there. Yeah, but the functionality that
is by clicking on that button will not be exported.
Well, it's like you can try printing the button, I'm not sure. No amount
of clicking on it is actually going to trigger an action.
I might be wrong though. Sorry, I mean printing on paper,
it's a very confusing terminology that we're using right there, not printing
in a terminal.
One cool thing if you use the Hyperbole export to HTML is
that you can expand and collapse your trees in the HTML.
I don't think you can do that with the org export right now.
But Bob, you're going to show something about that tomorrow, right?
I don't think it's in this presentation because I'm- Oh, it's not
in the presentation, okay. On the org side of the house this time,
but it'll be in a different one about Hyperbole some other time. All right,
so we have about two minutes until we need to go to the next talk,
but thank you so much, Matz, and thank you so much, Bob,
also for showing up and giving us a taste of what is probably going
to follow up tomorrow. I can't remember, I think your talk is
in the afternoon, right, Bob? Correct, about 1 p.m. EST. Yeah, so
in about 22 hours, 23 hours. I'm trying my best to give you times
which are time zone independence,
so I'm sorry if I'm missing the mark a little bit,
but hopefully this would be useful for many people. But otherwise,
just check the schedule and you'll be able to get everything. All right, well,
thank you so much, Matz, for answering so many questions
and for your presentation as well. I feel like it was good
to have your presentation before Bob's one tomorrow,
because focusing on the one aspect of Hyperbole, the buttons, and linking it
to Elisp, linking it to interactivity, linking it to UI, I think is going
to prime people to then understand fully what Hyperbole,
or what are the capabilities of Hyperbole, beyond this, or inspired by this.
So thank you so much. Thanks, Matz. Thank you.
Great.
All right, and we are going live with the next talk in about 30 seconds.
I think we're going to close the BBB room,
because nobody has showed up otherwise. So I will see you both later.
Bye-bye.