summaryrefslogblamecommitdiffstats
path: root/2023/talks/hyperamp.md
blob: 341743aa7c1783602a1cfdb9ac1971fb75a46897 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                                                                                                   
                      
                  





                                                                                                                                                                            



















                                                                                  





                                                                        

                                                                       










                                                                        
                                                     






                                                                   
                                                                

                                                                     
                                                                      



                                                                        
                                                                     















                                                                        
                                                                 



                                                                       
                                                                      















                                                                                                                                                             
                                                                                                                                       
 





                                                                
[[!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" 
volunteer="sachac"
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"]]