diff options
Diffstat (limited to '')
-rw-r--r-- | 2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt | 630 |
1 files changed, 630 insertions, 0 deletions
diff --git a/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt b/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt new file mode 100644 index 00000000..7b377fed --- /dev/null +++ b/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt @@ -0,0 +1,630 @@ +WEBVTT captioned by sachac + +NOTE New version of hyperdrive.el + +00:00:00.000 --> 00:00:02.596 +One thing I wanted to mention was that + +00:00:02.597 --> 00:00:08.596 +as with last year, I just released a new version of + +00:00:08.597 --> 00:00:13.476 +hyperdrive.el and it depends on the latest release of + +00:00:13.477 --> 00:00:19.156 +transient.el and so if you are going to install this + +00:00:19.157 --> 00:00:25.156 +package, make sure that you restart your Emacs after you + +00:00:25.157 --> 00:00:29.796 +install it, if you aren't already up to date with transient, + +00:00:29.797 --> 00:00:35.316 +which was released yesterday. Otherwise, since it, this + +00:00:35.317 --> 00:00:40.876 +latest version of transient.el updates the transient + +00:00:40.877 --> 00:00:46.316 +prefix EIEIO class, and it won't work unless you restart + +00:00:46.317 --> 00:00:50.996 +Emacs. Okay, well, good to know. I think that's a small price + +00:00:50.997 --> 00:00:57.076 +to pay to be on a bleedingest of bleeding edges. All right, I + +00:00:57.077 --> 00:00:59.596 +see there's a question here. Let me see if I can read it. Yeah, + +00:00:59.597 --> 00:01:01.276 +sure. Do you want me to field it to you or do you want to read it? + +00:01:01.277 --> 00:01:04.104 +Oh, sure. Go ahead. I'd love to hear you read it. Sure. + +00:01:04.105 --> 00:01:06.686 +Thank you. So first question. Hi there. + +NOTE Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly? + +00:01:06.687 --> 00:01:07.787 +Thank you for the talk. + +00:01:07.788 --> 00:01:10.756 +I enjoyed watching it. I tried this tool last year and it + +00:01:10.757 --> 00:01:13.156 +seemed to work well, but I don't know anyone who actually + +00:01:13.157 --> 00:01:16.516 +uses it. Network effects are tricky. Do you know of any + +00:01:16.517 --> 00:01:19.636 +public shares people can join to try to try this tool out + +00:01:19.637 --> 00:01:24.396 +properly? Thank you. Network effects are indeed tricky. + +00:01:24.397 --> 00:01:29.916 +Yeah. That's kind of part of the purpose of the peer graph is + +00:01:29.917 --> 00:01:34.596 +to make it easier to discover peers in a way that's more, uh, + +00:01:34.597 --> 00:01:37.956 +more reliable and consistent than just somebody puts a + +00:01:37.957 --> 00:01:42.076 +public key on Reddit and then it's lost unless somebody + +00:01:42.077 --> 00:01:50.156 +finds it. Um, but the, the public keys that I know of are, + +00:01:50.157 --> 00:01:53.076 +there's the public key for the Ushin hyperdrive, which is + +00:01:53.077 --> 00:01:56.236 +basically just the same content that's on the website + +00:01:56.237 --> 00:02:00.156 +mirrored to a hyperdrive. Um, and then there are a few other + +00:02:00.157 --> 00:02:07.316 +ones. There's like, uh, hypha.coop has some WebZine + +00:02:07.317 --> 00:02:13.796 +content accessible via HyperDrive and also via IPFS. And + +00:02:13.797 --> 00:02:19.916 +then mauvesignweaver has a blog that's also available on + +00:02:19.917 --> 00:02:23.196 +Hyper. So that's blog.mauve.moe . + +00:02:23.197 --> 00:02:28.276 +But besides that, that's kind of the purpose of this + +00:02:28.277 --> 00:02:31.756 +peer graph thing is to make it easier to discover other + +00:02:31.757 --> 00:02:36.596 +peers. Yeah, to make it also very visual in a way, because, + +00:02:36.597 --> 00:02:40.436 +you know, I personally, it's funny because it reminded me of + +00:02:40.437 --> 00:02:45.156 +talks that I did in the past about the trust system for PGP + +00:02:45.157 --> 00:02:47.596 +keychains, because at the end of the day, you know, this + +00:02:47.597 --> 00:02:50.596 +trust system, whether you trust someone absolutely or + +00:02:50.597 --> 00:02:53.876 +relatively, the blocking system, it feels very related. + +00:02:53.877 --> 00:02:57.356 +Any kind of a chain of trust like this, feels very + +00:02:57.357 --> 00:03:00.436 +reminiscent, obviously, but it felt very nice that for you, + +00:03:00.437 --> 00:03:04.676 +you had a dynamic display of this web of trust. Whereas for + +00:03:04.677 --> 00:03:08.836 +me, I had to make fancy diagram in ticks, in latex, just to + +00:03:08.837 --> 00:03:14.956 +make sure that people understood what was actually going + +00:03:14.957 --> 00:03:21.596 +on. Yeah, one thing I want to point out is just the difference + +00:03:21.597 --> 00:03:25.556 +in utility for something like the PGP web of trust versus + +00:03:25.557 --> 00:03:29.956 +this kind of network of peers is, if I understand right, the + +00:03:29.957 --> 00:03:34.716 +main purpose of web of trust is to identify that a certain + +00:03:34.717 --> 00:03:42.516 +public key is actually created by the person that they claim + +00:03:42.517 --> 00:03:46.036 +to be. So you have a way of identifying that a key actually + +00:03:46.037 --> 00:03:49.996 +matches like a government identity. Whereas this kind of + +00:03:49.997 --> 00:03:53.356 +network of peers has nothing to do with authenticating a key + +00:03:53.357 --> 00:03:57.636 +or associating a key with an identity, like a government + +00:03:57.637 --> 00:04:03.396 +identity. The purpose is exclusively just to get more peers + +00:04:03.397 --> 00:04:07.276 +to be able to discover more peers who have things that are + +00:04:07.277 --> 00:04:07.676 +worth reading. + +00:04:07.677 --> 00:04:14.356 +Yeah, it's a different take on a concept, but even though the + +00:04:14.357 --> 00:04:18.836 +concept might be the same, I find there's a wealth of things + +00:04:18.837 --> 00:04:21.716 +that can be done thanks to this, because as you said, you + +00:04:21.717 --> 00:04:25.396 +trust someone to send you a file that is trustworthy. Well, + +00:04:25.397 --> 00:04:28.236 +with PGP, it's mostly about communication, but about file + +00:04:28.237 --> 00:04:33.356 +sharing, it just opens up completely new avenues. Yeah. Do + +00:04:33.357 --> 00:04:40.516 +you have anything else to add? And about that, I think one of + +00:04:40.517 --> 00:04:45.476 +the barriers to the PGP web of trust is that it required + +00:04:45.477 --> 00:04:48.916 +getting together to have key parties to meet people and + +00:04:48.917 --> 00:04:51.596 +verify identities. Whereas with this kind of thing, + +00:04:51.597 --> 00:04:54.076 +there's no need to do that because so long as your content is + +00:04:54.077 --> 00:04:57.876 +interesting, it doesn't matter that you're not who you + +00:04:57.877 --> 00:05:01.076 +claim to be or that you don't even claim to be anybody. Yeah, I + +00:05:01.077 --> 00:05:04.556 +mean, again, as you mentioned, it's not about identifying + +00:05:04.557 --> 00:05:08.196 +people, it's just about identifying value, in a way, in the + +00:05:08.197 --> 00:05:10.636 +content that people share. It has nothing to do with + +00:05:10.637 --> 00:05:13.916 +verifying their actual identity. But again, it's the same + +00:05:13.917 --> 00:05:16.596 +technology, it's the same understanding, but for + +00:05:16.597 --> 00:05:18.556 +different applications, which is lovely because + +00:05:18.557 --> 00:05:22.116 +programming is fractals all over. The same problems repeat + +00:05:22.117 --> 00:05:24.836 +themselves and the same solutions show up for widely + +00:05:24.837 --> 00:05:26.996 +different scenarios, which is always good. Yeah. Anything + +00:05:26.997 --> 00:05:32.676 +else? One more thing. Yeah. One more thing is that I wanted to + +00:05:32.677 --> 00:05:36.956 +give some kudos to, um, some of the other projects that + +00:05:36.957 --> 00:05:42.796 +inspired the pure graph work. One of them is Adam Porter's or + +00:05:42.797 --> 00:05:50.076 +graph view, um, which is a, um, a tool for visualizing + +00:05:50.077 --> 00:05:55.276 +different nodes in an org file and how they link to one + +00:05:55.277 --> 00:06:01.876 +another. Um, he did. the pioneering work to figure out how to + +00:06:01.877 --> 00:06:07.316 +render interactive graphs with GraphViz. And so we worked + +00:06:07.317 --> 00:06:12.476 +together on it and kind of hacked down the last parts that + +00:06:12.477 --> 00:06:16.796 +weren't working correctly. And so this is inspired a lot. + +00:06:16.797 --> 00:06:19.316 +The user interface is inspired a lot by Adam's work. And then + +00:06:19.317 --> 00:06:26.156 +also the idea of having people that you mark as blockers and + +00:06:26.157 --> 00:06:31.076 +block is inspired by another project called TrustNet by + +00:06:31.077 --> 00:06:37.196 +Alex Cobleigh. I can type in the link there. Alex, how do you + +00:06:37.197 --> 00:06:43.516 +spell it? Cobleigh? Yeah, I'll type it in here. Thank you. And I + +00:06:43.517 --> 00:06:50.596 +think the link is https://cblgh.org/trustnet. I think that is it. + +00:06:50.597 --> 00:06:57.836 +I'm not totally sure. But yeah. Okay, well, that's very good. + +00:06:57.837 --> 00:07:01.396 +and thank you for giving credits to the inspiration, because + +00:07:01.397 --> 00:07:05.556 +again, nothing is done without context, and it's always nice + +00:07:05.557 --> 00:07:08.516 +in the free software world to acknowledge people who have + +00:07:08.517 --> 00:07:11.676 +influenced us, because it's very nice when people start + +00:07:11.677 --> 00:07:14.556 +contributing, maintaining software, publishing stuff + +00:07:14.557 --> 00:07:17.916 +that they actually start collaborating with people who've + +00:07:17.917 --> 00:07:21.916 +inspired them, which is a nice way to climb over the shoulders + +00:07:21.917 --> 00:07:25.636 +of giants, which this community likes so much. All right, + +00:07:25.637 --> 00:07:28.676 +moving on to the next question. We are, we have about seven + +00:07:28.677 --> 00:07:31.063 +more minutes for questions, so we're still good. + +NOTE Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense + +00:07:31.064 --> 00:07:33.956 +Second question, one use case for this sharing and building upon + +00:07:33.957 --> 00:07:37.996 +second brain, sorry, one use case for this is sharing and + +00:07:37.997 --> 00:07:41.436 +building upon second brains, i.e. Zettelkasten, that's + +00:07:41.437 --> 00:07:44.396 +denote or what I'm actually doing, but a blocker for me + +00:07:44.397 --> 00:07:46.916 +wanting to make one public is wanting to use a block list or + +00:07:46.917 --> 00:07:51.556 +whitelist so that I can make them... Cautioning? + +00:07:51.557 --> 00:07:56.156 +Quarantining? Containing. Yes, definitely containing. + +00:07:56.157 --> 00:07:59.756 +Why did I go for quarantine rather than containing? I guess + +00:07:59.757 --> 00:08:04.636 +my brain went to a dark place from the 2020s. So I can make + +00:08:04.637 --> 00:08:08.996 +containing useful information for only me while also being + +00:08:08.997 --> 00:08:16.156 +useful in a public sense. Yes, I think your question is about + +00:08:16.157 --> 00:08:22.276 +how to keep some of the content of your Zettelkasten private + +00:08:22.277 --> 00:08:29.956 +and only have certain parts of it be public. If your desire is + +00:08:29.957 --> 00:08:35.796 +to only share certain files in your Zettelkasten, then you + +00:08:35.797 --> 00:08:43.596 +can use the hyperdrive mirror command that we demonstrated + +00:08:43.597 --> 00:08:48.596 +in the Emacs 2023 talk. In short, + +00:08:48.597 --> 00:08:53.916 +It lets you specify either a regular expression that + +00:08:53.917 --> 00:08:58.036 +matches only some of the files that'll get uploaded from a + +00:08:58.037 --> 00:09:02.236 +directory of files on your machine. And only the files that + +00:09:02.237 --> 00:09:05.716 +match that regex will be put into the hyperdrive and shared + +00:09:05.717 --> 00:09:08.796 +with the world. But it doesn't have to be a regex. It could be a + +00:09:08.797 --> 00:09:13.276 +lambda. So it could match based on file size or modification + +00:09:13.277 --> 00:09:18.996 +time or really whatever you like. So I hope that answers your + +00:09:18.997 --> 00:09:23.956 +question. Great. And I personally, as someone who loves + +00:09:23.957 --> 00:09:27.876 +tinkering with my Elisp, I particularly like the ability to + +00:09:27.877 --> 00:09:31.156 +specify things with a lambda because it just opens up the + +00:09:31.157 --> 00:09:34.356 +ceiling of the possibilities with interactions between + +00:09:34.357 --> 00:09:37.316 +different parts of software. And, you know, as I have worked + +00:09:37.317 --> 00:09:39.956 +significantly in Org Roam, I could definitely see + +00:09:39.957 --> 00:09:44.116 +interactions with lambdas here to make sure that we can send + +00:09:44.117 --> 00:09:47.156 +and share files based on the filter list that is + +00:09:47.157 --> 00:09:51.036 +incrementally added to thanks to those lambdas. So thanks + +00:09:51.037 --> 00:09:55.116 +for this. One more thing I want to add about that is that the, + +00:09:55.117 --> 00:10:00.116 +that same question of being able to upload only certain + +00:10:00.117 --> 00:10:04.316 +files while leaving others to be private was something + +00:10:04.317 --> 00:10:07.556 +that was inspired by Karl Voit. I had an email thread with + +00:10:07.557 --> 00:10:16.036 +him in which he talked about how he uses his file tags project + +00:10:16.037 --> 00:10:21.676 +to organize his files. And he'll put a public tag on the files + +00:10:21.677 --> 00:10:26.476 +in his org database that he wants to have be published to his + +00:10:26.477 --> 00:10:29.916 +website. And so you could very easily just set a regular + +00:10:29.917 --> 00:10:33.636 +expression matches that public tag and then all of the other + +00:10:33.637 --> 00:10:39.676 +files would be not shared. Yeah, and, oh, sorry, I was, I + +00:10:39.677 --> 00:10:42.716 +misclicked, I was talking to production for a second. First + +00:10:42.717 --> 00:10:45.636 +time it happens today, so I think this is a testament to the + +00:10:45.637 --> 00:10:47.996 +level of tightness. But yeah, as you were saying, whatever + +00:10:47.997 --> 00:10:51.396 +heuristics you want is actually a good thing. I think people + +00:10:51.397 --> 00:10:54.636 +are a little antsy because they tend to brain dump into their + +00:10:54.637 --> 00:10:59.836 +Org Roam, Zettelkasten, Denote, and they + +00:10:59.837 --> 00:11:02.516 +really don't want some of their personal notes being out + +00:11:02.517 --> 00:11:05.596 +there. And well, if you are worried about this, I think + +00:11:05.597 --> 00:11:09.356 +learning some Elisp and implementing some Lambda function + +00:11:09.357 --> 00:11:13.116 +that allows you to filter with intention might be the best + +00:11:13.117 --> 00:11:17.636 +solution for you. So I hope we've covered the question as + +00:11:17.637 --> 00:11:21.436 +well as we could have. Next question is more about an idea + +00:11:21.437 --> 00:11:24.996 +about trying hyperdrive to distribute the Worg. Does that + +00:11:24.997 --> 00:11:28.596 +make sense to you? Yeah, I mean, you could distribute + +00:11:28.597 --> 00:11:32.636 +whatever you wanted. I think that'd be a great idea. Okay, + +00:11:32.637 --> 00:11:36.116 +great. Moving to the next question, and we have about three + +00:11:36.117 --> 00:11:38.316 +minutes, so I think we'll cover the last two questions and + +00:11:38.317 --> 00:11:41.023 +we'll move on to the next talk after that. + +NOTE 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.)? + +00:11:41.024 --> 00:11:43.164 +Could you comment on the visualization thing, + +00:11:43.165 --> 00:11:44.716 +Org visualization, and your + +00:11:44.717 --> 00:11:47.236 +experience with this type of content in buffers and the + +00:11:47.237 --> 00:11:52.916 +various possibilities, SVG, et cetera? + +00:11:52.917 --> 00:11:59.916 +Sure. So one thing that we worked on was I added a patch that + +00:11:59.917 --> 00:12:05.156 +was merged as part of Emacs 30, which fixes the way that image + +00:12:05.157 --> 00:12:14.196 +maps scale when images are scaled. So as an Emacs 30, if you + +00:12:14.197 --> 00:12:19.276 +zoom in on an image or shrink an image or rotate an image, now + +00:12:19.277 --> 00:12:24.276 +the image map, which is the overlay, so it's not actually an + +00:12:24.277 --> 00:12:26.716 +overlay, but it's, so to speak, it's an overlay that allows + +00:12:26.717 --> 00:12:30.116 +the images to be clickable based on, you know, where the + +00:12:30.117 --> 00:12:32.756 +actual visual display is. You can also click on it or hit help + +00:12:32.757 --> 00:12:37.356 +echo. And as of Emacs 30, now that scales with the image + +00:12:37.357 --> 00:12:37.796 +itself. + +00:12:37.797 --> 00:12:45.236 +The code to make that work on previous versions of Emacs, you + +00:12:45.237 --> 00:12:51.756 +can see the advice that we added in hyperdrive-sbb-view, that + +00:12:51.757 --> 00:12:55.956 +file in hyperdrive.el, if you're curious to see how you + +00:12:55.957 --> 00:13:01.196 +could polyfill that code, so to speak, to make it work on + +00:13:01.197 --> 00:13:06.076 +previous versions of Emacs before Emacs 30. But it works + +00:13:06.077 --> 00:13:11.076 +great. The way that this works is we generate a GraphViz + +00:13:11.077 --> 00:13:16.716 +string that will be sent to GraphViz to render an SVG and also + +00:13:16.717 --> 00:13:23.676 +render a CMAPX string. We pipe those back into Emacs and then + +00:13:23.677 --> 00:13:27.596 +we generate the image map from the CMAPX file and then we put + +00:13:27.597 --> 00:13:32.596 +that image map with the SVG, and we render it in a buffer. + +00:13:32.597 --> 00:13:37.076 +Works pretty well. You can check out the code to see exactly + +00:13:37.077 --> 00:13:41.876 +how it works. OK, great. Well, sadly, I think we are a little + +00:13:41.877 --> 00:13:44.996 +short on time to cover the last two questions. So Joseph, if + +00:13:44.997 --> 00:13:47.236 +you want to take a little bit of time maybe to answer the + +00:13:47.237 --> 00:13:51.196 +questions in the BBB, you can just do this, even though the + +00:13:51.197 --> 00:13:54.476 +stream will be moving to the next talk. But I'll use the + +00:13:54.477 --> 00:13:57.716 +opportunity to thank you both for the talk and for your + +00:13:57.717 --> 00:14:00.316 +answers, because they were very insightful. And thank you + +00:14:00.317 --> 00:14:03.636 +so much for taking the time to be with us today. Thank you, + +00:14:03.637 --> 00:14:05.876 +Leo. Enjoy the rest of the conference. Any last words in + +00:14:05.877 --> 00:14:10.356 +about 15 seconds? Thank you. I'm grateful for your taking + +00:14:10.357 --> 00:14:14.076 +all this time to make this conference possible. Well, you + +00:14:14.077 --> 00:14:16.916 +know, the conference would be nothing without the speakers + +00:14:16.917 --> 00:14:19.676 +coming and chatting, so you are the ones to thank. I mean, we + +00:14:19.677 --> 00:14:21.796 +like the thanking, obviously, but it's mostly you doing the + +00:14:21.797 --> 00:14:26.156 +work. All right. Thank you, Joseph. We'll see you later. + +00:14:26.157 --> 00:14:26.796 +Bye-bye. |