[[!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){rel="noreferrer noopener"} -
hyper://aaj45d88g4eenu76rpmwzjiabsof1w8u6fufq6oogyhjk1ubygxy/
- [https://blog.mauve.moe](https://blog.mauve.moe){rel="noreferrer noopener"} -
hyper://1m51x54k3fwbuec5z4edbathiq3aj6bew8b556ezrszizskogo3o/
- [https://hypha.coop](https://hypha.coop){rel="noreferrer noopener"} -
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){rel="noreferrer noopener"}
- 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){rel="noreferrer noopener"}
[[!inline pages="internal(2024/info/hyperdrive-after)" raw="yes"]]
[[!inline pages="internal(2024/info/hyperdrive-nav)" raw="yes"]]