From df8e6092e2c8b49b6dcf3ae967d63562e3d05710 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 1 Jan 2024 19:16:11 -0500 Subject: add unedited captions --- ...filesystem-in-emacs--joseph-turner--answers.vtt | 1595 ++++++++++++++++++++ 1 file changed, 1595 insertions(+) create mode 100644 2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt (limited to '2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt') diff --git a/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt b/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt new file mode 100644 index 00000000..2f7b316a --- /dev/null +++ b/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt @@ -0,0 +1,1595 @@ +WEBVTT + + +00:00:12.660 --> 00:00:13.160 +[Speaker 0]: I guess we are now live. + +00:00:15.360 --> 00:00:15.860 +So Joseph, thanks for being here. + +00:00:16.960 --> 00:00:17.460 +Thanks for talking to the hyperdrive. + +00:00:22.240 --> 00:00:22.440 +We already had some, or we already have a lot + +00:00:24.360 --> 00:00:24.619 +of questions here. And I guess I would start + +00:00:26.040 --> 00:00:26.540 +with, let's call it the difficult, + +00:00:29.119 --> 00:00:29.439 +the most difficult 1. So when you were + +00:00:30.820 --> 00:00:31.320 +developing hyperdrive for your colleague, + +00:00:34.760 --> 00:00:34.920 +what do you, or what have you learned the + +00:00:34.920 --> 00:00:35.420 +most? + +00:00:43.080 --> 00:00:43.320 +[Speaker 1]: I have learned how much faster and more + +00:00:46.360 --> 00:00:46.620 +enjoyable the development of this project can + +00:00:51.540 --> 00:00:52.040 +be with talented people working by my side, + +00:00:55.960 --> 00:00:56.260 +like Jonas and Adam and Prat and Mo, + +00:00:58.100 --> 00:00:58.260 +it's been really a pleasure to work with + +00:00:58.440 --> 00:00:58.940 +these folks. + +00:01:04.959 --> 00:01:05.140 +[Speaker 0]: So you have started at first on your own and + +00:01:07.400 --> 00:01:07.760 +then probably pushed it somewhere in open + +00:01:10.320 --> 00:01:10.820 +source or how did it develop, + +00:01:11.740 --> 00:01:12.240 +your development experience? + +00:01:15.920 --> 00:01:16.160 +[Speaker 1]: A few years ago, we started looking into + +00:01:21.960 --> 00:01:22.200 +using peer-to-peer technology for sharing all + +00:01:25.080 --> 00:01:25.360 +kinds of information. And we came across Move + +00:01:29.280 --> 00:01:29.440 +SignWeaver, who was recommended to us by a + +00:01:32.560 --> 00:01:32.720 +mutual friend. And we started working with + +00:01:33.840 --> 00:01:34.340 +Move, and then about a year ago, + +00:01:37.060 --> 00:01:37.560 +we started looking into using Emacs, + +00:01:40.020 --> 00:01:40.460 +the peer-to-peer software, + +00:01:43.520 --> 00:01:43.780 +so that we could make use of all of the + +00:01:46.340 --> 00:01:46.500 +powerful things that Emacs already does with + +00:01:47.780 --> 00:01:48.280 +org mode and other packages. + +00:01:51.560 --> 00:01:51.760 +And then we started working with Adam and + +00:01:52.320 --> 00:01:52.820 +Pratt and Jonas. + +00:01:54.280 --> 00:01:54.780 +[Speaker 2]: Yes. + +00:01:59.880 --> 00:02:00.380 +[Speaker 0]: So we are skipping to the next question. + +00:02:03.700 --> 00:02:04.200 +So to read it out, I use multiple computers + +00:02:06.200 --> 00:02:06.480 +and my partner also would like access to my + +00:02:08.680 --> 00:02:09.139 +notes. So, 2 questions at first. + +00:02:12.440 --> 00:02:12.720 +First 1, how well would this work with using + +00:02:15.060 --> 00:02:15.300 +this to edit my Zettelkasten hyperdrive using + +00:02:15.660 --> 00:02:16.160 +multiple computers? + +00:02:21.260 --> 00:02:21.760 +[Speaker 1]: Hyperdrive is single writer currently. + +00:02:24.140 --> 00:02:24.280 +So what that means is that if you have a + +00:02:25.080 --> 00:02:25.580 +hyperdrive that you've created, + +00:02:28.320 --> 00:02:28.820 +you're the only 1 who can make changes to it. + +00:02:31.560 --> 00:02:32.060 +And that's limited right now to editing 1 + +00:02:33.240 --> 00:02:33.740 +hyperdrive from 1 machine. + +00:02:38.240 --> 00:02:38.740 +In theory, you could use the same private key + +00:02:40.240 --> 00:02:40.680 +and write to it from multiple machines, + +00:02:43.520 --> 00:02:44.020 +but you would have to make sure that you sync + +00:02:46.300 --> 00:02:46.520 +it on both machines and didn't make + +00:02:48.160 --> 00:02:48.480 +concurrent writes because then you would fork + +00:02:49.840 --> 00:02:50.340 +the history of your hyperdrive, + +00:02:51.020 --> 00:02:51.520 +and that would be bad. + +00:02:57.740 --> 00:02:57.980 +But we've spent a lot of time making links to + +00:02:59.780 --> 00:03:00.280 +hyperdrives work well, + +00:03:02.160 --> 00:03:02.360 +relative links within hyperdrives to other + +00:03:03.560 --> 00:03:03.840 +files inside of your drive. + +00:03:05.520 --> 00:03:06.020 +So you should be able to, + +00:03:10.120 --> 00:03:10.520 +with some exceptions, just take your personal + +00:03:13.360 --> 00:03:13.780 +information management set of org files or + +00:03:14.760 --> 00:03:15.260 +whatever it is that you have, + +00:03:18.160 --> 00:03:18.260 +and upload them into a hyperdrive if all of + +00:03:22.740 --> 00:03:23.100 +that is publicly available or would be good + +00:03:27.260 --> 00:03:27.400 +to share publicly. And you can make that + +00:03:28.940 --> 00:03:29.440 +available for other people to link to. + +00:03:30.640 --> 00:03:30.840 +So you can have multiple different + +00:03:32.040 --> 00:03:32.540 +hyperdrives that link to 1 another. + +00:03:35.600 --> 00:03:36.100 +[Speaker 0]: So it's like a huge network of hyperdrives + +00:03:38.000 --> 00:03:38.500 +connected to each other in some way. + +00:03:39.140 --> 00:03:39.640 +[Speaker 1]: Yeah. + +00:03:41.120 --> 00:03:41.620 +[Speaker 0]: So that's kind of neat and kind of cool. + +00:03:44.240 --> 00:03:44.480 +There was a follow-up question or the second + +00:03:46.780 --> 00:03:47.100 +part of the question. Okay, + +00:03:48.860 --> 00:03:49.200 +then using the same hyperdrive is probably + +00:03:51.820 --> 00:03:52.060 +not possible, but interlinking would be the + +00:03:57.500 --> 00:03:57.840 +best way to do it. There was a question + +00:03:59.540 --> 00:03:59.820 +concerning how they should install it. + +00:04:01.160 --> 00:04:01.440 +So What would be a good way of getting + +00:04:03.580 --> 00:04:04.080 +hyperdrives if you do not want to install npm + +00:04:06.460 --> 00:04:06.740 +and have a binary? Could you compile it with + +00:04:08.300 --> 00:04:08.800 +denner or rusk or zig or go? + +00:04:10.960 --> 00:04:11.120 +CLI alternative tool, I would prefer to + +00:04:11.840 --> 00:04:12.340 +download a single binary. + +00:04:17.420 --> 00:04:17.720 +[Speaker 1]: There's something that Jonas was playing + +00:04:20.459 --> 00:04:20.800 +around with using Geeks to install Hyper + +00:04:22.860 --> 00:04:23.360 +Gateway. So the way that HyperDrive.el, + +00:04:26.880 --> 00:04:27.380 +the Emacs package, works right now is similar + +00:04:30.300 --> 00:04:30.720 +to the way that the transmission Emacs client + +00:04:34.200 --> 00:04:34.640 +for BitTorrent works, where you have a client + +00:04:37.320 --> 00:04:37.480 +in Emacs that connects to a daemon that is a + +00:04:39.120 --> 00:04:39.280 +separate process that's running on your + +00:04:41.820 --> 00:04:42.320 +machine, the transmission daemon. + +00:04:43.500 --> 00:04:44.000 +But in this case, we have HyperGateway, + +00:04:46.060 --> 00:04:46.560 +which is running as a daemon on your machine. + +00:04:48.180 --> 00:04:48.680 +And then hyperdrive.el + +00:04:51.020 --> 00:04:51.520 +connects to that daemon and sends requests, + +00:04:53.520 --> 00:04:53.620 +and all of the hyperdrive stuff under the + +00:04:55.880 --> 00:04:56.380 +hood happens with her gateway. + +00:04:57.940 --> 00:04:58.440 +But so that package can, + +00:05:00.280 --> 00:05:00.460 +or hypergateway, the program can be + +00:05:02.900 --> 00:05:03.080 +installed, The easiest way is to just + +00:05:04.400 --> 00:05:04.900 +download it from the GitHub releases. + +00:05:07.060 --> 00:05:07.560 +You could also use NPM to install it. + +00:05:09.520 --> 00:05:09.680 +And then the third option that we've been + +00:05:12.920 --> 00:05:13.040 +playing around with is Jonas was writing a + +00:05:14.540 --> 00:05:15.040 +little script to install it using Geeks, + +00:05:18.340 --> 00:05:18.840 +since Geeks now comes with Node 18. + +00:05:20.740 --> 00:05:20.940 +And so you should be able to install it using + +00:05:20.940 --> 00:05:21.440 +Geeks. + +00:05:25.320 --> 00:05:25.520 +[Speaker 0]: Right, thank you. We have 2 people here + +00:05:26.100 --> 00:05:26.600 +joined with microphone. + +00:05:30.240 --> 00:05:30.560 +Do we have now any question to Joseph or just + +00:05:32.060 --> 00:05:32.560 +here for chilling out. + +00:05:41.820 --> 00:05:42.260 +I guess it's a no. Plasma, + +00:05:42.260 --> 00:05:42.760 +yeah. + +00:05:46.120 --> 00:05:46.260 +[Speaker 3]: What about using, having some of the + +00:05:47.960 --> 00:05:48.460 +information being private in the hyperdrives. + +00:05:54.240 --> 00:05:54.400 +[Speaker 1]: That's not what we have been focusing on at + +00:05:55.240 --> 00:05:55.640 +this point. At this point, + +00:05:57.340 --> 00:05:57.660 +what we've been working on is mainly using + +00:06:02.180 --> 00:06:02.680 +hyperdrives for a public forum type tool. + +00:06:06.420 --> 00:06:06.560 +But you could encrypt those files if you + +00:06:09.340 --> 00:06:09.840 +wanted to. You can also just, + +00:06:13.660 --> 00:06:14.160 +a poor man's security would just be to share + +00:06:16.660 --> 00:06:16.960 +your HyperDrive link only with those people + +00:06:19.060 --> 00:06:19.560 +that you want to have access to your drive. + +00:06:21.820 --> 00:06:22.240 +But the way that it works right now is anyone + +00:06:23.800 --> 00:06:24.280 +who has the link to a hyperdrive can access + +00:06:26.040 --> 00:06:26.420 +its content. So long as there are peers + +00:06:28.740 --> 00:06:28.900 +available on the network who can serve it to + +00:06:28.900 --> 00:06:29.400 +you. + +00:06:37.440 --> 00:06:37.660 +[Speaker 0]: Any follow up question from your side, + +00:06:37.660 --> 00:06:38.160 +Plasma? + +00:06:46.720 --> 00:06:47.220 +[Speaker 3]: I had 1, I'll just have to re-remember it. + +00:06:55.240 --> 00:06:55.600 +[Speaker 0]: If you remember it, just feel free to + +00:06:56.000 --> 00:06:56.500 +interrupt me. + +00:06:58.980 --> 00:06:59.220 +[Speaker 3]: What about working? I've looked at this + +00:07:03.120 --> 00:07:03.480 +before. What about, if I remember correctly, + +00:07:04.920 --> 00:07:05.220 +it doesn't do as well with large files, + +00:07:09.060 --> 00:07:09.520 +so if you're going to store 200 gigs of video + +00:07:12.180 --> 00:07:12.520 +files, stuff like IPFS works a lot better, + +00:07:15.200 --> 00:07:15.480 +or BitTorrent. This is, + +00:07:17.120 --> 00:07:17.620 +are you, were you using the, + +00:07:21.980 --> 00:07:22.300 +any way of using multiple protocols for stuff + +00:07:25.560 --> 00:07:25.800 +like that? Or what were you doing with, + +00:07:27.340 --> 00:07:27.480 +or were you just doing the small files with + +00:07:28.680 --> 00:07:29.180 +the same protocol? Or + +00:07:34.440 --> 00:07:34.920 +[Speaker 1]: I would love to see an IPFS client in Emacs + +00:07:37.260 --> 00:07:37.700 +as well that could interface with Kubo or + +00:07:40.040 --> 00:07:40.240 +some other IPFS daemon and I think that those + +00:07:41.120 --> 00:07:41.620 +could work really well together. + +00:07:45.680 --> 00:07:45.860 +We mostly have been playing around with + +00:07:47.240 --> 00:07:47.740 +sharing relatively small files, + +00:07:52.120 --> 00:07:52.240 +up to hundreds of megabytes or maybe a + +00:07:55.240 --> 00:07:55.640 +gigabyte. We haven't played around yet with + +00:07:57.380 --> 00:07:57.880 +hyperdrive.el, the Emacs client, + +00:07:59.240 --> 00:07:59.740 +testing that with HyperGateway. + +00:08:04.020 --> 00:08:04.160 +But there may be other experiments that have + +00:08:05.880 --> 00:08:06.380 +been done that show that that works well. + +00:08:10.880 --> 00:08:11.320 +The main thing is that IPFS uses content + +00:08:14.820 --> 00:08:15.060 +addressability to reduce duplication of the + +00:08:16.620 --> 00:08:17.120 +content. Whereas in HyperDrive, + +00:08:20.140 --> 00:08:20.320 +if you upload the same file with the same + +00:08:23.160 --> 00:08:23.620 +contents twice, now you have double the + +00:08:25.120 --> 00:08:25.580 +content being stored in your HyperDrive. + +00:08:26.040 --> 00:08:26.540 +It's not deduplicated. + +00:08:30.800 --> 00:08:31.300 +You can always clear out part of the history + +00:08:36.340 --> 00:08:36.659 +of your hyperdrive But IPFS has really good + +00:08:39.140 --> 00:08:39.640 +built-in deduplication whereas hyperdrive + +00:08:39.860 --> 00:08:40.360 +does not + +00:08:44.159 --> 00:08:44.540 +[Speaker 4]: I have a question. + +00:08:47.440 --> 00:08:47.580 +[Speaker 3]: What about like commenting on other like if + +00:08:50.140 --> 00:08:50.600 +you have a couple of different Hypercore + +00:08:53.900 --> 00:08:54.220 +blogs, what about like commenting between + +00:08:56.680 --> 00:08:57.040 +them? Like you have some people who have a + +00:08:59.280 --> 00:08:59.640 +commenting form on Reddit for their blog + +00:08:59.640 --> 00:09:00.140 +posts. + +00:09:04.640 --> 00:09:04.760 +[Speaker 1]: So Move SignWeaver has been doing a lot of + +00:09:07.880 --> 00:09:08.380 +work recently with the distributed press API + +00:09:12.040 --> 00:09:12.540 +to integrate ActivityPub with these + +00:09:14.120 --> 00:09:14.620 +peer-to-peer technologies. + +00:09:17.980 --> 00:09:18.240 +Move can give you more information about + +00:09:22.120 --> 00:09:22.440 +that. But there is another feature that we'd + +00:09:23.400 --> 00:09:23.900 +like to add to hyperdrive.el, + +00:09:29.140 --> 00:09:29.640 +which is peer discovery using the swarming + +00:09:30.600 --> 00:09:31.100 +feature that HyperCore, + +00:09:34.600 --> 00:09:35.100 +HyperSWARM offers, where you'd be able to say + +00:09:38.500 --> 00:09:38.660 +that my node, my peer-to-peer node is + +00:09:41.640 --> 00:09:41.840 +interested in Emacs and free software as + +00:09:43.100 --> 00:09:43.320 +topics. And those would be 2 different + +00:09:45.060 --> 00:09:45.300 +topics. I would advertise on the network that + +00:09:46.240 --> 00:09:46.740 +I'm interested in those topics. + +00:09:49.120 --> 00:09:49.480 +And I would be able to discover other peers + +00:09:52.040 --> 00:09:52.200 +on the network who have also advertised that + +00:09:53.440 --> 00:09:53.940 +they're interested in those same topics. + +00:09:56.040 --> 00:09:56.320 +And then they would tell me, + +00:09:59.260 --> 00:09:59.760 +hey, here's the public key of my hyperdrive. + +00:10:01.820 --> 00:10:02.320 +Come check it out. I have posted information + +00:10:04.300 --> 00:10:04.540 +about those topics. And so in that way, + +00:10:06.860 --> 00:10:07.360 +you'd be able to, in a distributed fashion, + +00:10:09.660 --> 00:10:09.800 +discover other peers on the network who are + +00:10:11.240 --> 00:10:11.600 +interested in topics that you're interested + +00:10:11.600 --> 00:10:12.100 +in. + +00:10:16.780 --> 00:10:16.960 +[Speaker 3]: Something that would be useful in addition to + +00:10:19.600 --> 00:10:20.100 +that idea is like if you had your emacs + +00:10:25.560 --> 00:10:25.680 +Zettelkasten Publish like let's say you have + +00:10:27.860 --> 00:10:28.140 +some private data You make sure that that's + +00:10:29.800 --> 00:10:30.060 +scrubbed out before it goes to your hyper + +00:10:31.760 --> 00:10:32.260 +core and then you have another part of it + +00:10:35.540 --> 00:10:35.940 +that gets turned into a website for it's also + +00:10:38.040 --> 00:10:38.240 +given to other hyper core clients but you'd + +00:10:40.120 --> 00:10:40.620 +rather get the emacs users the org documents + +00:10:44.760 --> 00:10:44.920 +then you also publish some of them on a + +00:10:48.680 --> 00:10:48.840 +website so everybody as much people can get + +00:10:53.560 --> 00:10:53.960 +it as possible. And then a way of figuring + +00:10:55.640 --> 00:10:56.140 +out who you'd want to do, + +00:10:57.780 --> 00:10:58.180 +or if you're an Emacs user, + +00:10:59.860 --> 00:11:00.040 +maybe figure out that they're all related to + +00:11:01.440 --> 00:11:01.640 +each other, but you want to get the art mode + +00:11:03.080 --> 00:11:03.580 +documents because you're using EMAX. + +00:11:05.900 --> 00:11:06.400 +Yeah. + +00:11:10.360 --> 00:11:10.760 +[Speaker 0]: Maybe a side note, we have 4 minutes here on + +00:11:12.040 --> 00:11:12.400 +before we switch into the next track, + +00:11:13.200 --> 00:11:13.700 +just to let you know. + +00:11:17.900 --> 00:11:18.400 +[Speaker 1]: Thank you. So the hyper drive mirror feature + +00:11:21.220 --> 00:11:21.720 +that we added, would allow you to selectively + +00:11:24.840 --> 00:11:24.960 +choose which files you want to share in a + +00:11:28.500 --> 00:11:28.780 +hyperdrive. So, with Prot's denote file + +00:11:30.660 --> 00:11:31.000 +naming scheme or Carl Voigt's file tags + +00:11:33.600 --> 00:11:33.760 +naming scheme, you could just specify a + +00:11:35.940 --> 00:11:36.140 +regular expression. And you could say, + +00:11:40.140 --> 00:11:40.460 +I want to share out of my directory of org + +00:11:42.560 --> 00:11:42.740 +files, I want to share only those files that + +00:11:44.220 --> 00:11:44.720 +have been tagged as public, + +00:11:47.320 --> 00:11:47.520 +or only those files that have been tagged as + +00:11:49.680 --> 00:11:49.840 +emacs and then only those ones would get + +00:11:50.720 --> 00:11:51.220 +uploaded into your hyperdrive + +00:11:54.280 --> 00:11:54.560 +[Speaker 3]: or exclude all in any of the ones that say + +00:11:54.560 --> 00:11:55.060 +private + +00:12:01.620 --> 00:12:02.120 +[Speaker 0]: yep mike had a question + +00:12:05.220 --> 00:12:05.720 +[Speaker 4]: yeah I have a question for the hyperdrive. + +00:12:08.520 --> 00:12:08.940 +So I just maybe I missed it and you haven't + +00:12:09.340 --> 00:12:09.840 +put a link. + +00:12:16.200 --> 00:12:16.700 +[Speaker 1]: Oh, Mikhail, we can't hear you. + +00:12:22.660 --> 00:12:23.160 +[Speaker 3]: Heard you for a second. + +00:12:28.440 --> 00:12:28.940 +[Speaker 1]: Yes? + +00:12:29.640 --> 00:12:30.040 +[Speaker 4]: Can someone hear me? Okay, + +00:12:31.200 --> 00:12:31.400 +I have no idea what happened to my + +00:12:32.480 --> 00:12:32.980 +microphone, but now it's back. + +00:12:34.760 --> 00:12:34.920 +[Speaker 3]: Now we can. You can see the microphone on the + +00:12:35.840 --> 00:12:36.340 +top of the screen. So + +00:12:38.940 --> 00:12:39.080 +[Speaker 4]: yes, thank you. Okay. I have a question to + +00:12:41.520 --> 00:12:41.720 +hyperdrive. Is the hyperdrive a find on the + +00:12:46.160 --> 00:12:46.320 +hole punch point, point T O hole Or is it + +00:12:47.020 --> 00:12:47.520 +just another hyperdrive? + +00:12:51.260 --> 00:12:51.760 +[Speaker 1]: That's exactly the project that we're using. + +00:12:54.520 --> 00:12:55.020 +So the HolePunch team has released hyperdrive + +00:12:59.340 --> 00:12:59.620 +and other hyper core libraries as free + +00:13:01.880 --> 00:13:02.380 +software libraries that you can use. + +00:13:03.940 --> 00:13:04.440 +And so MoV SignWeaver, + +00:13:07.080 --> 00:13:07.440 +the project that MoV is working on, + +00:13:11.120 --> 00:13:11.620 +HyperGateway, depends on those libraries and + +00:13:15.520 --> 00:13:15.880 +it makes it easy for you to build other + +00:13:17.200 --> 00:13:17.700 +clients like hyperdrive.el + +00:13:20.600 --> 00:13:21.100 +which connect to the hyperdrive network. + +00:13:22.800 --> 00:13:23.300 +I hope that answers your question. + +00:13:25.140 --> 00:13:25.440 +[Speaker 4]: Yes it does, thank you. + +00:13:28.380 --> 00:13:28.620 +And what did make you choose hyperdrive for + +00:13:29.380 --> 00:13:29.880 +this Emacs project? + +00:13:34.400 --> 00:13:34.900 +[Speaker 1]: Mainly the fact that the drives are mutable, + +00:13:37.660 --> 00:13:38.160 +which makes it distinct from IPFS or + +00:13:40.800 --> 00:13:41.020 +BitTorrent, where when you share some piece + +00:13:44.760 --> 00:13:45.060 +of content, you're stuck with that static + +00:13:46.800 --> 00:13:47.020 +piece of content, which works well for some + +00:13:49.600 --> 00:13:50.100 +cases, but if you say you have a Zettelkasten + +00:13:52.300 --> 00:13:52.500 +or you have a set of org files that you want + +00:13:56.120 --> 00:13:56.580 +to share with people, you want to be able to + +00:13:58.860 --> 00:13:59.160 +update those files and have other people pull + +00:13:59.960 --> 00:14:00.360 +those updates from you. + +00:14:02.300 --> 00:14:02.720 +And so HyperDrive allows you to have these + +00:14:05.340 --> 00:14:05.820 +mutable sets of files that you can share and + +00:14:08.440 --> 00:14:08.600 +use the same link for other peers to pull the + +00:14:09.440 --> 00:14:09.800 +latest changes from you. + +00:14:11.660 --> 00:14:11.960 +Also, it's versioned, as we showed in the + +00:14:15.200 --> 00:14:15.700 +video, which is really helpful for having + +00:14:17.500 --> 00:14:17.900 +community deliberations and community + +00:14:19.400 --> 00:14:19.600 +discussions where you want to be able to + +00:14:22.420 --> 00:14:22.700 +reference some something that somebody said + +00:14:26.120 --> 00:14:26.320 +in the past and not have it get deleted or + +00:14:26.860 --> 00:14:27.360 +changed or something. + +00:14:30.600 --> 00:14:31.100 +[Speaker 0]: We are now switching to talk So just for + +00:14:32.720 --> 00:14:33.200 +letting you know if you want to say something + +00:14:37.640 --> 00:14:37.840 +now. Too late. The BB room is still open, + +00:14:38.480 --> 00:14:38.860 +so you can still discuss. + +00:14:41.480 --> 00:14:41.980 +There's also a lot going on on the pad. + +00:14:47.980 --> 00:14:48.480 +But you can also discuss here inside and + +00:14:49.760 --> 00:14:50.260 +answer the pet questions maybe later. + +00:14:52.800 --> 00:14:53.300 +[Speaker 1]: Yeah, there are good questions. + +00:14:58.680 --> 00:14:59.180 +I'll go ahead, please. + +00:15:01.120 --> 00:15:01.620 +[Speaker 3]: continuing here on the pad? + +00:15:04.540 --> 00:15:05.040 +[Speaker 1]: Are we I can hear you. + +00:15:07.540 --> 00:15:08.040 +[Speaker 5]: Yeah, so the question I had on the pad was, + +00:15:10.760 --> 00:15:10.900 +would it make sense in any sense to put a + +00:15:13.820 --> 00:15:13.940 +FUSE interface or put the POSIX semantics in + +00:15:14.960 --> 00:15:15.460 +front of this at some point? + +00:15:17.800 --> 00:15:18.080 +[Speaker 1]: Yeah, that would be cool. + +00:15:20.680 --> 00:15:21.060 +It's kind of a similar question to any plans + +00:15:21.680 --> 00:15:22.180 +for a Tramp interface. + +00:15:25.440 --> 00:15:25.940 +There was a project that the HyperCore + +00:15:31.160 --> 00:15:31.500 +HolePunch team was working on a year or more + +00:15:34.320 --> 00:15:34.820 +ago that provided a FUSE interface. + +00:15:39.560 --> 00:15:40.060 +And I think it didn't pan out. + +00:15:43.580 --> 00:15:43.940 +But it's a good idea. Same with the Tramp + +00:15:46.560 --> 00:15:46.720 +interface. It seems like a good idea that + +00:15:51.900 --> 00:15:52.260 +would make it possible to more easily hook + +00:15:55.520 --> 00:15:56.020 +into the built-in Emacs functionality for, + +00:16:01.340 --> 00:16:01.840 +for example, like incremental file name + +00:16:03.680 --> 00:16:03.960 +completion, which we don't currently support + +00:16:09.800 --> 00:16:10.260 +in Hyperdrive.el. So I'd love to have + +00:16:12.720 --> 00:16:13.220 +feedback and design ideas for those projects. + +00:16:15.860 --> 00:16:16.020 +[Speaker 5]: Yeah, there's just Everything in Emacs just + +00:16:17.980 --> 00:16:18.280 +sort of assumes the file system is there and + +00:16:20.940 --> 00:16:21.440 +usable in that way. That's all. + +00:16:23.980 --> 00:16:24.480 +[Speaker 1]: Yeah, it's a good idea. + +00:16:28.180 --> 00:16:28.680 +[Speaker 3]: An idea for the privacy type thing is + +00:16:33.160 --> 00:16:33.380 +Syncthing links. Because I think you can set + +00:16:36.100 --> 00:16:36.480 +up Syncthing in such a way that you have the + +00:16:38.560 --> 00:16:38.900 +private networks that other people can't + +00:16:40.240 --> 00:16:40.740 +actually get access to. + +00:16:45.540 --> 00:16:45.700 +[Speaker 1]: I did not know that that was possible with + +00:16:47.120 --> 00:16:47.620 +Syncthing. I'll have to look into that. + +00:16:48.840 --> 00:16:49.200 +[Speaker 3]: At least I think it is anyway, + +00:16:53.000 --> 00:16:53.500 +because yeah, there's ways you can explicitly + +00:16:56.780 --> 00:16:57.280 +authorize devices. Yeah, + +00:17:00.240 --> 00:17:00.400 +right. I think you could actually set it up + +00:17:03.480 --> 00:17:03.960 +in such a way that you can have private stuff + +00:17:06.300 --> 00:17:06.480 +and links, and then that might be a way that + +00:17:10.119 --> 00:17:10.619 +you can get a completely distributed + +00:17:12.720 --> 00:17:13.220 +Zettelcast and with private notes. + +00:17:22.339 --> 00:17:22.599 +[Speaker 1]: Yeah. Good idea. There's a question in the + +00:17:26.280 --> 00:17:26.380 +pad about DATRS, a Rust version of + +00:17:28.660 --> 00:17:29.160 +HyperDrive. I had not heard of that, + +00:17:30.260 --> 00:17:30.760 +so I'll have to look into that. + +00:17:33.040 --> 00:17:33.460 +If you had your druthers, + +00:17:34.820 --> 00:17:35.320 +what would make your work on hyperdrive.dl + +00:17:40.240 --> 00:17:40.740 +easier? It's been a lot of fun. + +00:17:42.480 --> 00:17:42.980 +I would love to have more user feedback. + +00:17:45.660 --> 00:17:46.160 +That would be my wish. + +00:17:50.500 --> 00:17:51.000 +I tried putting a git repo in HyperDrive. + +00:17:53.320 --> 00:17:53.500 +Does it work well? I don't think that would + +00:17:56.880 --> 00:17:57.100 +work well because, as I mentioned a moment a + +00:18:00.060 --> 00:18:00.220 +few moments ago, the data that you put into a + +00:18:00.920 --> 00:18:01.420 +hyperdrive is duplicated. + +00:18:06.300 --> 00:18:06.800 +So if you had the whole work tree in + +00:18:08.800 --> 00:18:08.960 +hyperdrive every time you made a change and + +00:18:12.340 --> 00:18:12.840 +saved it, it would be duplicated. + +00:18:15.240 --> 00:18:15.740 +If you had just a bare repository, + +00:18:18.240 --> 00:18:18.740 +I don't know, try it. + +00:18:21.140 --> 00:18:21.540 +[Speaker 3]: They're trying to solve the same problem, + +00:18:23.560 --> 00:18:24.060 +but 1 of the optimizations they have for + +00:18:25.520 --> 00:18:25.900 +being able to view a whole bunch of people's + +00:18:28.780 --> 00:18:28.980 +data is they made shallow clones a lot + +00:18:34.640 --> 00:18:35.140 +[Speaker 1]: Would you phrase that again, + +00:18:35.140 --> 00:18:35.640 +please? + +00:18:39.780 --> 00:18:40.280 +[Speaker 3]: easier. Right? So like Git and Hypercore, + +00:18:42.720 --> 00:18:43.220 +1 of the things they do is they allow you to + +00:18:46.160 --> 00:18:46.660 +have a whole history of every single change + +00:18:51.880 --> 00:18:52.380 +for a dataset Zettelkasten project. + +00:18:56.400 --> 00:18:56.600 +But 1 of the optimizations Hypercore did to + +00:19:02.020 --> 00:19:02.220 +make it more network web friendly is they + +00:19:04.540 --> 00:19:04.700 +made the shallow clones work a lot better and + +00:19:07.040 --> 00:19:07.240 +a lot... Yeah, they made that work a lot + +00:19:08.760 --> 00:19:09.060 +better so you don't have to download every + +00:19:11.340 --> 00:19:11.840 +single thing for every single project. + +00:19:14.860 --> 00:19:15.100 +And because they both are implementing the + +00:19:17.800 --> 00:19:18.040 +delta upgrades, I don't see how they could + +00:19:19.000 --> 00:19:19.500 +work really well together. + +00:19:21.780 --> 00:19:22.280 +At least from what it looked like to me. + +00:19:25.640 --> 00:19:26.140 +It can't hurt to experiment. + +00:19:28.980 --> 00:19:29.480 +[Speaker 1]: But yeah, I would agree with you. + +00:19:35.020 --> 00:19:35.180 +Is data transferred between nodes in the + +00:19:38.800 --> 00:19:39.060 +clear or encrypted? That's a good question. + +00:19:41.640 --> 00:19:42.140 +I don't know how it's encrypted. + +00:19:47.440 --> 00:19:47.940 +I don't, I wouldn't recommend sharing + +00:19:53.400 --> 00:19:53.900 +sensitive data with hyperdrive right now? + +00:19:55.680 --> 00:19:55.800 +I would recommend if you want to play with + +00:19:57.240 --> 00:19:57.520 +it, have it be something where you're + +00:20:00.660 --> 00:20:01.160 +expecting the data to be shared. + +00:20:03.460 --> 00:20:03.960 +Is there a searchable catalog? + +00:20:06.700 --> 00:20:06.980 +[Speaker 3]: It's also the data in transport versus data + +00:20:08.480 --> 00:20:08.800 +at rest. I'm pretty sure the data at rest + +00:20:09.960 --> 00:20:10.460 +would not be encrypted. + +00:20:14.440 --> 00:20:14.640 +Right. You can separate that into those 2 + +00:20:14.640 --> 00:20:15.140 +questions. + +00:20:19.920 --> 00:20:20.420 +[Speaker 1]: Right. Right. Is there a searchable catalog + +00:20:23.000 --> 00:20:23.320 +of hyper drives? So that's a thing, + +00:20:32.980 --> 00:20:33.480 +an idea that we've been a distributed trust + +00:20:38.200 --> 00:20:38.700 +network for discovering peers that are + +00:20:41.260 --> 00:20:41.760 +trusted for a particular topic. + +00:20:47.220 --> 00:20:47.440 +And we actually made a demo video of a + +00:20:51.760 --> 00:20:51.900 +previous prototype that's available on the + +00:20:54.580 --> 00:20:55.080 +Ashen hyperdrive that you can watch that + +00:20:58.980 --> 00:20:59.280 +shows the basic idea. But the idea is just + +00:21:02.980 --> 00:21:03.480 +that you would have a list of peers that you + +00:21:07.120 --> 00:21:07.620 +think are worth listening to or worth reading + +00:21:09.400 --> 00:21:09.880 +for a particular topic. + +00:21:11.980 --> 00:21:12.180 +And those peers would have peers that they + +00:21:14.640 --> 00:21:14.920 +think are worth listening to for that same + +00:21:16.600 --> 00:21:16.720 +topic. And so you would say, + +00:21:17.560 --> 00:21:17.900 +if I'm interested in Emacs, + +00:21:21.220 --> 00:21:21.660 +I want to see all the peers that I trust for + +00:21:23.700 --> 00:21:24.200 +the topic Emacs. And if, + +00:21:27.340 --> 00:21:27.640 +say, Adam Porter shows up in my list and Adam + +00:21:30.340 --> 00:21:30.840 +Porter trusts Jonas and Jonas trusts Pratt, + +00:21:33.420 --> 00:21:33.920 +I would be able to read hyperdrive + +00:21:36.760 --> 00:21:37.260 +information from all of those people by + +00:21:41.600 --> 00:21:41.800 +looking at the indirect relationships that I + +00:21:43.260 --> 00:21:43.760 +have by following the chain of relationships, + +00:21:44.760 --> 00:21:45.260 +kind of like a web of trust. + +00:21:49.640 --> 00:21:49.860 +And so it would also allow you to have a + +00:21:53.480 --> 00:21:53.980 +network of peers that you trust to block + +00:21:54.900 --> 00:21:55.400 +other people on your behalf. + +00:21:57.660 --> 00:21:58.160 +So it would be useful for subjective + +00:22:02.220 --> 00:22:02.520 +moderation where you can remove spam and bad + +00:22:04.920 --> 00:22:05.420 +actors from the people that you follow + +00:22:08.940 --> 00:22:09.440 +without having to delegate that powerful + +00:22:13.260 --> 00:22:13.380 +responsibility to some third party in a + +00:22:15.260 --> 00:22:15.720 +permanent way where that third party might + +00:22:23.040 --> 00:22:23.320 +abuse that power. So it allows you to share + +00:22:26.120 --> 00:22:26.260 +your list of trusted peers and your list of + +00:22:29.180 --> 00:22:29.280 +blocked peers with other people in a + +00:22:29.860 --> 00:22:30.360 +peer-to-peer way. + +00:22:38.080 --> 00:22:38.580 +[Speaker 3]: Have you ever looked at GNUnet? + +00:22:40.200 --> 00:22:40.700 +It kind of does some... + +00:22:45.660 --> 00:22:45.800 +It's trying to do something weird with the + +00:22:47.520 --> 00:22:47.600 +internet where it redesigns it from the + +00:22:51.040 --> 00:22:51.540 +ground up to be peer-to-peer, + +00:22:53.680 --> 00:22:54.180 +local first, or something like that. + +00:22:58.380 --> 00:22:58.880 +[Speaker 1]: I would like to know more about GNUnet. + +00:23:01.800 --> 00:23:01.960 +Yes. I have heard of it, + +00:23:03.620 --> 00:23:04.120 +but I haven't really researched it. + +00:23:09.060 --> 00:23:09.560 +If you edit a file on the hyperdrive, + +00:23:12.400 --> 00:23:12.900 +then edit the same file on the local mirror, + +00:23:15.480 --> 00:23:15.640 +how is the conflict handled when you sync the + +00:23:21.140 --> 00:23:21.280 +mirror again? So I think if I understand the + +00:23:29.160 --> 00:23:29.620 +question, the answer is that you can't edit + +00:23:32.280 --> 00:23:32.780 +the file in 2 different places, + +00:23:36.860 --> 00:23:37.360 +I think is the answer to the question. + +00:23:41.220 --> 00:23:41.720 +If you were to manually copy the private key + +00:23:44.040 --> 00:23:44.540 +from 1 machine onto another machine, + +00:23:51.820 --> 00:23:52.320 +then you could cause a conflict, + +00:23:54.400 --> 00:23:54.900 +like a merge conflict, + +00:23:58.100 --> 00:23:58.240 +but you would have to go out of your way to + +00:24:00.520 --> 00:24:00.900 +do that. And It's not handled. + +00:24:03.580 --> 00:24:03.820 +I think the Hypercore Hole Punch team has + +00:24:05.600 --> 00:24:05.860 +another project that they're working on that + +00:24:07.200 --> 00:24:07.700 +would, it's called AutoBase, + +00:24:09.560 --> 00:24:10.060 +that would merge those conflicts. + +00:24:13.200 --> 00:24:13.680 +But we're not using that right now. + +00:24:16.260 --> 00:24:16.760 +And I think it's in early development still. + +00:24:19.860 --> 00:24:20.360 +So there might be a solution in the future. + +00:24:32.240 --> 00:24:32.740 +[Speaker 3]: What's a surprising change of thoughts or + +00:24:36.900 --> 00:24:37.180 +what's the most interesting thing you weren't + +00:24:39.060 --> 00:24:39.560 +expecting to discover while developing this? + +00:24:44.640 --> 00:24:44.800 +Like change of thoughts on how you write or I + +00:24:45.020 --> 00:24:45.520 +don't know. + +00:24:59.060 --> 00:24:59.540 +[Speaker 1]: Well, I'm relatively new to Emacs and to Lisp + +00:25:01.200 --> 00:25:01.700 +and really to programming in general. + +00:25:04.160 --> 00:25:04.540 +And so it's been a fantastic learning + +00:25:08.480 --> 00:25:08.900 +experience. Adam, Alpha Papa, + +00:25:11.320 --> 00:25:11.520 +Adam and I have been doing a lot of pair + +00:25:12.960 --> 00:25:13.460 +programming sessions where we work together + +00:25:15.380 --> 00:25:15.880 +and I get to learn from him. + +00:25:19.540 --> 00:25:19.940 +And we've had meetings with Jonas and Prat + +00:25:23.560 --> 00:25:23.800 +and meetings with Mauve where it's a + +00:25:25.520 --> 00:25:26.020 +fantastic learning experience for me to + +00:25:30.660 --> 00:25:30.800 +discover how to build software in an + +00:25:32.820 --> 00:25:33.320 +efficient and intelligent way. + +00:25:40.580 --> 00:25:40.920 +It's a huge pleasure. If there are no more + +00:25:43.320 --> 00:25:43.820 +questions, I just wanted to encourage + +00:25:48.380 --> 00:25:48.620 +everyone to try it out and to let us know + +00:25:50.380 --> 00:25:50.560 +what you think. It would be really helpful to + +00:25:54.960 --> 00:25:55.320 +have some feedback from people who are using + +00:25:57.240 --> 00:25:57.600 +it in new and creative ways that we haven't + +00:25:57.600 --> 00:25:58.100 +anticipated. + +00:26:02.120 --> 00:26:02.300 +[Speaker 6]: Hi, I'd just like to say that I tried this + +00:26:02.980 --> 00:26:03.480 +new thing called hyperdrive.el + +00:26:05.880 --> 00:26:06.380 +today, and I think it's pretty cool. + +00:26:12.540 --> 00:26:12.800 +[Speaker 2]: Sorry, that was somebody else. + +00:26:13.440 --> 00:26:13.940 +Hey Joseph, how's it going? + +00:26:15.080 --> 00:26:15.580 +Oh, talk today. + +00:26:16.420 --> 00:26:16.580 +[Speaker 3]: Oh, thanks. Wonderful. + +00:26:19.200 --> 00:26:19.700 +[Speaker 1]: Who's that? Oh, hey. Well, + +00:26:34.060 --> 00:26:34.560 +I'm going to say goodbye. + +00:26:37.040 --> 00:26:37.540 +Thank you. And thank you for your questions, + +00:26:39.680 --> 00:26:39.840 +[Speaker 3]: I know that + +00:26:40.380 --> 00:26:40.880 +[Speaker 1]: PlasmaStrike. I've met you before. + +00:26:42.340 --> 00:26:42.720 +Appreciate your questions, + +00:26:42.880 --> 00:26:43.380 +your thoughts. + +00:26:50.380 --> 00:26:50.880 +[Speaker 2]: Oh, by the way, Joseph, + +00:26:53.000 --> 00:26:53.500 +we have our, our first, + +00:26:55.120 --> 00:26:55.480 +I don't know if our first new user, + +00:26:57.280 --> 00:26:57.780 +but we have the first link being shared, + +00:27:01.160 --> 00:27:01.480 +to hyperdrive file in the chat and I loaded + +00:27:03.080 --> 00:27:03.240 +it and it works. And it's funny too. + +00:27:03.880 --> 00:27:04.000 +It's worth looking at. + +00:27:09.140 --> 00:27:09.640 +So. Oh, I think it's frozen. + +00:27:11.580 --> 00:27:12.080 +I don't know if anybody can hear me. + +00:27:12.720 --> 00:27:13.220 +[Speaker 3]: I can. + +00:27:15.200 --> 00:27:15.620 +[Speaker 2]: Okay, cool. The browser is frozen. + +00:27:19.020 --> 00:27:19.520 +It's it's not, okay. Just unfroze. + +00:27:21.740 --> 00:27:22.100 +Anyway. All right. Well, + +00:27:24.000 --> 00:27:24.440 +By the way, I enjoyed your talks about + +00:27:26.260 --> 00:27:26.480 +hyperbole. I'm going to rewatch those later + +00:27:28.040 --> 00:27:28.260 +when I get a chance. It was nice to meet you, + +00:27:31.100 --> 00:27:31.240 +too. Bob is a really great guy to work with. + +00:27:38.800 --> 00:27:39.300 +[Speaker 3]: Definitely a lot of interesting people. + +00:27:40.200 --> 00:27:40.700 +[Speaker 2]: I owe him 1. Yes, sir. + +00:27:41.580 --> 00:27:41.760 +All right, you have a good day, + +00:27:45.140 --> 00:27:45.640 +[Speaker 3]: Will do, I like the insistence on local + +00:27:48.740 --> 00:27:48.940 +first. Feels like it's a good dovetail with + +00:27:49.540 --> 00:27:50.040 +the hyper core + +00:27:51.180 --> 00:27:51.680 +[Speaker 2]: enjoy the conference. Yeah, + +00:27:54.960 --> 00:27:55.120 +yeah, I think there's a lot of a lot of + +00:27:57.980 --> 00:27:58.180 +interesting possibilities to build on this we + +00:28:01.340 --> 00:28:01.600 +have some plans that we Will get to you later + +00:28:05.600 --> 00:28:05.820 +this well in the coming year And we'll see + +00:28:07.480 --> 00:28:07.900 +where the hyperdrive people, + +00:28:09.920 --> 00:28:10.040 +you know, upstream how they develop it as + +00:28:14.340 --> 00:28:14.840 +well and yeah, so exciting times. -- cgit v1.2.3