summaryrefslogblamecommitdiffstats
path: root/2024/talks/hyperdrive.md
blob: eb2330946561f8d17774dd32110c052a06e19467 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                                






                                                                                                    
                                                                



                                                                                                                                  






                                                                                                                                                                 
 




                                                                                                                                                




                                                                     
                                                                                                                                         

                                                                           
                                                                                                                                                                                                   








                                                                    
                                                                                                                                    




                                                                   
                                                                       





                                                                          
                                                
                                                                     
                                                          
                                                                     
                                                  














                                                                       
                                                             

















                                                                         
                                                                
                    
                                                                                                                                                                         


                                                                      
                                                        










                                                                       
                                                                
 





                                                                  
[[!meta title="New in hyperdrive.el: quick install, peer graph, transclusion!"]]
[[!meta copyright="Copyright © 2024 Joseph Turner"]]
[[!inline pages="internal(2024/info/hyperdrive-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. --->


# New in hyperdrive.el: quick install, peer graph, transclusion!
Joseph Turner - <https://ushin.org>  xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), <mailto:contact@ushin.org>

[[!inline pages="internal(2024/info/hyperdrive-before)" raw="yes"]]

[hyperdrive.el](https://ushin.org/hyperdrive/hyperdrive-manual.html) is an Emacs interface to [hyperdrive](https://docs.holepunch.to/building-blocks/hyperdrive),
a mutable, versioned, peer-to-peer shared
filesystem. Among other things, hyperdrive.el has
these features: Share unlimited files of unlimited
size; Explore file history with built-in
versioning; Stream video and audio; No signup or
account creation; Free as in Freedom!

Since [last year's EmacsConf talk](https://emacsconf.org/2023/talks/hyperdrive), `hyperdrive.el` grew some new features, including:

-   Easily install the gateway program with `M-x hyperdrive-install`.
-   Visualize your network of sources as a graph or a list.
-   Transclude snippets of hyperdrive files with [hyperdrive-org-transclusion](https://elpa.nongnu.org/nongnu/hyperdrive-org-transclusion.html).

This talk will show off these new `hyperdrive.el` features in action!

Feel free to join our public XMPP chat room!

-   xmpp:discuss@conference.ushin.org ([Join anonymously from your browser](https://anonymous.cheogram.com/discuss@conference.ushin.org))
-   \#\_bifrost\_discuss\_conference.ushin.org:aria-net.org (Matrix bridge)

Bugs can be submitted to the [ushin issue tracker](https://todo.sr.ht/~ushin/ushin). Patches, comments or questions can be submitted to the [ushin public inbox](https://lists.sr.ht/~ushin/ushin).

About the speaker:

I'm Joseph Turner.  I enjoy fiddle, Aikido, peer-to-peer networks,
Emacs, and swimming in cold water. I work with
[USHIN](https://ushin.org/), a tiny educational US nonprofit whose
mission is to promote personal, community, and global health through
free and open universal shared information for everybody.

See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in Emacs](https://emacsconf.org/2023/talks/hyperdrive/)
# Discussion

## Questions and answers

-   Q: Hi there, thank you for your talk - I enjoyed watching it! I
    tried this tool last year, and it seemed to work well - but I don't
    know anyone who actually uses it. Network effects are tricky - do
    you know of any public shares people can join to try this tool out
    properly? Thank you!
    -   A:  Yes, network effects are indeed tricky.  Hopefully, the peer
        graph can help with this.  That said, here are some hyperdrives
        I know of:
    -   [https://ushin.org](https://ushin.org) -
        hyper://aaj45d88g4eenu76rpmwzjiabsof1w8u6fufq6oogyhjk1ubygxy/
    -   [https://blog.mauve.moe](https://blog.mauve.moe) -
        hyper://1m51x54k3fwbuec5z4edbathiq3aj6bew8b556ezrszizskogo3o/
    -   [https://hypha.coop](https://hypha.coop) -
        hyper://zdouwaei9kc5zbk93w5dakbr8maayupojthf3eafo16s4d5pbsry/
-   Q:One usecase for this is sharing and building upon second
    brains/zettelkastens\"denote or org-roam\" but a blocker from me
    wanting to make one public is wanting to use a blocklist or
    whitelist so I can make them containing useful information for only
    my while also being useful with in a public sense
    -   A: Rephrasing: how to keep the content of a Zettelkasten
        private, and only have parts of it be public?
    -   If the desire is only to share certain files in the
        Zettelkasten, M-x hypedrive-mirror can do this
        -   Can specify either a regexp that matches some of the files
            that get uploaded to a directory of files on a machine (and
            only those files will be shared)
        -   It can also be a lambda, i.e. anything that can be
            formulated as a function
        -   E.g., with Karl Voit's filetags (or Prot's Denote
            filenaming scheme), you could share only those files which
            are tagged as \"public\".
-   Q: idea: try hyperdrive to distribute WORG (and EmacsWiki)
    -   A: Great idea!
-   Q: Could you comment on the \"visualization\" thing, (org
    visualization), and your experience with this type of content in
    buffers and the various possibilities (svg, etc.)?
    -   A:  We submited a patch which was merged in Emacs 30 to make
        image maps (the \"overlay\" which makes images clickable and
        have hover-over help-echo descriptions) transform along with the
        image, e.g., if you zoom in on an image, the clickable map still
        matches the zoomed-in image.
    -   A: In hyperdrive-sbb-view.el, we build a Graphviz string based
        on the peer relations data, then call out to the external
        graphviz process twice, once for the svg and once for the
        cmapx.  Then we build an image map based on the cmapx string. 
        We put the image and image map together and render it in a
        buffer.  I also adapted some code from image-mode.el to make the
        image resize whenever the buffer's window resizes.  For
        details, see
        [https://git.sr.ht/\~ushin/hyperdrive.el/tree/master/item/hyperdrive-sbb-view.el](https://git.sr.ht/~ushin/hyperdrive.el/tree/master/item/hyperdrive-sbb-view.el)
    -   A: This approach is directly inspired by org-graph-view.el, by
        Adam Porter (github alphapapa).
-   Q:What is something surprising about how you or somebody else that
    you didn't expect from using the hyperdrive network?
    -   A: 
-   Q: You mentioned streaming audio and video - could you confirm that
    this is in reference to consumption of media, and not broadcasting
    of it - right?
    -   A: Since the network is peer-to-peer, audio and video is
        streamed between peers.

## Notes

-   The \"sources, blockers, blocked\" idea was influenced by:
    -   Alex Cobleigh :
        [https://cblgh.org/trustnet](https://cblgh.org/trustnet)


[[!inline pages="internal(2024/info/hyperdrive-after)" raw="yes"]]

[[!inline pages="internal(2024/info/hyperdrive-nav)" raw="yes"]]