# Transcript
[[!template text="""Hello, I'm Joseph Turner.""" start="00:00:00.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This talk is about hyperdrive.el,""" start="00:00:02.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""peer-to-peer file system in Emacs.""" start="00:00:05.107" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrive is a JavaScript library""" start="00:00:09.100" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""developed by the Holepunch team""" start="00:00:11.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for sharing files on a peer-to-peer network.""" start="00:00:13.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's released under the Apache 2.0 license.""" start="00:00:16.500" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Hyperdrives introduction""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here's how it works.""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""To participate as a peer, you run a node,""" start="00:00:21.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""a lightweight local server that allows you""" start="00:00:24.581" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to connect with other nodes on the network.""" start="00:00:27.281" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can create a hyperdrive or multiple hyperdrives,""" start="00:00:29.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and you can author files within them.""" start="00:00:33.123" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Each hyperdrive is automatically assigned""" start="00:00:36.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""a globally unique link""" start="00:00:38.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that starts with `hyper://`.""" start="00:00:40.906" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""When you share that link with someone,""" start="00:00:44.580" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""they have access to your hyperdrive.""" start="00:00:47.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Anyone who has that link can load the hyperdrive""" start="00:00:49.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from the network and view its content.""" start="00:00:52.820" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""When you load a Hyperdrive file from the network,""" start="00:00:56.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""your node caches that data locally""" start="00:00:59.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and automatically begins seeding it""" start="00:01:02.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""back to the network,""" start="00:01:04.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""making it available for others to download from you.""" start="00:01:05.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are single writer.""" start="00:01:12.620" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that when you create a new drive,""" start="00:01:14.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you are the only one who can make changes to it.""" start="00:01:16.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Others can view it""" start="00:01:19.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and can seed it back to the network,""" start="00:01:21.267" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but you're the only one who can modify it.""" start="00:01:23.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are offline first.""" start="00:01:27.340" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that when you load data from the network,""" start="00:01:29.740" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it's stored locally on your machine""" start="00:01:33.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for you to view later,""" start="00:01:34.900" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""even when you're disconnected from other peers.""" start="00:01:36.180" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can also create new drives""" start="00:01:38.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and modify your drives when you're offline,""" start="00:01:40.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then share those changes""" start="00:01:43.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""once you connect with peers later.""" start="00:01:45.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are local first.""" start="00:01:47.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that when you are connected with""" start="00:01:50.300" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""other peers on a local area network,""" start="00:01:52.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""even if none of the peers involved""" start="00:01:54.740" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""are connected to the broader Internet,""" start="00:01:56.940" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can still share files.""" start="00:01:58.980" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are sparsely replicated.""" start="00:02:02.060" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that you can download individual files""" start="00:02:04.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from a hyperdrive without having to download""" start="00:02:07.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the whole thing.""" start="00:02:10.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This saves on disk space and also allows you""" start="00:02:11.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to quickly load just the files""" start="00:02:15.471" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that you're interested in.""" start="00:02:17.233" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are mutable.""" start="00:02:20.540" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can add files, change files,""" start="00:02:22.467" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""remove files from a hyperdrive.""" start="00:02:25.500" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And when peers load your drive""" start="00:02:28.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""using the very same link,""" start="00:02:30.667" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""they will be able to load""" start="00:02:32.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the latest changes that you've published.""" start="00:02:34.025" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrives are versioned.""" start="00:02:37.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that when you make changes to a file,""" start="00:02:39.460" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the previous versions of those files are not lost.""" start="00:02:42.429" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Peers can load the old versions of a file""" start="00:02:46.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that was changed or deleted, for example,""" start="00:02:49.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""simply by specifying the version number""" start="00:02:52.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of the hyperdrive when the file still existed""" start="00:02:55.067" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or existed in a previous state.""" start="00:02:58.167" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""About USHIN and the contributors""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'm presenting this talk on behalf of USHIN.""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""USHIN is a tiny nonprofit whose mission is to""" start="00:03:07.380" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""promote personal, community and global health""" start="00:03:10.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""through free and open universal shared information""" start="00:03:14.032" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for everybody.""" start="00:03:17.367" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""USHIN was founded in the early 90s""" start="00:03:19.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""by Paula Maas, Steve Nash and others""" start="00:03:21.551" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""with the goal of creating""" start="00:03:24.860" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""a distributed health information network""" start="00:03:26.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that would allow people to find, share, compare""" start="00:03:29.131" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and deliberate health information""" start="00:03:33.429" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from a variety of sources.""" start="00:03:35.667" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Since then, the scope of the project has broadened""" start="00:03:37.780" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to include all kinds of information.""" start="00:03:40.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And in recent years, we've been focusing on""" start="00:03:43.260" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""building with peer-to-peer software.""" start="00:03:45.780" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""About three years ago,""" start="00:03:49.500" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we started working with Mauve Signweaver,""" start="00:03:50.534" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""who has since then been our steadfast""" start="00:03:52.634" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""peer-to-peer explorer and guide.""" start="00:03:54.767" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This year, we started working on""" start="00:03:58.260" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this hyperdrive.el Emacs package,""" start="00:04:00.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and Adam has been the powerhouse""" start="00:04:02.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""behind the Emacs Lisp development.""" start="00:04:05.060" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""About a month ago,""" start="00:04:08.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Jonas Bernoulli started joining with us,""" start="00:04:08.967" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and he has been offering his expertise""" start="00:04:11.100" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the realm of user interface design""" start="00:04:14.420" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""using his Transient library.""" start="00:04:15.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And Protesilaos Stavrou has been not only valuable""" start="00:04:18.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in terms of user design and feedback,""" start="00:04:22.140" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but he created a wonderful""" start="00:04:25.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""basic introduction to Hyperdrive. Take a look.""" start="00:04:27.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Basic introduction to Hyperdrive""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""[Prot]: Hello everyone!""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""My name is Protesilaos, also known as Prot.""" start="00:04:33.586" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In this video, I want to show you""" start="00:04:36.366" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the basics of hyperdrive.el.""" start="00:04:37.806" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is a package for Emacs that lets us connect to""" start="00:04:40.746" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the Hyperdrive peer-to-peer network.""" start="00:04:44.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We can browse existing drives on the network,""" start="00:04:47.833" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""meaning existing file systems,""" start="00:04:51.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or create and maintain our own hyperdrive,""" start="00:04:53.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to which we can add, remove or edit files.""" start="00:04:59.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We will see this together.""" start="00:05:03.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I have here in front of me is a basic""" start="00:05:05.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""use-package declaration for hyperdrive.el.""" start="00:05:08.733" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""All I am doing is binding `hyperdrive-menu`""" start="00:05:12.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to a key and also activating""" start="00:05:16.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the menu bar entry of hyperdrive.""" start="00:05:19.793" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me show you very quickly, `hyperdrive-menu`.""" start="00:05:23.613" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And this is the sort of interface that it brings up.""" start="00:05:26.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We will take a closer look at it.""" start="00:05:31.293" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""As for the menu bar,""" start="00:05:33.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we have `hyperdrive-menu` over here,""" start="00:05:35.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and we will take a look at this as well.""" start="00:05:41.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Suffice to say that""" start="00:05:44.193" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can get the same functionality""" start="00:05:45.693" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""with the menu bar or with `hyperdrive-menu`,""" start="00:05:48.273" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as by calling the commands directly""" start="00:05:51.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""with `M-x` or their respective key bindings.""" start="00:05:55.893" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I won't cover everything in that regard,""" start="00:06:00.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but please bear this fact in mind.""" start="00:06:02.980" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Managing files with Hyperdrive.el""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's start then with what I have here""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in this other tab, which is a set of files.""" start="00:06:09.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I have prepared in my local file system - a hyperdrive.""" start="00:06:13.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This contains a set of files""" start="00:06:18.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I ultimately want to share""" start="00:06:20.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""on the peer-to-peer network,""" start="00:06:22.653" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""meaning that I want this to eventually be""" start="00:06:24.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""reflected in my own hyperdrive.""" start="00:06:28.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I did to get started is""" start="00:06:31.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I invoked `hyperdrive-menu`.""" start="00:06:34.054" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The very first thing you need to do""" start="00:06:36.493" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to get started with Hyperdrive,""" start="00:06:38.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""either to browse or to create,""" start="00:06:40.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is to start the gateway,""" start="00:06:43.633" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""meaning to be able to connect to""" start="00:06:46.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the peer-to-peer network.""" start="00:06:48.693" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You see here in `hyperdrive-menu` that there is""" start="00:06:50.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""an indicator next to the "Gateway" heading""" start="00:06:53.493" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""telling me that the gateway is on.""" start="00:06:56.293" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I started it with `G` and then `s`.""" start="00:06:59.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Once you start it,""" start="00:07:04.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can type `h` to visit an existing drive,""" start="00:07:06.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""`N` to create a drive,""" start="00:07:10.153" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or `L` to open a link to an existing hyperdrive.""" start="00:07:12.113" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You may get this link via email, for example.""" start="00:07:17.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In this case, let me be over here""" start="00:07:21.154" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and let me just kill this buffer.""" start="00:07:24.933" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I want in this case is to select a hyperdrive.""" start="00:07:27.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You see here I have my own hyperdrive""" start="00:07:32.953" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and also the hyperdrive of USHIN,""" start="00:07:35.453" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the developers of hyperdrive.el.""" start="00:07:37.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I want to do in this case,""" start="00:07:41.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you see there are various options available.""" start="00:07:43.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I want to type `v` to view a file.""" start="00:07:46.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And in this case,""" start="00:07:50.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will just type the forward slash,""" start="00:07:50.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which means to view the root directory""" start="00:07:53.633" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of this hyperdrive. And I am here.""" start="00:07:56.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It is an empty drive apart from""" start="00:08:00.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""my credentials over here.""" start="00:08:04.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""There is nothing more really to see.""" start="00:08:06.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But what I want to do is""" start="00:08:10.113" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to start adding files to this drive.""" start="00:08:12.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me use the menu bar for this.""" start="00:08:15.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will hover over to the menu bar,""" start="00:08:18.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I will find the "Hyperdrive" submenu.""" start="00:08:21.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then I will go find where the drives are.""" start="00:08:24.773" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And you see that there are writable drives,""" start="00:08:27.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""meaning drives that I manage,""" start="00:08:30.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and read-only drives, meaning drives of other users.""" start="00:08:32.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In this case, USHIN is read-only, of course,""" start="00:08:37.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and Protesilaos is writable.""" start="00:08:40.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So what I want to do is upload a file to Protesilaos.""" start="00:08:42.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And it prompts me in the Minibuffer for a file.""" start="00:08:48.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will just add the README.""" start="00:08:52.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It is asking me, "Where do you want to add it?"""" start="00:08:55.293" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And in square brackets, the default is to add it""" start="00:08:58.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the root directory of the hyperdrive.""" start="00:09:00.553" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I will just type `RET` to select the default.""" start="00:09:03.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And there it is. It is already in the drive.""" start="00:09:07.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me add the COPYING file as well,""" start="00:09:11.393" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""using the same method.""" start="00:09:14.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will go find my drive. "Upload File."""" start="00:09:16.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And let's add the COPYING.""" start="00:09:21.393" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And I also want to add it to the root directory.""" start="00:09:23.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So already I have two files.""" start="00:09:29.433" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is looking good.""" start="00:09:30.633" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I am opening the file inside of hyperdrive.""" start="00:09:31.953" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is not the same file""" start="00:09:37.014" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as I have in my local directory.""" start="00:09:39.033" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I can do here, for example, is I can...""" start="00:09:42.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me open another file here, the COPYING.""" start="00:09:47.433" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I can create an Org link.""" start="00:09:49.893" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Notice that these are Org files.""" start="00:09:52.113" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I will use the standard `org-store-link` command.""" start="00:09:54.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can see the key binding I invoked""" start="00:09:58.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and the command it calls""" start="00:10:01.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""on the top right corner of my screen.""" start="00:10:03.533" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So what I did is""" start="00:10:05.893" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I copied a link to this hyperdrive file.""" start="00:10:07.413" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And in this other file over here,""" start="00:10:11.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I want to say "Free/libre."""" start="00:10:15.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I am editing my hyperdrive terms:""" start="00:10:22.153" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""Check the," and I will paste the link here,""" start="00:10:27.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""for how to use my files."""" start="00:10:35.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If we check what is here,""" start="00:10:40.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you will see that this is a link""" start="00:10:44.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""inside of the hyperdrive.""" start="00:10:47.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And it's pointing specifically""" start="00:10:50.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to that heading over there,""" start="00:10:52.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which has this unique identifier,""" start="00:10:54.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as you can see over here.""" start="00:10:58.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So this is wonderful.""" start="00:11:00.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I want to rename it to "Check the COPYING""" start="00:11:03.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for how to use my files."""" start="00:11:09.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will save this.""" start="00:11:11.953" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now what I want to do is,""" start="00:11:13.933" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I want to invoke `hyperdrive-menu`.""" start="00:11:16.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And you will see now the menu, unlike earlier,""" start="00:11:20.493" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""has more commands, more stuff we can do with it.""" start="00:11:23.153" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For example, I can type `w` to copy a URL.""" start="00:11:27.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And by typing `w`, you will notice...""" start="00:11:31.793" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me go to the `*scratch*` buffer to paste this in.""" start="00:11:34.500" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You will notice what the URL is.""" start="00:11:37.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It is my hyperdrive, my unique identifier,""" start="00:11:40.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then forward slash, meaning the root directory,""" start="00:11:44.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then README.org.""" start="00:11:47.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That is the file I was editing.""" start="00:11:49.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's do `hyperdrive-menu` again.""" start="00:11:54.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's remove the `*scratch*` buffer.""" start="00:11:56.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And let's do `hyperdrive-menu`.""" start="00:11:58.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And you will notice that there are options""" start="00:11:59.933" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to download the file, for example.""" start="00:12:02.380" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If you are reading somebody else's file,""" start="00:12:05.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can download it to your own file system.""" start="00:12:07.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me do that. "Download."""" start="00:12:10.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And it is asking me, "Where do you want to save this?"""" start="00:12:12.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For now, I will save it in the `/tmp/`, like this.""" start="00:12:14.753" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's call it test.org.""" start="00:12:20.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Okay, `/tmp/test.org`.""" start="00:12:23.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me go and visit `test.org`.""" start="00:12:25.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And there it is.""" start="00:12:29.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It downloaded it just like that.""" start="00:12:30.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is how you can, for example,""" start="00:12:32.653" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""download the pictures and videos""" start="00:12:35.373" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I will eventually share on my hyperdrive.""" start="00:12:38.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's invoke `hyperdrive-menu` again.""" start="00:12:42.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And let's go up to the parent, you see,""" start="00:12:44.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""with the caret (`^`) sign.""" start="00:12:48.053" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This will take me to the parent directory,""" start="00:12:50.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in this case, the root directory of my hyperdrive.""" start="00:12:53.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Dired like interface""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me do it a bit differently.""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The same idea, a bit differently.""" start="00:12:58.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For those of you who are familiar with""" start="00:13:00.193" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Dired and the `dired-jump` command,""" start="00:13:02.733" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Dired is the standard file manager of Emacs.""" start="00:13:05.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And `dired-jump` is a command that lets you jump""" start="00:13:08.753" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from the current file""" start="00:13:13.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the directory that contains that file.""" start="00:13:14.593" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So you see, I am here.""" start="00:13:18.653" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The `dired-jump` command, by default,""" start="00:13:20.733" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is bound to Ctrl-x, Ctrl-j (`C-x C-j`).""" start="00:13:22.553" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So if I do `C-x C-j`, in this case,""" start="00:13:25.233" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it invokes a command.""" start="00:13:29.433" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can see the name of it, `hyperdrive-up`,""" start="00:13:30.773" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is functionally equivalent to `dired-jump`.""" start="00:13:33.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It does the same thing, meaning that it took me""" start="00:13:37.733" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the parent directory of this file.""" start="00:13:41.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I think this is very helpful.""" start="00:13:45.253" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This listing over here, in general,""" start="00:13:48.253" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""tries to mimic or to reuse""" start="00:13:50.693" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the knowledge you already have of Dired.""" start="00:13:55.273" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For example, if you type `o`,""" start="00:13:58.553" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it will open the file at point in the other window,""" start="00:14:01.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""same as in Dired.""" start="00:14:05.313" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Whereas if you type `RET`,""" start="00:14:07.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it would open it in the current window.""" start="00:14:08.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Again, same as what you will do in Dired.""" start="00:14:11.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's see over here.""" start="00:14:16.253" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You have options to jump with `j`,""" start="00:14:18.014" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is using Minibuffer completion to go to a file.""" start="00:14:21.643" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Right now, I only have two files,""" start="00:14:26.233" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but the idea is the same.""" start="00:14:28.433" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's, again, what you would do in Dired""" start="00:14:32.100" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""if you type `j` with the default key bindings, though,""" start="00:14:34.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""not with Evil mode or something else.""" start="00:14:37.333" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's see again what we have over here.""" start="00:14:40.293" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can create a bookmark, and this will work,""" start="00:14:42.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but no need to show you everything.""" start="00:14:45.934" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The idea is that you create a bookmark""" start="00:14:48.554" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the way you create any Emacs bookmark,""" start="00:14:50.694" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to a file, to a directory.""" start="00:14:53.214" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It doesn't matter.""" start="00:14:54.933" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then you can jump to it,""" start="00:14:55.994" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the way bookmarks in Emacs always work.""" start="00:14:57.734" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""History in hyperdrive""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I want to show you now""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""a little bit is the history.""" start="00:15:02.893" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""History in Hyperdrive""" start="00:15:06.313" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""has to do with the drive itself.""" start="00:15:09.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Meaning that individual files""" start="00:15:11.434" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""do not have their own history,""" start="00:15:13.614" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but the drive as such has a history.""" start="00:15:15.314" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Whenever you add a file, you remove a file,""" start="00:15:18.674" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or you edit a file, you are incrementing""" start="00:15:22.014" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the versioning of the hyperdrive by one.""" start="00:15:25.673" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So each action corresponds to one unit of history.""" start="00:15:29.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If you add a file, remove a file, and edit a file,""" start="00:15:34.574" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this means that you are up three versions.""" start="00:15:37.833" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So whatever your version number is, plus three.""" start="00:15:40.993" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I am on version 24* over here. [* latest, not version 24]""" start="00:15:44.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me go to this file now,""" start="00:15:48.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and let me do `V h`""" start="00:15:55.933" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to see a history of it.""" start="00:15:59.793" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You will notice that between versions 23 and 24,""" start="00:16:02.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this file was constant.""" start="00:16:07.553" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But in version 25, we have a change.""" start="00:16:09.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""When you are in this buffer over here,""" start="00:16:12.633" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can type the equals sign (`=`),""" start="00:16:14.353" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is a key binding that will bring up the diff.""" start="00:16:17.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the set of changes between""" start="00:16:22.373" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the previous version and the current version.""" start="00:16:24.473" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And you see here, between versions 23 and 25,""" start="00:16:27.033" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I have this addition.""" start="00:16:32.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I think this is wonderful because now""" start="00:16:35.093" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can always go and check""" start="00:16:38.373" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""what is the state of this file.""" start="00:16:41.173" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What is this person up to?""" start="00:16:42.413" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What have they been changing?""" start="00:16:43.853" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And with Hyperdrive, you can also visit…""" start="00:16:46.313" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me go to the parent here.""" start="00:16:50.793" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You can always visit a previous history.""" start="00:16:58.514" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So, for example, I will go to the previous history,""" start="00:17:02.413" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and let me see this file again""" start="00:17:06.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in its previous history.""" start="00:17:08.033" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I am looking at the file,""" start="00:17:09.554" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but notice that the file now is not editable""" start="00:17:11.094" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""because this is in the past.""" start="00:17:15.154" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I cannot rewrite history.""" start="00:17:17.354" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I can only go to the present and then modify it""" start="00:17:19.314" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then create a new history, a new version.""" start="00:17:23.414" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But this helps me see the state of the file""" start="00:17:27.214" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""at that version of the hyperdrive.""" start="00:17:31.214" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So this is the basic idea of it, folks.""" start="00:17:35.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Use case of sharing large files""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What I want to do then is""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""continue with my process here.""" start="00:17:42.234" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let me actually do it like this so that you can see.""" start="00:17:46.254" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Continue with the process of""" start="00:17:51.973" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""publishing all those files""" start="00:17:54.374" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I have on my hyperdrive.""" start="00:17:56.494" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For example, this is a picture of a flower""" start="00:17:59.754" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I have taken.""" start="00:18:02.854" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I think it's very nice.""" start="00:18:04.114" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And this is a video of an eagle""" start="00:18:05.734" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that was flying above me.""" start="00:18:08.033" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And I will share this on the Hyperdrive network.""" start="00:18:09.594" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""From the network, by the way,""" start="00:18:13.774" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can also stream video as well.""" start="00:18:15.733" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It is described in the hyperdrive.el manual,""" start="00:18:18.453" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but I cannot show you everything right now.""" start="00:18:20.694" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I think you get the idea.""" start="00:18:24.253" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The gist is, you have a file system""" start="00:18:26.513" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that you can share with the world""" start="00:18:29.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""using peer-to-peer technology.""" start="00:18:31.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And for me, this is a powerful tool.""" start="00:18:34.133" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is a valuable proposition""" start="00:18:38.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""because I can share these large files I have,""" start="00:18:41.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""these pictures or videos,""" start="00:18:45.013" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which I cannot post on my website""" start="00:18:47.433" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""due to bandwidth considerations.""" start="00:18:49.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And this way, I can still share with the world""" start="00:18:52.713" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""something that I consider interesting.""" start="00:18:55.593" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That's all for today, folks.""" start="00:18:59.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Thank you very much for your attention.""" start="00:19:00.213" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Remember that hyperdrive.el is still in development""" start="00:19:01.894" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and things may change.""" start="00:19:05.514" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But the fundamentals are in place""" start="00:19:07.394" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and will remain constant.""" start="00:19:10.313" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That's all for today. Take care. Goodbye.""" start="00:19:13.073" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""[Joseph]: Thank you, Prot.""" start="00:19:19.461" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Drive creation with hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Another fundamental feature of hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is drive creation.""" start="00:19:23.980" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The first step, as always,""" start="00:19:26.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is to make sure that the gateway is running.""" start="00:19:28.339" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll open up `hyperdrive-menu` with `C-c h`.""" start="00:19:30.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""By the way, my key presses,""" start="00:19:35.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as the commands that they run,""" start="00:19:36.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""can be seen at the top right of my screen.""" start="00:19:38.699" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Down here, I see that the gateway is off.""" start="00:19:42.439" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll start it with `G s`.""" start="00:19:44.619" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, it takes a few moments""" start="00:19:49.139" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for the gateway to spin up.""" start="00:19:50.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So to refresh the menu,""" start="00:19:52.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will close it and open it again.""" start="00:19:54.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now we see that the gateway is on.""" start="00:19:58.399" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `N` to create a new drive.""" start="00:20:01.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now it's prompting me for a new hyperdrive seed.""" start="00:20:05.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""A seed is a string of characters""" start="00:20:09.759" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that will be used to generate,""" start="00:20:12.939" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in tandem with my secret master key,""" start="00:20:14.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""a new public key that will globally,""" start="00:20:18.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""uniquely identify this drive.""" start="00:20:21.339" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll type in "emacsconf".""" start="00:20:24.879" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And after a moment,""" start="00:20:31.759" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we see the newly created, empty drive.""" start="00:20:32.659" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll open up `hyperdrive-menu` once more.""" start="00:20:36.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And I'll press `h` to open the sub-menu that shows""" start="00:20:40.099" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""more information about this hyperdrive,""" start="00:20:43.799" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as commands related to this drive.""" start="00:20:45.979" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In blue here, we see the seed that I just entered""" start="00:20:50.879" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as the public key that it generated.""" start="00:20:54.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We also see that the petname""" start="00:21:00.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is also set to emacsconf.""" start="00:21:02.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The petname is different from the seed.""" start="00:21:06.540" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The petname is my personal, local identifier""" start="00:21:09.039" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for this drive.""" start="00:21:13.079" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I can change it whenever I want.""" start="00:21:14.679" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And while it's not a secret,""" start="00:21:16.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it's not displayed to other users.""" start="00:21:19.739" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I will leave it for now.""" start="00:21:23.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""emacsconf" is fine.""" start="00:21:26.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But when I go to share this drive,""" start="00:21:28.139" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll want to display something more memorable""" start="00:21:30.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""than this long public key.""" start="00:21:34.159" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And that's what the nickname is for.""" start="00:21:36.879" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll change that by pressing `n`,""" start="00:21:39.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll type in "Emacs Conference".""" start="00:21:42.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, when other peers load this hyperdrive""" start="00:21:48.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""by its URL, which I can copy by pressing `w`,""" start="00:21:51.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""they will see the nickname""" start="00:21:57.059" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in addition to the public key.""" start="00:21:59.499" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So if hyperdrive.el is like a phone book,""" start="00:22:02.019" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the public keys are akin to phone numbers,""" start="00:22:05.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the nickname is like the name that your contacts""" start="00:22:09.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""give you when they introduce themselves,""" start="00:22:13.939" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and the petname is the name""" start="00:22:16.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that you actually write down in your phone book.""" start="00:22:18.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll show you what nicknames and petnames look like""" start="00:22:22.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for drives that are not writable to me.""" start="00:22:25.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `C-g` to close this submenu,""" start="00:22:29.619" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and now I'm back at the main menu.""" start="00:22:32.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `C-u h` to choose a hyperdrive,""" start="00:22:34.639" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll look at Prot's hyperdrive here.""" start="00:22:39.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And here we see that the nickname""" start="00:22:44.559" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of Prot's hyperdrive is "Protesilaos".""" start="00:22:46.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, it's grayed out,""" start="00:22:49.839" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which means that I can't change it.""" start="00:22:50.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I can't change it because it's not my hyperdrive.""" start="00:22:53.239" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But I can change the petname if I want it""" start="00:22:56.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to show up under a different name.""" start="00:22:58.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll press `p`,""" start="00:23:00.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll type in "Prot", and hit Enter.""" start="00:23:02.439" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'll open his hyperdrive by pressing `f`.""" start="00:23:06.679" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And I'll pick a path, I'll just hit `RET`""" start="00:23:11.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to open the root directory.""" start="00:23:13.899" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now, when Prot's hyperdrive shows up,""" start="00:23:16.759" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""at the top of the screen,""" start="00:23:19.459" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I see that it's identified with the petname "Prot."""" start="00:23:20.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""hyperdrive-mirror""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'll show off `hyperdrive-mirror`.""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""`hyperdrive-mirror` is like `hyperdrive-upload-file`,""" start="00:23:28.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""except that it allows you to upload""" start="00:23:32.159" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""an entire directory full of files recursively.""" start="00:23:33.879" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For this example, I will upload""" start="00:23:37.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the contents of the emacsconf-mirror directory.""" start="00:23:40.039" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""First step is to open the menu. I'll press H,""" start="00:23:44.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then I will choose the emacsconf drive.""" start="00:23:48.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In the bottom here, we see the Mirror group.""" start="00:23:53.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The first option that I can change""" start="00:23:57.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is the source directory.""" start="00:23:59.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The source directory is the directory on my local""" start="00:24:01.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""machine from which files will be uploaded.""" start="00:24:04.619" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""By default, the source directory""" start="00:24:08.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is set to the current directory of the main buffer.""" start="00:24:11.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is good for now, so I'll leave it.""" start="00:24:17.060" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The target directory is the directory""" start="00:24:19.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the hyperdrive where the files will end up.""" start="00:24:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""By default, it's the root directory,""" start="00:24:25.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but for this example,""" start="00:24:28.839" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll put these files in a subdirectory called notes.""" start="00:24:30.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The filter is the rule that allows you""" start="00:24:36.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to programmatically determine which files""" start="00:24:40.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the local directory will be uploaded""" start="00:24:43.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""into the hyperdrive, and which ones won't.""" start="00:24:46.579" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""By default, all files are mirrored, but in this case,""" start="00:24:50.339" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""let's say that I want to upload only the Org files,""" start="00:24:54.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""these first three, and I want to exclude""" start="00:24:58.499" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the markdown file, solar-oven-notes.md.""" start="00:25:01.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll press `m f`, and I will choose""" start="00:25:05.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the regular expression string option.""" start="00:25:10.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If I wanted to, I could choose a named function""" start="00:25:13.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or a lambda, but I won't demo that here.""" start="00:25:16.279" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll type in `org$`, which will match against""" start="00:25:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the files that end with "org."""" start="00:25:26.339" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The filter is here, and I'll leave confirmation on.""" start="00:25:31.659" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The confirmation step just allows me to review""" start="00:25:35.899" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the list of files that are going to be uploaded""" start="00:25:39.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""into the drive before it happens.""" start="00:25:42.139" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll press `m m` to mirror them, and I see here""" start="00:25:45.899" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that these three files are going to be uploaded.""" start="00:25:52.879" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Looks good. I'll press `C-c C-c` to confirm the mirror.""" start="00:25:58.439" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now it says three files have been uploaded,""" start="00:26:05.559" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and here they are in the drive.""" start="00:26:07.739" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Good, so now I will modify the""" start="00:26:11.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""fermented-overnight-oats file in the hyperdrive.""" start="00:26:15.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I've loaded it, and I'll add here:""" start="00:26:19.939" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""or other grains - cook them in advance if you want to,"""" start="00:26:24.340" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll save it.""" start="00:26:31.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now this file, fermented-overnight-oats.org,""" start="00:26:33.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""has been modified on the hyperdrive""" start="00:26:37.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""more recently than on the file system.""" start="00:26:40.679" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The file system file has not been modified.""" start="00:26:44.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll go back to my local directory,""" start="00:26:48.900" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll modify a different file.""" start="00:26:53.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""In this case, I'll add another hoedown""" start="00:26:56.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the fiddle-tunes.org file.""" start="00:27:00.459" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""Tom and Jerry." That's a good hoedown.""" start="00:27:04.619" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now I'll mirror again.""" start="00:27:09.619" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll open the menu, and I'll press `h`,""" start="00:27:14.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then I'll open up the emacsconf demo drive.""" start="00:27:16.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now I've also decided that""" start="00:27:20.579" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I want to include the solar-oven-notes.md file.""" start="00:27:22.959" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll remove the filter""" start="00:27:26.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""so that it's no longer excluded.""" start="00:27:28.499" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll leave the rest of the settings the same,""" start="00:27:32.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll press `m m` again.""" start="00:27:34.079" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now we see that the""" start="00:27:38.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""`*hyperdrive-mirror*` buffer looks different.""" start="00:27:40.019" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So, there are two main groups.""" start="00:27:43.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""These are the files that are going to be uploaded,""" start="00:27:47.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and these are the files that are ignored.""" start="00:27:49.986" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""They're not going to be uploaded.""" start="00:27:52.899" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The first subgroup is the files that are new locally.""" start="00:27:56.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the solar-oven-notes.md file is new on my machine,""" start="00:28:00.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and it doesn't exist in the hyperdrive.""" start="00:28:04.899" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the mirror command is going to take that file""" start="00:28:07.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and add it to the hyperdrive.""" start="00:28:10.039" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This group contains the files that are newer locally.""" start="00:28:13.759" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the fiddle-tunes.org file""" start="00:28:17.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""has been modified on my local machine,""" start="00:28:19.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""but it hasn't been modified on the hyperdrive.""" start="00:28:23.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So `hyperdrive-mirror` is going to take the""" start="00:28:26.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""updated version and put it on the hyperdrive.""" start="00:28:28.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, the first group that's going to be ignored""" start="00:28:33.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""are the files that are older locally.""" start="00:28:35.959" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the fermented oats file has been modified""" start="00:28:39.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""on the hyperdrive more recently""" start="00:28:42.979" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""than on my local file system.""" start="00:28:45.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So `hyperdrive-mirror` isn't going to overwrite""" start="00:28:47.539" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the version of the file in my hyperdrive""" start="00:28:51.059" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""with the older local version.""" start="00:28:53.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And finally, the emacsconf-preparation.org file""" start="00:28:57.279" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hasn't been modified on either the hyperdrive""" start="00:29:00.779" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or my local file system,""" start="00:29:05.499" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and the timestamp is identical.""" start="00:29:07.439" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So `hyperdrive-mirror` is going to""" start="00:29:09.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ignore this file as well.""" start="00:29:11.279" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So the only two files that are going""" start="00:29:13.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to be uploaded now are the solar-oven-notes.md file""" start="00:29:15.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and the fiddle-tunes.org file.""" start="00:29:19.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll confirm that with `C-c C-c`.""" start="00:29:21.639" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now in my hyperdrive""" start="00:29:25.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we see that there are four files.""" start="00:29:26.579" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The solar-oven-notes.md file has been uploaded,""" start="00:29:28.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and if I open the fiddle-tunes.org file,""" start="00:29:31.679" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we see that it now contains the line "Tom and Jerry,"""" start="00:29:35.519" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which means that it was updated based on""" start="00:29:39.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the change to the file on my local file system.""" start="00:29:41.659" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This `hyperdrive-mirror` command is the command""" start="00:29:47.099" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that we use to periodically update""" start="00:29:50.559" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the USHIN hyperdrive with""" start="00:29:54.139" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the contents of the USHIN website.""" start="00:29:56.599" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""There's going to be a link to the USHIN hyperdrive""" start="00:30:00.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as the website at the end of the video.""" start="00:30:03.019" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""hyperdrive history""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'll go into a little more detail""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""about the Hyperdrive history buffer""" start="00:30:09.079" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""by showing off the README file in Prot's hyperdrive.""" start="00:30:11.219" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `C-c h` to open the menu,""" start="00:30:15.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""`C-u h` to be prompted for a drive.""" start="00:30:19.019" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll select Prot's drive,""" start="00:30:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""then I'll press `f` to jump to a file""" start="00:30:24.239" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""inside of Prot's drive,""" start="00:30:26.739" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and then `RET` to go to the root directory.""" start="00:30:28.739" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""From here, I'll press `j` to jump to""" start="00:30:32.399" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""an item in his directory.""" start="00:30:35.339" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `RET` on the README to load it.""" start="00:30:37.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then finally, I'll open up""" start="00:30:42.379" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""`C-c h` to look at the menu.""" start="00:30:44.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here, I see that I'm looking at""" start="00:30:49.579" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the latest version of Prot's README.org file.""" start="00:30:50.979" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I also see that the previous version""" start="00:30:56.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of README.org is unknown.""" start="00:30:58.739" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's unknown because hyperdrives""" start="00:31:02.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""are sparsely replicated.""" start="00:31:05.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That means that when my node loaded this""" start="00:31:07.819" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""README.org file, it didn't bother""" start="00:31:09.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to load anything else.""" start="00:31:12.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It didn't load the previous history""" start="00:31:13.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""or any other file in his drive.""" start="00:31:16.059" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But now that I want to check out whether""" start="00:31:18.659" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""there is a previous version, I'll press `V p`.""" start="00:31:20.759" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And when it loads, I see in the mode line down here""" start="00:31:26.199" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I'm now looking at version 25 of this drive.""" start="00:31:28.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That means that I'm looking at the README.org file""" start="00:31:33.319" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""at version 25 of this drive.""" start="00:31:36.499" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll open the menu again, and I see""" start="00:31:39.459" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that the same version number is displayed here.""" start="00:31:42.019" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The previous version, before version 25,""" start="00:31:47.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is also unknown because we haven't bothered""" start="00:31:50.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to load anything before version 25.""" start="00:31:53.559" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I also see that the next version, after version 25,""" start="00:31:56.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is the latest version.""" start="00:32:00.479" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll open that up by pressing `V n`.""" start="00:32:02.419" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now we are back where we started,""" start="00:32:06.719" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""at the latest version.""" start="00:32:10.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But now we see that the previous version,""" start="00:32:12.919" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the version before the latest version, is version 25.""" start="00:32:15.079" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Because now that our node has loaded the previous version,""" start="00:32:18.999" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it can display that information to us.""" start="00:32:24.300" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""From here, I'll open up the history buffer.""" start="00:32:28.620" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press `V h`.""" start="00:32:31.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And I can see that there are two known existent""" start="00:32:35.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ranges in Prot's README.org history.""" start="00:32:40.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This means that the latest version of README.org""" start="00:32:46.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""was modified at version 39.""" start="00:32:50.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And that Prot made four changes""" start="00:32:54.420" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to other files in his hyperdrive""" start="00:32:57.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""besides the README.org file since then.""" start="00:33:00.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Before that, the time that Prot modified""" start="00:33:04.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the README.org file was at version 25.""" start="00:33:08.660" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then he made 13 other changes to other files""" start="00:33:11.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""inside of this drive.""" start="00:33:15.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Before that, we don't know.""" start="00:33:18.580" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We haven't loaded the history.""" start="00:33:20.259" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""But since we're curious,""" start="00:33:21.859" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll hit `RET` on the unknown line.""" start="00:33:23.179" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And now we see that in Prot's hyperdrive,""" start="00:33:27.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the README.org file didn't exist""" start="00:33:32.140" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for the first 22 revisions of his drive.""" start="00:33:34.940" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then Prot created it at version 23.""" start="00:33:39.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then again, at 25, made a change.""" start="00:33:43.780" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then made another change at 39.""" start="00:33:46.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For good measure, I'll show you the diffs.""" start="00:33:50.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""The first diff just contains the entire file""" start="00:33:54.420" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""because the file didn't exist before version 23.""" start="00:33:58.180" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then, at version 25, Prot added a link""" start="00:34:05.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the COPYING.org file.""" start="00:34:08.620" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then, at 39,""" start="00:34:13.119" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Prot changed the link to his own hyperdrive""" start="00:34:14.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to be a relative link.""" start="00:34:17.340" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Streaming video from hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, I'll stream a video from the USHIN hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that shows off a prototype interface we created""" start="00:34:24.300" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for exploring networks of sources of information.""" start="00:34:27.900" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll open up `hyperdrive-menu`.""" start="00:34:31.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Press `C-u h` to be prompted for a drive.""" start="00:34:33.940" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll select the USHIN drive.""" start="00:34:37.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Press `f` to jump to a file in it.""" start="00:34:39.740" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And then I'll jump to the media directory.""" start="00:34:41.940" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Once it loads, I'll press `RET` on the video""" start="00:34:46.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I want to stream.""" start="00:34:50.180" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""[Voice from the video]: This is a demonstration""" start="00:34:54.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of the subjective trust interface""" start="00:34:56.686" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that the USHIN team built for the u4u.io web app.""" start="00:34:57.839" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""[Joseph]: There it is.""" start="00:35:02.500" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Streaming a video from Hyperdrive.""" start="00:35:04.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""hyperdrive.el under the hood""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here's how hyperdrive.el works under the hood.""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It uses plz [Please],""" start="00:35:13.027" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the HTTP library that Adam Porter wrote,""" start="00:35:14.727" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to send requests via curl to hyper-gateway.""" start="00:35:18.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyper-gateway is a program that Mauve Signweaver wrote,""" start="00:35:22.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which runs a hyperdrive node under the hood.""" start="00:35:26.580" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It also runs a local HTTP server,""" start="00:35:30.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which accepts requests to control the node.""" start="00:35:34.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For example, if hyperdrive.el wants to show a file""" start="00:35:38.460" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from someone's hyperdrive,""" start="00:35:43.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it sends the appropriate link via curl""" start="00:35:45.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as a GET request to hyper-gateway.""" start="00:35:49.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyper-gateway then fetches the data from the network""" start="00:35:52.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and returns it via curl,""" start="00:35:57.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""via plz, back to hyperdrive.el.""" start="00:35:59.340" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If hyper-gateway already has a locally cached copy,""" start="00:36:03.940" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it doesn't bother checking the network.""" start="00:36:07.420" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It just sends it straight away.""" start="00:36:09.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Likewise, if hyperdrive.el wants to add a file""" start="00:36:12.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to a hyperdrive, it sends a PUT request.""" start="00:36:15.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyper-gateway is not installed as part of hyperdrive.el.""" start="00:36:20.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It needs to be installed""" start="00:36:24.980" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as a separate, executable program.""" start="00:36:26.660" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We have plans to switch from using hyper-gateway""" start="00:36:35.740" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to another program that Mauve Signweaver""" start="00:36:39.460" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is working on, called hyper-sdk-rpc.""" start="00:36:42.459" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyper-sdk-rpc will give us more fine-grained control""" start="00:36:47.839" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""over the underlying Hyperdrive node,""" start="00:36:52.020" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which will open up some new features.""" start="00:36:54.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""For example, we'll be able to rename files atomically,""" start="00:36:56.820" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""diff directories between versions,""" start="00:37:00.900" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and list the peers that we're currently connected to.""" start="00:37:03.420" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here are some of the Emacs libraries""" start="00:37:11.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that hyperdrive.el depends on.""" start="00:37:13.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrive.el uses plz to send HTTP requests""" start="00:37:17.540" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to hyper-gateway. Check it out.""" start="00:37:22.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's on GNU ELPA.""" start="00:37:25.699" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ewoc.el is a built-in library that's documented""" start="00:37:28.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the Emacs Lisp manual under the rather cryptic""" start="00:37:33.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""heading "Abstract Display Functions."""" start="00:37:37.340" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Really, what it does is it allows you""" start="00:37:41.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to map a data model to some display.""" start="00:37:44.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""What we do with it in hyperdrive.el is,""" start="00:37:50.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the directory view, we map directory entry items,""" start="00:37:53.860" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""files and directories, to display items.""" start="00:38:02.049" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""And ewoc.el makes it easy to update the display""" start="00:38:04.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""whenever the underlying data changes.""" start="00:38:08.701" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrive.el uses persist.el to store""" start="00:38:14.761" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrive metadata about known hyperdrives""" start="00:38:21.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""as well as version history between sessions,""" start="00:38:25.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""so that the data is cached""" start="00:38:29.481" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""when you log out and log back in.""" start="00:38:32.121" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If you're going to be developing a program in Emacs""" start="00:38:34.961" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for Emacs 29 or later,""" start="00:38:38.721" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I recommend looking at multisession.el,""" start="00:38:41.961" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""because it's built-in, and it has some features""" start="00:38:44.941" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that persist.el doesn't have.""" start="00:38:50.161" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template new="1" text="""Next steps""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Thank you for listening to this talk.""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I hope you get a chance to try out hyperdrive.el.""" start="00:39:00.001" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here is a link to the hyperdrive.el manual""" start="00:39:03.681" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""in the USHIN hyperdrive.""" start="00:39:08.621" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""When you go to paste this link in,""" start="00:39:11.561" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you'll need to combine it back into one line.""" start="00:39:14.981" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This link is available in the hyperdrive.el manual,""" start="00:39:18.921" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is available from within a browser,""" start="00:39:22.501" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""at this link on the USHIN website.""" start="00:39:26.661" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""We also have a public conference room that you can join.""" start="00:39:29.821" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's an XMPP multi-user chat""" start="00:39:32.961" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that the Sopranica team graciously makes available""" start="00:39:35.521" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for us to use.""" start="00:39:39.781" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""There's also a Matrix bridge,""" start="00:39:41.621" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""if that's more your cup of tea.""" start="00:39:43.901" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Thank you to the EmacsConf organizers.""" start="00:39:48.660" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's been a pleasure to participate,""" start="00:39:52.821" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I look forward to hearing the rest of the talks.""" start="00:39:55.161" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Have a good day.""" start="00:39:57.614" video="mainVideo-hyperdrive" id="subtitle"]]
Captioner: bhavin192
# Q&A transcript (unedited)
[[!template text="""[Speaker 0]: I guess we are now live.""" start="00:00:12.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So Joseph, thanks for being here.""" start="00:00:15.360" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Thanks for talking to the hyperdrive.""" start="00:00:16.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""We already had some, or we already have a lot""" start="00:00:22.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""of questions here. And I guess I would start""" start="00:00:24.360" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""with, let's call it the difficult,""" start="00:00:26.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the most difficult 1. So when you were""" start="00:00:29.119" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""developing hyperdrive for your colleague,""" start="00:00:30.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""what do you, or what have you learned the""" start="00:00:34.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""most?""" start="00:00:34.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: I have learned how much faster and more""" start="00:00:43.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""enjoyable the development of this project can""" start="00:00:46.360" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""be with talented people working by my side,""" start="00:00:51.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""like Jonas and Adam and Prat and Mo,""" start="00:00:55.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it's been really a pleasure to work with""" start="00:00:58.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""these folks.""" start="00:00:58.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: So you have started at first on your own and""" start="00:01:04.959" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then probably pushed it somewhere in open""" start="00:01:07.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""source or how did it develop,""" start="00:01:10.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""your development experience?""" start="00:01:11.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: A few years ago, we started looking into""" start="00:01:15.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""using peer-to-peer technology for sharing all""" start="00:01:21.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""kinds of information. And we came across Move""" start="00:01:25.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""SignWeaver, who was recommended to us by a""" start="00:01:29.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""mutual friend. And we started working with""" start="00:01:32.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Move, and then about a year ago,""" start="00:01:33.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""we started looking into using Emacs,""" start="00:01:37.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the peer-to-peer software,""" start="00:01:40.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""so that we could make use of all of the""" start="00:01:43.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""powerful things that Emacs already does with""" start="00:01:46.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""org mode and other packages.""" start="00:01:47.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And then we started working with Adam and""" start="00:01:51.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Pratt and Jonas.""" start="00:01:52.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: Yes.""" start="00:01:54.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: So we are skipping to the next question.""" start="00:01:59.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So to read it out, I use multiple computers""" start="00:02:03.700" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and my partner also would like access to my""" start="00:02:06.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""notes. So, 2 questions at first.""" start="00:02:08.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""First 1, how well would this work with using""" start="00:02:12.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""this to edit my Zettelkasten hyperdrive using""" start="00:02:15.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""multiple computers?""" start="00:02:15.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Hyperdrive is single writer currently.""" start="00:02:21.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So what that means is that if you have a""" start="00:02:24.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive that you've created,""" start="00:02:25.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you're the only 1 who can make changes to it.""" start="00:02:28.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And that's limited right now to editing 1""" start="00:02:31.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive from 1 machine.""" start="00:02:33.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""In theory, you could use the same private key""" start="00:02:38.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and write to it from multiple machines,""" start="00:02:40.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""but you would have to make sure that you sync""" start="00:02:43.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it on both machines and didn't make""" start="00:02:46.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""concurrent writes because then you would fork""" start="00:02:48.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the history of your hyperdrive,""" start="00:02:49.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and that would be bad.""" start="00:02:51.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But we've spent a lot of time making links to""" start="00:02:57.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrives work well,""" start="00:02:59.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""relative links within hyperdrives to other""" start="00:03:02.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""files inside of your drive.""" start="00:03:03.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So you should be able to,""" start="00:03:05.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""with some exceptions, just take your personal""" start="00:03:10.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""information management set of org files or""" start="00:03:13.360" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""whatever it is that you have,""" start="00:03:14.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and upload them into a hyperdrive if all of""" start="00:03:18.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that is publicly available or would be good""" start="00:03:22.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to share publicly. And you can make that""" start="00:03:27.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""available for other people to link to.""" start="00:03:28.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So you can have multiple different""" start="00:03:30.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrives that link to 1 another.""" start="00:03:32.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: So it's like a huge network of hyperdrives""" start="00:03:35.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""connected to each other in some way.""" start="00:03:38.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yeah.""" start="00:03:39.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: So that's kind of neat and kind of cool.""" start="00:03:41.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""There was a follow-up question or the second""" start="00:03:44.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""part of the question. Okay,""" start="00:03:46.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then using the same hyperdrive is probably""" start="00:03:48.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""not possible, but interlinking would be the""" start="00:03:51.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""best way to do it. There was a question""" start="00:03:57.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""concerning how they should install it.""" start="00:03:59.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So What would be a good way of getting""" start="00:04:01.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrives if you do not want to install npm""" start="00:04:03.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and have a binary? Could you compile it with""" start="00:04:06.460" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""denner or rusk or zig or go?""" start="00:04:08.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""CLI alternative tool, I would prefer to""" start="00:04:10.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""download a single binary.""" start="00:04:11.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: There's something that Jonas was playing""" start="00:04:17.420" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""around with using Geeks to install Hyper""" start="00:04:20.459" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Gateway. So the way that HyperDrive.el,""" start="00:04:22.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the Emacs package, works right now is similar""" start="00:04:26.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to the way that the transmission Emacs client""" start="00:04:30.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for BitTorrent works, where you have a client""" start="00:04:34.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in Emacs that connects to a daemon that is a""" start="00:04:37.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""separate process that's running on your""" start="00:04:39.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""machine, the transmission daemon.""" start="00:04:41.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But in this case, we have HyperGateway,""" start="00:04:43.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""which is running as a daemon on your machine.""" start="00:04:46.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And then hyperdrive.el""" start="00:04:48.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""connects to that daemon and sends requests,""" start="00:04:51.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and all of the hyperdrive stuff under the""" start="00:04:53.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hood happens with her gateway.""" start="00:04:55.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But so that package can,""" start="00:04:57.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or hypergateway, the program can be""" start="00:05:00.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""installed, The easiest way is to just""" start="00:05:02.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""download it from the GitHub releases.""" start="00:05:04.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""You could also use NPM to install it.""" start="00:05:07.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And then the third option that we've been""" start="00:05:09.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""playing around with is Jonas was writing a""" start="00:05:12.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""little script to install it using Geeks,""" start="00:05:14.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""since Geeks now comes with Node 18.""" start="00:05:18.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And so you should be able to install it using""" start="00:05:20.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Geeks.""" start="00:05:20.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: Right, thank you. We have 2 people here""" start="00:05:25.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""joined with microphone.""" start="00:05:26.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Do we have now any question to Joseph or just""" start="00:05:30.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""here for chilling out.""" start="00:05:32.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I guess it's a no. Plasma,""" start="00:05:41.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""yeah.""" start="00:05:42.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: What about using, having some of the""" start="00:05:46.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""information being private in the hyperdrives.""" start="00:05:47.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: That's not what we have been focusing on at""" start="00:05:54.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""this point. At this point,""" start="00:05:55.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""what we've been working on is mainly using""" start="00:05:57.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrives for a public forum type tool.""" start="00:06:02.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But you could encrypt those files if you""" start="00:06:06.420" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""wanted to. You can also just,""" start="00:06:09.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""a poor man's security would just be to share""" start="00:06:13.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""your HyperDrive link only with those people""" start="00:06:16.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that you want to have access to your drive.""" start="00:06:19.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But the way that it works right now is anyone""" start="00:06:21.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""who has the link to a hyperdrive can access""" start="00:06:23.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""its content. So long as there are peers""" start="00:06:26.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""available on the network who can serve it to""" start="00:06:28.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you.""" start="00:06:28.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: Any follow up question from your side,""" start="00:06:37.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Plasma?""" start="00:06:37.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: I had 1, I'll just have to re-remember it.""" start="00:06:46.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: If you remember it, just feel free to""" start="00:06:55.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interrupt me.""" start="00:06:56.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: What about working? I've looked at this""" start="00:06:58.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""before. What about, if I remember correctly,""" start="00:07:03.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it doesn't do as well with large files,""" start="00:07:04.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""so if you're going to store 200 gigs of video""" start="00:07:09.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""files, stuff like IPFS works a lot better,""" start="00:07:12.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or BitTorrent. This is,""" start="00:07:15.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""are you, were you using the,""" start="00:07:17.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""any way of using multiple protocols for stuff""" start="00:07:21.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""like that? Or what were you doing with,""" start="00:07:25.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or were you just doing the small files with""" start="00:07:27.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the same protocol? Or""" start="00:07:28.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: I would love to see an IPFS client in Emacs""" start="00:07:34.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""as well that could interface with Kubo or""" start="00:07:37.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""some other IPFS daemon and I think that those""" start="00:07:40.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""could work really well together.""" start="00:07:41.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""We mostly have been playing around with""" start="00:07:45.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""sharing relatively small files,""" start="00:07:47.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""up to hundreds of megabytes or maybe a""" start="00:07:52.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""gigabyte. We haven't played around yet with""" start="00:07:55.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive.el, the Emacs client,""" start="00:07:57.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""testing that with HyperGateway.""" start="00:07:59.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But there may be other experiments that have""" start="00:08:04.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""been done that show that that works well.""" start="00:08:05.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""The main thing is that IPFS uses content""" start="00:08:10.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""addressability to reduce duplication of the""" start="00:08:14.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""content. Whereas in HyperDrive,""" start="00:08:16.620" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""if you upload the same file with the same""" start="00:08:20.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""contents twice, now you have double the""" start="00:08:23.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""content being stored in your HyperDrive.""" start="00:08:25.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's not deduplicated.""" start="00:08:26.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""You can always clear out part of the history""" start="00:08:30.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""of your hyperdrive But IPFS has really good""" start="00:08:36.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""built-in deduplication whereas hyperdrive""" start="00:08:39.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""does not""" start="00:08:39.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 4]: I have a question.""" start="00:08:44.159" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: What about like commenting on other like if""" start="00:08:47.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you have a couple of different Hypercore""" start="00:08:50.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""blogs, what about like commenting between""" start="00:08:53.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""them? Like you have some people who have a""" start="00:08:56.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""commenting form on Reddit for their blog""" start="00:08:59.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""posts.""" start="00:08:59.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: So Move SignWeaver has been doing a lot of""" start="00:09:04.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""work recently with the distributed press API""" start="00:09:07.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to integrate ActivityPub with these""" start="00:09:12.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""peer-to-peer technologies.""" start="00:09:14.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Move can give you more information about""" start="00:09:17.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that. But there is another feature that we'd""" start="00:09:22.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""like to add to hyperdrive.el,""" start="00:09:23.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""which is peer discovery using the swarming""" start="00:09:29.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""feature that HyperCore,""" start="00:09:30.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""HyperSWARM offers, where you'd be able to say""" start="00:09:34.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that my node, my peer-to-peer node is""" start="00:09:38.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interested in Emacs and free software as""" start="00:09:41.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""topics. And those would be 2 different""" start="00:09:43.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""topics. I would advertise on the network that""" start="00:09:45.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I'm interested in those topics.""" start="00:09:46.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And I would be able to discover other peers""" start="00:09:49.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""on the network who have also advertised that""" start="00:09:52.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""they're interested in those same topics.""" start="00:09:53.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And then they would tell me,""" start="00:09:56.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hey, here's the public key of my hyperdrive.""" start="00:09:59.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Come check it out. I have posted information""" start="00:10:01.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""about those topics. And so in that way,""" start="00:10:04.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you'd be able to, in a distributed fashion,""" start="00:10:06.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""discover other peers on the network who are""" start="00:10:09.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interested in topics that you're interested""" start="00:10:11.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in.""" start="00:10:11.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Something that would be useful in addition to""" start="00:10:16.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that idea is like if you had your emacs""" start="00:10:19.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Zettelkasten Publish like let's say you have""" start="00:10:25.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""some private data You make sure that that's""" start="00:10:27.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""scrubbed out before it goes to your hyper""" start="00:10:29.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""core and then you have another part of it""" start="00:10:31.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that gets turned into a website for it's also""" start="00:10:35.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""given to other hyper core clients but you'd""" start="00:10:38.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""rather get the emacs users the org documents""" start="00:10:40.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then you also publish some of them on a""" start="00:10:44.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""website so everybody as much people can get""" start="00:10:48.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it as possible. And then a way of figuring""" start="00:10:53.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""out who you'd want to do,""" start="00:10:55.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or if you're an Emacs user,""" start="00:10:57.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""maybe figure out that they're all related to""" start="00:10:59.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""each other, but you want to get the art mode""" start="00:11:01.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""documents because you're using EMAX.""" start="00:11:03.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Yeah.""" start="00:11:05.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: Maybe a side note, we have 4 minutes here on""" start="00:11:10.360" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""before we switch into the next track,""" start="00:11:12.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""just to let you know.""" start="00:11:13.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Thank you. So the hyper drive mirror feature""" start="00:11:17.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that we added, would allow you to selectively""" start="00:11:21.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""choose which files you want to share in a""" start="00:11:24.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive. So, with Prot's denote file""" start="00:11:28.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""naming scheme or Carl Voigt's file tags""" start="00:11:30.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""naming scheme, you could just specify a""" start="00:11:33.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""regular expression. And you could say,""" start="00:11:35.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I want to share out of my directory of org""" start="00:11:40.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""files, I want to share only those files that""" start="00:11:42.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""have been tagged as public,""" start="00:11:44.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or only those files that have been tagged as""" start="00:11:47.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""emacs and then only those ones would get""" start="00:11:49.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""uploaded into your hyperdrive""" start="00:11:50.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: or exclude all in any of the ones that say""" start="00:11:54.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""private""" start="00:11:54.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: yep mike had a question""" start="00:12:01.620" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 4]: yeah I have a question for the hyperdrive.""" start="00:12:05.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So I just maybe I missed it and you haven't""" start="00:12:08.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""put a link.""" start="00:12:09.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Oh, Mikhail, we can't hear you.""" start="00:12:16.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Heard you for a second.""" start="00:12:22.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yes?""" start="00:12:28.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 4]: Can someone hear me? Okay,""" start="00:12:29.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I have no idea what happened to my""" start="00:12:31.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""microphone, but now it's back.""" start="00:12:32.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Now we can. You can see the microphone on the""" start="00:12:34.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""top of the screen. So""" start="00:12:35.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 4]: yes, thank you. Okay. I have a question to""" start="00:12:38.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive. Is the hyperdrive a find on the""" start="00:12:41.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hole punch point, point T O hole Or is it""" start="00:12:46.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""just another hyperdrive?""" start="00:12:47.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: That's exactly the project that we're using.""" start="00:12:51.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So the HolePunch team has released hyperdrive""" start="00:12:54.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and other hyper core libraries as free""" start="00:12:59.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""software libraries that you can use.""" start="00:13:01.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And so MoV SignWeaver,""" start="00:13:03.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the project that MoV is working on,""" start="00:13:07.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""HyperGateway, depends on those libraries and""" start="00:13:11.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it makes it easy for you to build other""" start="00:13:15.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""clients like hyperdrive.el""" start="00:13:17.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""which connect to the hyperdrive network.""" start="00:13:20.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I hope that answers your question.""" start="00:13:22.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 4]: Yes it does, thank you.""" start="00:13:25.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And what did make you choose hyperdrive for""" start="00:13:28.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""this Emacs project?""" start="00:13:29.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Mainly the fact that the drives are mutable,""" start="00:13:34.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""which makes it distinct from IPFS or""" start="00:13:37.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""BitTorrent, where when you share some piece""" start="00:13:40.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""of content, you're stuck with that static""" start="00:13:44.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""piece of content, which works well for some""" start="00:13:46.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""cases, but if you say you have a Zettelkasten""" start="00:13:49.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or you have a set of org files that you want""" start="00:13:52.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to share with people, you want to be able to""" start="00:13:56.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""update those files and have other people pull""" start="00:13:58.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""those updates from you.""" start="00:13:59.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And so HyperDrive allows you to have these""" start="00:14:02.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""mutable sets of files that you can share and""" start="00:14:05.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""use the same link for other peers to pull the""" start="00:14:08.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""latest changes from you.""" start="00:14:09.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Also, it's versioned, as we showed in the""" start="00:14:11.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""video, which is really helpful for having""" start="00:14:15.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""community deliberations and community""" start="00:14:17.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""discussions where you want to be able to""" start="00:14:19.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""reference some something that somebody said""" start="00:14:22.420" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in the past and not have it get deleted or""" start="00:14:26.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""changed or something.""" start="00:14:26.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 0]: We are now switching to talk So just for""" start="00:14:30.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""letting you know if you want to say something""" start="00:14:32.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""now. Too late. The BB room is still open,""" start="00:14:37.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""so you can still discuss.""" start="00:14:38.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""There's also a lot going on on the pad.""" start="00:14:41.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But you can also discuss here inside and""" start="00:14:47.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""answer the pet questions maybe later.""" start="00:14:49.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yeah, there are good questions.""" start="00:14:52.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I'll go ahead, please.""" start="00:14:58.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: continuing here on the pad?""" start="00:15:01.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Are we I can hear you.""" start="00:15:04.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 5]: Yeah, so the question I had on the pad was,""" start="00:15:07.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""would it make sense in any sense to put a""" start="00:15:10.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""FUSE interface or put the POSIX semantics in""" start="00:15:13.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""front of this at some point?""" start="00:15:14.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yeah, that would be cool.""" start="00:15:17.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's kind of a similar question to any plans""" start="00:15:20.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for a Tramp interface.""" start="00:15:21.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""There was a project that the HyperCore""" start="00:15:25.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""HolePunch team was working on a year or more""" start="00:15:31.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""ago that provided a FUSE interface.""" start="00:15:34.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And I think it didn't pan out.""" start="00:15:39.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But it's a good idea. Same with the Tramp""" start="00:15:43.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interface. It seems like a good idea that""" start="00:15:46.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""would make it possible to more easily hook""" start="00:15:51.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""into the built-in Emacs functionality for,""" start="00:15:55.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for example, like incremental file name""" start="00:16:01.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""completion, which we don't currently support""" start="00:16:03.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in Hyperdrive.el. So I'd love to have""" start="00:16:09.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""feedback and design ideas for those projects.""" start="00:16:12.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 5]: Yeah, there's just Everything in Emacs just""" start="00:16:15.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""sort of assumes the file system is there and""" start="00:16:17.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""usable in that way. That's all.""" start="00:16:20.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yeah, it's a good idea.""" start="00:16:23.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: An idea for the privacy type thing is""" start="00:16:28.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Syncthing links. Because I think you can set""" start="00:16:33.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""up Syncthing in such a way that you have the""" start="00:16:36.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""private networks that other people can't""" start="00:16:38.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""actually get access to.""" start="00:16:40.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: I did not know that that was possible with""" start="00:16:45.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Syncthing. I'll have to look into that.""" start="00:16:47.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: At least I think it is anyway,""" start="00:16:48.840" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""because yeah, there's ways you can explicitly""" start="00:16:53.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""authorize devices. Yeah,""" start="00:16:56.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""right. I think you could actually set it up""" start="00:17:00.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in such a way that you can have private stuff""" start="00:17:03.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and links, and then that might be a way that""" start="00:17:06.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you can get a completely distributed""" start="00:17:10.119" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Zettelcast and with private notes.""" start="00:17:12.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Yeah. Good idea. There's a question in the""" start="00:17:22.339" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""pad about DATRS, a Rust version of""" start="00:17:26.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""HyperDrive. I had not heard of that,""" start="00:17:28.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""so I'll have to look into that.""" start="00:17:30.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""If you had your druthers,""" start="00:17:33.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""what would make your work on hyperdrive.dl""" start="00:17:34.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""easier? It's been a lot of fun.""" start="00:17:40.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I would love to have more user feedback.""" start="00:17:42.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""That would be my wish.""" start="00:17:45.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I tried putting a git repo in HyperDrive.""" start="00:17:50.500" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Does it work well? I don't think that would""" start="00:17:53.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""work well because, as I mentioned a moment a""" start="00:17:56.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""few moments ago, the data that you put into a""" start="00:18:00.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive is duplicated.""" start="00:18:00.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So if you had the whole work tree in""" start="00:18:06.300" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive every time you made a change and""" start="00:18:08.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""saved it, it would be duplicated.""" start="00:18:12.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""If you had just a bare repository,""" start="00:18:15.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I don't know, try it.""" start="00:18:18.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: They're trying to solve the same problem,""" start="00:18:21.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""but 1 of the optimizations they have for""" start="00:18:23.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""being able to view a whole bunch of people's""" start="00:18:25.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""data is they made shallow clones a lot""" start="00:18:28.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Would you phrase that again,""" start="00:18:34.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""please?""" start="00:18:35.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: easier. Right? So like Git and Hypercore,""" start="00:18:39.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""1 of the things they do is they allow you to""" start="00:18:42.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""have a whole history of every single change""" start="00:18:46.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for a dataset Zettelkasten project.""" start="00:18:51.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But 1 of the optimizations Hypercore did to""" start="00:18:56.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""make it more network web friendly is they""" start="00:19:02.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""made the shallow clones work a lot better and""" start="00:19:04.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""a lot... Yeah, they made that work a lot""" start="00:19:07.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""better so you don't have to download every""" start="00:19:08.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""single thing for every single project.""" start="00:19:11.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And because they both are implementing the""" start="00:19:14.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""delta upgrades, I don't see how they could""" start="00:19:17.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""work really well together.""" start="00:19:19.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""At least from what it looked like to me.""" start="00:19:21.780" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It can't hurt to experiment.""" start="00:19:25.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: But yeah, I would agree with you.""" start="00:19:28.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Is data transferred between nodes in the""" start="00:19:35.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""clear or encrypted? That's a good question.""" start="00:19:38.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I don't know how it's encrypted.""" start="00:19:41.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I don't, I wouldn't recommend sharing""" start="00:19:47.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""sensitive data with hyperdrive right now?""" start="00:19:53.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I would recommend if you want to play with""" start="00:19:55.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it, have it be something where you're""" start="00:19:57.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""expecting the data to be shared.""" start="00:20:00.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Is there a searchable catalog?""" start="00:20:03.460" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: It's also the data in transport versus data""" start="00:20:06.700" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""at rest. I'm pretty sure the data at rest""" start="00:20:08.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""would not be encrypted.""" start="00:20:09.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Right. You can separate that into those 2""" start="00:20:14.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""questions.""" start="00:20:14.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Right. Right. Is there a searchable catalog""" start="00:20:19.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""of hyper drives? So that's a thing,""" start="00:20:23.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""an idea that we've been a distributed trust""" start="00:20:32.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""network for discovering peers that are""" start="00:20:38.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""trusted for a particular topic.""" start="00:20:41.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And we actually made a demo video of a""" start="00:20:47.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""previous prototype that's available on the""" start="00:20:51.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Ashen hyperdrive that you can watch that""" start="00:20:54.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""shows the basic idea. But the idea is just""" start="00:20:58.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that you would have a list of peers that you""" start="00:21:02.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""think are worth listening to or worth reading""" start="00:21:07.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for a particular topic.""" start="00:21:09.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And those peers would have peers that they""" start="00:21:11.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""think are worth listening to for that same""" start="00:21:14.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""topic. And so you would say,""" start="00:21:16.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""if I'm interested in Emacs,""" start="00:21:17.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I want to see all the peers that I trust for""" start="00:21:21.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the topic Emacs. And if,""" start="00:21:23.700" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""say, Adam Porter shows up in my list and Adam""" start="00:21:27.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Porter trusts Jonas and Jonas trusts Pratt,""" start="00:21:30.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I would be able to read hyperdrive""" start="00:21:33.420" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""information from all of those people by""" start="00:21:36.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""looking at the indirect relationships that I""" start="00:21:41.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""have by following the chain of relationships,""" start="00:21:43.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""kind of like a web of trust.""" start="00:21:44.760" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And so it would also allow you to have a""" start="00:21:49.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""network of peers that you trust to block""" start="00:21:53.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""other people on your behalf.""" start="00:21:54.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So it would be useful for subjective""" start="00:21:57.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""moderation where you can remove spam and bad""" start="00:22:02.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""actors from the people that you follow""" start="00:22:04.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""without having to delegate that powerful""" start="00:22:08.940" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""responsibility to some third party in a""" start="00:22:13.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""permanent way where that third party might""" start="00:22:15.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""abuse that power. So it allows you to share""" start="00:22:23.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""your list of trusted peers and your list of""" start="00:22:26.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""blocked peers with other people in a""" start="00:22:29.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""peer-to-peer way.""" start="00:22:29.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Have you ever looked at GNUnet?""" start="00:22:38.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It kind of does some...""" start="00:22:40.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's trying to do something weird with the""" start="00:22:45.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""internet where it redesigns it from the""" start="00:22:47.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""ground up to be peer-to-peer,""" start="00:22:51.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""local first, or something like that.""" start="00:22:53.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: I would like to know more about GNUnet.""" start="00:22:58.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Yes. I have heard of it,""" start="00:23:01.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""but I haven't really researched it.""" start="00:23:03.620" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""If you edit a file on the hyperdrive,""" start="00:23:09.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then edit the same file on the local mirror,""" start="00:23:12.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""how is the conflict handled when you sync the""" start="00:23:15.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""mirror again? So I think if I understand the""" start="00:23:21.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""question, the answer is that you can't edit""" start="00:23:29.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the file in 2 different places,""" start="00:23:32.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I think is the answer to the question.""" start="00:23:36.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""If you were to manually copy the private key""" start="00:23:41.220" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""from 1 machine onto another machine,""" start="00:23:44.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then you could cause a conflict,""" start="00:23:51.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""like a merge conflict,""" start="00:23:54.400" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""but you would have to go out of your way to""" start="00:23:58.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""do that. And It's not handled.""" start="00:24:00.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I think the Hypercore Hole Punch team has""" start="00:24:03.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""another project that they're working on that""" start="00:24:05.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""would, it's called AutoBase,""" start="00:24:07.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that would merge those conflicts.""" start="00:24:09.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But we're not using that right now.""" start="00:24:13.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And I think it's in early development still.""" start="00:24:16.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So there might be a solution in the future.""" start="00:24:19.860" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: What's a surprising change of thoughts or""" start="00:24:32.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""what's the most interesting thing you weren't""" start="00:24:36.900" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""expecting to discover while developing this?""" start="00:24:39.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Like change of thoughts on how you write or I""" start="00:24:44.640" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""don't know.""" start="00:24:45.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Well, I'm relatively new to Emacs and to Lisp""" start="00:24:59.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and really to programming in general.""" start="00:25:01.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And so it's been a fantastic learning""" start="00:25:04.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""experience. Adam, Alpha Papa,""" start="00:25:08.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Adam and I have been doing a lot of pair""" start="00:25:11.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""programming sessions where we work together""" start="00:25:12.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and I get to learn from him.""" start="00:25:15.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""And we've had meetings with Jonas and Prat""" start="00:25:19.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and meetings with Mauve where it's a""" start="00:25:23.560" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""fantastic learning experience for me to""" start="00:25:25.520" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""discover how to build software in an""" start="00:25:30.660" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""efficient and intelligent way.""" start="00:25:32.820" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's a huge pleasure. If there are no more""" start="00:25:40.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""questions, I just wanted to encourage""" start="00:25:43.320" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""everyone to try it out and to let us know""" start="00:25:48.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""what you think. It would be really helpful to""" start="00:25:50.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""have some feedback from people who are using""" start="00:25:54.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it in new and creative ways that we haven't""" start="00:25:57.240" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""anticipated.""" start="00:25:57.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 6]: Hi, I'd just like to say that I tried this""" start="00:26:02.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""new thing called hyperdrive.el""" start="00:26:02.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""today, and I think it's pretty cool.""" start="00:26:05.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: Sorry, that was somebody else.""" start="00:26:12.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Hey Joseph, how's it going?""" start="00:26:13.440" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Oh, talk today.""" start="00:26:15.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Oh, thanks. Wonderful.""" start="00:26:16.420" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: Who's that? Oh, hey. Well,""" start="00:26:19.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I'm going to say goodbye.""" start="00:26:34.060" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Thank you. And thank you for your questions,""" start="00:26:37.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: I know that""" start="00:26:39.680" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 1]: PlasmaStrike. I've met you before.""" start="00:26:40.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Appreciate your questions,""" start="00:26:42.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""your thoughts.""" start="00:26:42.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: Oh, by the way, Joseph,""" start="00:26:50.380" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""we have our, our first,""" start="00:26:53.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I don't know if our first new user,""" start="00:26:55.120" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""but we have the first link being shared,""" start="00:26:57.280" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to hyperdrive file in the chat and I loaded""" start="00:27:01.160" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""it and it works. And it's funny too.""" start="00:27:03.080" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's worth looking at.""" start="00:27:03.880" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""So. Oh, I think it's frozen.""" start="00:27:09.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I don't know if anybody can hear me.""" start="00:27:11.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: I can.""" start="00:27:12.720" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: Okay, cool. The browser is frozen.""" start="00:27:15.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It's it's not, okay. Just unfroze.""" start="00:27:19.020" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Anyway. All right. Well,""" start="00:27:21.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""By the way, I enjoyed your talks about""" start="00:27:24.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperbole. I'm going to rewatch those later""" start="00:27:26.260" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""when I get a chance. It was nice to meet you,""" start="00:27:28.040" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""too. Bob is a really great guy to work with.""" start="00:27:31.100" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Definitely a lot of interesting people.""" start="00:27:38.800" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: I owe him 1. Yes, sir.""" start="00:27:40.200" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""All right, you have a good day,""" start="00:27:41.580" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 3]: Will do, I like the insistence on local""" start="00:27:45.140" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""first. Feels like it's a good dovetail with""" start="00:27:48.740" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the hyper core""" start="00:27:49.540" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""[Speaker 2]: enjoy the conference. Yeah,""" start="00:27:51.180" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""yeah, I think there's a lot of a lot of""" start="00:27:54.960" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interesting possibilities to build on this we""" start="00:27:57.980" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""have some plans that we Will get to you later""" start="00:28:01.340" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""this well in the coming year And we'll see""" start="00:28:05.600" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""where the hyperdrive people,""" start="00:28:07.480" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you know, upstream how they develop it as""" start="00:28:09.920" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""well and yeah, so exciting times.""" start="00:28:14.340" video="qanda-hyperdrive" id="subtitle"]]
Questions or comments? Please e-mail [joseph@ushin.org](mailto:joseph@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20hyperdrive.el%3A%20Peer-to-peer%20filesystem%20in%20Emacs)