1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
[[!meta title="Top 10 ways Hyperbole amps up Emacs"]]
[[!meta copyright="Copyright © 2023 Robert Weiner"]]
[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]]
<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->
# 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
Emacs productivity and experience through:
- its magical ability to turn ordinary text into hypertext
- its legal-style auto-numbered outlining
- its fast, record-based lookups
- and its rapid, programmable ability to control all of your frames and windows.
Hyperbole has no required external package dependencies and is
compatible with and tested against every major Emacs version from 27
to the latest master branch and works on every major computer
operating system and window system in use today, so you can run it
regardless of your environment.
# Discussion
## Questions and answers
- Q: Do buttons keep their metadata within the same file? E.g. would I
see it if I change to fundamental-mode?
- A: Summarizing: if it's an explicit button the metadata is in a
different file in the same directory, ".hypb". If it's an
implicit button, no, no metadata in the buffer; such buttons
have no metadata, Hyperbole creates all of the button properties
from the existing text in the buffer.
- Q: Is it possible to link to a file by its ID (denote, Org ID, or
some similar unique string inside)?
- A:
- Q: Re: the frames example: any thoughts or consideration for a
transient interface? Or, is this something one could already toggle?
- A: Hyperbole predates many of the newer features and packages
and Emacs but they integrate as they find them useful for
Hyperbole. They think the current minibuffer menu is pretty good
and don't have plans to have a transient menu
- Q: Re: multi-file search functionality. Why not implementing it
within the existing framework of M-x grep or similar built-in
commands? Yet another search interface sounds a bit redundant.
- A:
- The point is: why not upstream search interface?
- Q:
- A:
- Q: Hyperbole's been around for a number of years now. What
inspired you to write it back around the time of its birth?
- A: Born before the Web. The Web was born in the middle of a
Hyperbole version's development. Seemed like an explosion of
unstructured information was imminent, e.g. needing to deal with
many emails, non-database-structured info. Needed a general
system that could work with other general systems like emails,
document production. Was researching at a university on
"Personalized Information Environments" (PIEs). PIEs was an
architecture with managers (like Hyperbole) and point tools that
would leverage the managers (e.g. an email reader as a point
tool to leverage the hypertext manager). Wrote a Gmail-like
system years before Gmail (also similar to Rmail). Allowed
buttons embedded in Rmail drawn from the subject of the email
message. Rule-based processing was included, etc.
- Are you familiar with embark package? I think there is some
overlapping functionality with Hyperbole.
- A: Yes, recently started using it. Have talked to oantolin
(Omar Antolin Camarena), the author. Thinks that Embark and
Hyperbole are compatible, much like Hyperbole and Org are. All
of these tools can be used together well.
- Q: Wow. What you are describing now reminds me a lot about HyperCard
that I grew up on. Do you know if Hyperbole inspired Bill Atkinson
or if you were inspired by HyperCard? Or were there just a lot of
thought about hypercontextuality around that time?
- A: Bob's research on PIEs was seen by Apple and helped to
inspire their work on the Newton, which later also inspired the
iPhone, et al.
- Q: Is it possible to only use one feature of hyperbole without the
others (i.e. using only the implicit/explicit buttons without
hycontrol, hyrolo...)? (without having to rewrite part of the code
in hyperbole) in order to be able to load a smaller hyperbole
(hyperbole is now quite large).
- Q: Is there a link to the video for this talk? I woke up too late for
it! It was done live, so the recording will be added after the
conference organizers have time.
- Should now be up at <https://emacsconf.org/2023/talks/hyperamp>
- thanks bob i heard about hyperbole long time ago now it is time to revisit with this beautiful presentation
- nice presentation, bob!
- no metadata no problemo
- Q: for anyone who uses hyperbole is there a way to delimit a button like you create text that is shaped like a button but you don't want it to be a button?
- i'm intersted in hyperbole it's on my todo list of looking into for emacs stuff
- Great talk thank you bob!
- thanks for showing hyperbole, always been curious about it. makes me think there's an overlap with ffap, hyperbole and even treesitter in a way
- i'm going to look into hyperbole for sure now. it's been on my to do list
- Bob has a long history of doing impressive work :)
- I didn't know about rsw other packages, look at that <http://ftp.ntua.gr/mirror/python/workshops/1996-06/papers/h.pasanen/oobr4.html>
[[!inline pages="internal(2023/info/hyperamp-after)" raw="yes"]]
[[!inline pages="internal(2023/info/hyperamp-nav)" raw="yes"]]
|