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.