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.