summaryrefslogblamecommitdiffstats
path: root/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt
blob: 9a18010318fd223f2c813550be01a533a5c32375 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                                        
                                                        

                             
                                                        

                             
                                                     

                             
                                                       

                             
                                                      







                                                       
                                                   

                             
                                                   






















                                                            
                      







                                                          
                                                         













                                                           
                                                       





































                                                            
                                                        



















                                                             
                                                     




                                                           
                                                            

                             
                                                       

























                                                         
                                                                    













                                                              
                                                        










                                                             
                                                       













                                                           
                                                        

                             
                                                            

                             
                                               




                              
                                            










                                                     
                                                             

                             
                                                              

                             
                                                        
















                                                              
                                                










                                                              
                             

                             
                                    










                                                           
                                                       

                             
                                                              

                             
                                                               







                                                             
                                                              




                                                        
                                                             










                                                             
                                                              







                                                     
                                                         
















                                                             
                                                               






















                                                              
                                                                  

                             
                                                                

                             
                                                                           




                                                       
                                                        




                                                           
                                                            










                                                         
                                                    










                                                             
                                                            

                             
                                                 







                                                         
                                                            

                             
                                                              







                                                            
                                                            




                                                            
                                                              

                             
                                                        

                             
                                                        




























                                                              
                                                 

                             
                       




























                                                            
                                                            

                             
                                                         







                                                              
                                                        







                                                          
                                    




                             
                                                           







                                                        
                                                          

                             
                                                             

                             
                                                             

                             
                                                               

                             
                                                            

                             
                                 













                                                           
                                                           






















                                                           
                                                                




                                                          
                                                      

                             
                                                               







                                                     
                                  




                             
                                                               

                             
                                                         

                             
                                        

                             
                                

                             
                                                    







                                                            
                                                          







                                                          
                                                            

                             
                                                         




                                                         
                                                           

























                                                        
                              

                             
                                       










                                                            
                                        




                               
                                                         










                                         
                                      

























                                                        
                                                              





































                                                              
                                                         




                                                          
                                                                      

                             
                                          




                                                         
                                                    

                             
                                                   







                                        
                                                   













                                                           
                                                 


                                                  
WEBVTT captioned by sachac

00:00:00.000 --> 00:00:03.919
Hello, welcome to this talk on hyperdrive.el. I'm Joseph

00:00:03.920 --> 00:00:07.439
Turner presenting on behalf of ushin, a tiny independent

00:00:07.440 --> 00:00:12.039
information freedom nonprofit. hyperdrive.el is an Emacs

00:00:12.040 --> 00:00:14.959
interface to the hyperdrive peer-to-peer file sharing

00:00:14.960 --> 00:00:18.399
system built by Holepunch. Like other peer-to-peer file

00:00:18.400 --> 00:00:22.119
sharing tools, such as BitTorrent, hyperdrive lets you

00:00:22.120 --> 00:00:25.959
share unlimited files directly with other users without

00:00:25.960 --> 00:00:29.519
having to go through a central hub. One thing that sets

00:00:29.520 --> 00:00:32.519
Hyperdrive apart is that the files you share can be

00:00:32.520 --> 00:00:35.759
modified. Since hyperdrive has built-in versioning,

00:00:35.760 --> 00:00:38.519
you can explore the history of changes that you make to your

00:00:38.520 --> 00:00:42.199
files or others make to theirs. You can stream video and

00:00:42.200 --> 00:00:45.639
audio. There's no sign-up or account creation process

00:00:45.640 --> 00:00:49.319
required. It's all free software. This means that the

00:00:49.320 --> 00:00:52.319
community has the legal right, the tools, and the

00:00:52.320 --> 00:00:55.359
information necessary to participate in the development

00:00:55.360 --> 00:00:58.337
process, or even fork the project

00:00:58.338 --> 00:01:00.799
and go cimarron. Since

00:01:00.800 --> 00:01:04.919
last year's talk, we've added a few new features. It's now

00:01:04.920 --> 00:01:08.559
much easier to get started using hyperdrive.el, since we

00:01:08.560 --> 00:01:12.399
added the hyperdrive-install command, which downloads the

00:01:12.400 --> 00:01:16.399
gateway program and installs it on your machine. We added a

00:01:16.400 --> 00:01:19.959
peer graph feature, which lets you visualize your network

00:01:19.960 --> 00:01:24.719
of sources of information. We also published a new package,

00:01:24.720 --> 00:01:29.079
hyperdrive-org-transclusion, which lets you display live

00:01:29.080 --> 00:01:34.599
updating snippets of hyperdrive files in Org documents.

00:01:34.600 --> 00:01:37.319
Let's get started. Let's say you get an email from your

00:01:37.320 --> 00:01:41.079
friend Alice inviting you to check out hyperdrive.el.

00:01:41.080 --> 00:01:45.519
Let's click on the link here to look at the manual. Let's go

00:01:45.520 --> 00:01:50.239
down to the installation section. It says you need to have

00:01:50.240 --> 00:01:54.639
GNU Emacs version 28.1 or later. I'll assume you have it

00:01:54.640 --> 00:01:57.479
installed, but if not, you can click this link.

00:01:57.480 --> 00:01:59.399
You need to have curl installed,

00:01:59.400 --> 00:02:01.919
which is likely already the case, but if not,

00:02:01.920 --> 00:02:04.719
hyperdrive.el will let you know.

00:02:04.720 --> 00:02:10.879
Now from within Emacs you can install hyperdrive.el.

00:02:10.880 --> 00:02:14.399
Run M-x package-refresh-contents.

00:02:14.400 --> 00:02:20.919
Then, M-x package-install, type in hyperdrive,

00:02:20.920 --> 00:02:26.079
and hit return. Next, we'll install hyper-gateway-ushin.

00:02:26.080 --> 00:02:32.999
Let's run M-x hyperdrive-install. It's prompting me to

00:02:33.000 --> 00:02:35.880
download and install the gateway, which is 51 megabytes.

00:02:35.881 --> 00:02:39.780
I'll press y.

00:02:39.781 --> 00:02:44.159
I will skip most of the download process. The download is

00:02:44.160 --> 00:02:49.439
wrapping up.

00:02:49.440 --> 00:02:53.399
Now, it's prompting me to start the gateway. I can either run

00:02:53.400 --> 00:02:59.279
M-x hyperdrive-start, or I can press this button. And

00:02:59.280 --> 00:03:03.479
after a few moments, we'll see that the gateway will start.

00:03:03.480 --> 00:03:07.279
It's ready. You can also click this button, "View hyperdrive

00:03:07.280 --> 00:03:10.239
User Info Manual", to view the same manual that we were

00:03:10.240 --> 00:03:13.479
viewing in the browser. The info manual comes with

00:03:13.480 --> 00:03:17.319
hyperdrive.el and is available offline. Now that

00:03:17.320 --> 00:03:20.559
everything's installed and the gateway is running, we're

00:03:20.560 --> 00:03:23.399
back at Alice's email. Let's click on the link to her

00:03:23.400 --> 00:03:28.719
hyperdrive. Here's Alice's hyperdrive. Let's open her

00:03:28.720 --> 00:03:33.079
hello.org file.

00:03:33.080 --> 00:03:37.319
I'm being prompted to mark Alice's hyperdrive. Currently,

00:03:37.320 --> 00:03:41.879
it's unknown. I'll press ? to see more details.

00:03:41.880 --> 00:03:48.279
"safe", "unsafe", "unknown". I'll press e for "explain". In the info

00:03:48.280 --> 00:03:54.139
manual, it says that if a hyperdrive is marked as safe, that

00:03:54.140 --> 00:03:57.799
means files in that hyperdrive will automatically have

00:03:57.800 --> 00:04:02.559
their major mode enabled based on their file extension. In

00:04:02.560 --> 00:04:06.719
this case, if I mark Alice's hyperdrive as safe and I click on

00:04:06.720 --> 00:04:10.519
this hello.org file, Emacs will automatically enable Org

00:04:10.520 --> 00:04:14.919
mode in that file. Since I know Alice directly, I'll mark her

00:04:14.920 --> 00:04:19.639
hyperdrive as safe. I'll click on the file hello.org again,

00:04:19.640 --> 00:04:25.679
and now I'll press Shift-s for safe.

00:04:25.680 --> 00:04:30.639
Now I'm going to set Alice's petname. hyperdrive.el has

00:04:30.640 --> 00:04:34.679
different ways to name a hyperdrive. The public key is the

00:04:34.680 --> 00:04:38.719
drive's unique identifier. You can also assign yourself a

00:04:38.720 --> 00:04:42.359
public nickname, which you announce to the world. Then

00:04:42.360 --> 00:04:45.959
users on their own machines can assign each hyperdrive that

00:04:45.960 --> 00:04:50.439
they are aware of a private petname. I'll assign Alice a

00:04:50.440 --> 00:04:54.079
petname, which is the way that I will identify Alice just on

00:04:54.080 --> 00:05:01.906
my own machine. I'll type in "My Friend Alice".

00:05:01.907 --> 00:05:03.707
Then when I refresh her drive,

00:05:03.708 --> 00:05:07.359
we see that it says petname in the top left.

00:05:07.360 --> 00:05:09.392
Now I'll do what she asks,

00:05:09.393 --> 00:05:11.613
which is to right click on her name and

00:05:11.614 --> 00:05:15.259
open her peer graph. In the context menu, I see a few

00:05:15.260 --> 00:05:19.159
different actions I can take, but I'll click on "Peer Graph".

00:05:19.160 --> 00:05:22.959
It's prompting me to pick the max hops for sources. Default 3.

00:05:22.960 --> 00:05:26.799
I'll choose the default. Same for blockers. I'll explain

00:05:26.800 --> 00:05:27.599
what that means later.

00:05:30.380 --> 00:05:35.959
This is Alice's peer graph. Here we can see that Alice has two

00:05:35.960 --> 00:05:41.279
direct sources, Bob and Eve. Both Bob and Eve have assigned

00:05:41.280 --> 00:05:45.919
themselves nicknames, and so we see Bob and Eve here. Eve has

00:05:45.920 --> 00:05:50.479
assigned this other hyperdrive to be a source. But this

00:05:50.480 --> 00:05:55.959
other hyperdrive, whose public key is "kb3zr6mq"

00:05:55.960 --> 00:05:59.519
and so on--if we hover over the hyperdrive, we'll see the full

00:05:59.520 --> 00:06:03.239
public key--has not assigned itself a nickname. So we

00:06:03.240 --> 00:06:07.999
just see the truncated short public key. Because we've

00:06:08.000 --> 00:06:10.917
assigned a petname for Alice,

00:06:10.918 --> 00:06:14.558
we see Alice's petname show up here.

00:06:14.559 --> 00:06:17.839
Now I'll open the peer list view to show the same

00:06:17.840 --> 00:06:21.479
information in a different way. Since I'm using a large

00:06:21.480 --> 00:06:25.199
font, I'll widen this window so we can see everything going

00:06:25.200 --> 00:06:29.319
on in the peer list. We see that the root hyperdrive is

00:06:29.320 --> 00:06:33.639
petname "My Friend Alice", nickname "alice", public key "dm1",

00:06:33.640 --> 00:06:38.359
and so on. We've set the sources max hops to three, which means

00:06:38.360 --> 00:06:42.359
that we will go out at most three hops from Alice in order to

00:06:42.360 --> 00:06:49.839
find sources. One hop from Alice are Bob and Eve. One hop

00:06:49.840 --> 00:06:55.839
from Eve is "kb3", which is two hops from Alice. Now we've set

00:06:55.840 --> 00:06:59.159
the max hops for sources to three, but in this case, the

00:06:59.160 --> 00:07:04.279
network is small, and "kb3" has no sources. So we can only go

00:07:04.280 --> 00:07:07.959
out two hops from Alice until we run out of sources. In the

00:07:07.960 --> 00:07:11.159
future, we plan to add a search feature based on this list of

00:07:11.160 --> 00:07:14.479
sources. You type in a query, and you get back a list of

00:07:14.480 --> 00:07:19.879
results published by Eve, Bob, or "kb3". It's also possible to

00:07:19.880 --> 00:07:23.239
block peers. I'll open the transient menu by pressing

00:07:23.240 --> 00:07:28.759
question mark. For now, let's turn on showing blocked

00:07:28.760 --> 00:07:35.439
peers. I'll press "s x", and now it says blocked sources.

00:07:35.440 --> 00:07:38.839
Now we can see Mallory also shows up. Mallory has been

00:07:38.840 --> 00:07:43.399
included as a source by Eve, but is blocked. So in the end

00:07:43.400 --> 00:07:47.039
result, she does not show up in the list of sources. Instead,

00:07:47.040 --> 00:07:51.839
she shows up as a blocked source. But how is it that Mallory

00:07:51.840 --> 00:07:55.039
ended up being blocked? Let's open up the transient menu

00:07:55.040 --> 00:08:02.759
once more and click "s b" to show blockers. Now we can see that

00:08:02.760 --> 00:08:07.079
Bob has blocked Mallory. This means that Bob is not

00:08:07.080 --> 00:08:12.519
interested in seeing search results from Mallory. Since

00:08:12.520 --> 00:08:17.639
Alice has included Bob as a blocker, that means that Alice

00:08:17.640 --> 00:08:23.439
trusts Bob to block people on her behalf. So since Bob has

00:08:23.440 --> 00:08:27.479
blocked Mallory, Mallory does not show up in Alice's

00:08:27.480 --> 00:08:31.919
peergraph as a source. Well, now I'm curious to see what it is

00:08:31.920 --> 00:08:35.919
Mallory published that drove Bob to block her. I'll

00:08:35.920 --> 00:08:39.439
right-click on Mallory, and in the context menu, "Open Hyperdrive"

00:08:39.440 --> 00:08:44.319
and... Wingsuit Flying Grand Canyon Point of View Not Clickbait?

00:08:44.320 --> 00:08:49.879
I gotta check this out!  [playing: Rick Astley's "Never Gonna Give You Up"]

00:08:49.880 --> 00:08:56.159
No! Disgusting! No wonder Bob blocked Mallory. Let's go

00:08:56.160 --> 00:09:01.839
back to Alice's peer graph. Mallory is a blocked source.

00:09:01.840 --> 00:09:05.599
Are there any peers who are blocked but who aren't sources?

00:09:05.600 --> 00:09:11.739
I'll open the transient menu and I'll press "s x". Now we're

00:09:11.740 --> 00:09:16.839
looking at blocked non-sources. Darth, who's been blocked

00:09:16.840 --> 00:09:20.759
by Bob, has not been added by any of Alice's sources as a

00:09:20.760 --> 00:09:25.559
source. So Darth is a blocked non-source. I'll open the

00:09:25.560 --> 00:09:29.699
transient menu again and I'll press "s x". Now we're

00:09:29.700 --> 00:09:34.639
looking at all blocked peers. Both Mallory and Darth show

00:09:34.640 --> 00:09:37.959
up. If I scroll down in the peer list, we'll see that Mallory

00:09:37.960 --> 00:09:42.519
is listed under blocked sources, and Darth is listed under

00:09:42.520 --> 00:09:45.559
blocked non-sources. This view has gotten a little bit busy.

00:09:45.560 --> 00:09:49.319
Let's say that we're only interested in how Alice

00:09:49.320 --> 00:09:54.519
relates to Mallory. I'll open the transient menu, and I

00:09:54.520 --> 00:09:58.519
will filter the graph to show paths only to Mallory. I'll

00:09:58.520 --> 00:10:05.519
press "o a", type in Mallory, and hit enter. Now we see that

00:10:05.520 --> 00:10:11.479
Mallory has a bold border and "kb3" and Darth are missing from

00:10:11.480 --> 00:10:16.679
the graph. Eve shows up because there's a path from Alice to

00:10:16.680 --> 00:10:22.479
Mallory that goes through Eve. Same for Bob. We can also add

00:10:22.480 --> 00:10:28.599
more than one peer in this view. I'll press "o a" again, and

00:10:28.600 --> 00:10:34.719
this time I'll choose Darth. Now Darth and Mallory have bold

00:10:34.720 --> 00:10:38.839
borders, and "kb3" is still missing. We can remove Mallory and

00:10:38.840 --> 00:10:42.799
Darth one at a time with "o r", or we can press C-u, the

00:10:42.800 --> 00:10:47.679
universal prefix argument, and then "o r" to remove both

00:10:47.680 --> 00:10:51.239
Mallory and Darth from the list. Now we're back to seeing

00:10:51.240 --> 00:10:55.679
everybody. This view of the graph is somewhat simplified

00:10:55.680 --> 00:10:57.537
because we're showing only

00:10:57.538 --> 00:11:00.238
the shortest paths between peers.

00:11:00.239 --> 00:11:06.039
If I press Shift-s now we're looking at all paths.

00:11:06.040 --> 00:11:10.039
Here, we can see that in addition to going from Alice to

00:11:10.040 --> 00:11:15.519
Bob as a source directly, we also go from Alice to Bob through

00:11:15.520 --> 00:11:21.079
Eve as a source. Let's go back to showing only the shortest

00:11:21.080 --> 00:11:27.719
paths. Currently, the max hops for sources and for blockers

00:11:27.720 --> 00:11:31.679
is set to 3. Let's see what happens if we set the

00:11:31.680 --> 00:11:33.519
blockers max hops to 0.

00:11:35.800 --> 00:11:39.479
After the graph reloads, we now see that Mallory

00:11:39.480 --> 00:11:43.286
shows up as a source, not as a blocked source.

00:11:43.287 --> 00:11:44.759
This is because Bob,

00:11:44.760 --> 00:11:49.199
who is one hop away from Alice, is no longer included as a

00:11:49.200 --> 00:11:52.479
blocker, because we've set the blockers max hops to 0. And

00:11:52.480 --> 00:11:57.519
since Bob is not a blocker, the fact that Bob blocks Mallory

00:11:57.520 --> 00:12:01.719
doesn't factor in. While Alice is the only one who gets to

00:12:01.720 --> 00:12:05.959
decide who her direct sources, blockers, and blocked peers

00:12:05.960 --> 00:12:10.239
are, anyone can view Alice's peer graph, tinker with the

00:12:10.240 --> 00:12:14.439
sources or blockers max hops, and use her list of sources to

00:12:14.440 --> 00:12:19.239
do a search. Let's see what happens if we set sources max

00:12:19.240 --> 00:12:24.719
hops to 2. Well, the graph doesn't change, because we only

00:12:24.720 --> 00:12:29.239
ever went out 2 hops anyway. Let's set source's max hops to 1.

00:12:30.140 --> 00:12:35.159
Now we only see Bob and Eve, since "kb3" and Mallory are

00:12:35.160 --> 00:12:43.079
2 hops out. Source hops 0. Now we're left with just Alice.

00:12:44.120 --> 00:12:47.999
Now I'd like to create a new hyperdrive and add Alice as a

00:12:48.000 --> 00:12:52.731
source. I'll run M-x hyperdrive-new.

00:12:52.732 --> 00:12:53.812
Now it's prompting me

00:12:53.813 --> 00:12:57.479
for a new hyperdrive seed. A seed is a string of characters

00:12:57.480 --> 00:13:01.359
that's combined with your secret key, which is generated

00:13:01.360 --> 00:13:04.719
for you by the gateway program, in order to create a new

00:13:04.720 --> 00:13:10.679
public key for each new hyperdrive. I'll type in "Joseph".

00:13:10.680 --> 00:13:15.319
A new drive. Now, I'll right-click on my own name, and in the

00:13:15.320 --> 00:13:21.599
context menu, I'll choose "Set Relation From". From Joseph...

00:13:21.600 --> 00:13:32.279
to Alice...as a source. Now, I'll right-click on my name again,

00:13:32.280 --> 00:13:40.919
and click on "Peer Graph". Sources max hops, let's say three

00:13:40.920 --> 00:13:41.879
and [three] for blockers as well,

00:13:45.440 --> 00:13:49.399
Here's the peer graph from my newly created

00:13:49.400 --> 00:13:54.199
hyperdrive's perspective. Mallory is included as a

00:13:54.200 --> 00:13:58.519
source, three hops from the root. Let's open the list view.

00:14:01.220 --> 00:14:06.439
If we were to mark Alice as a blocker by clicking on this

00:14:06.440 --> 00:14:10.319
button in the blocker column next to the petname for Alice,

00:14:12.120 --> 00:14:16.959
Then we see that Mallory shows up as a blocked source. Only

00:14:16.960 --> 00:14:21.359
now that Joseph includes Alice as a blocker does the fact

00:14:21.360 --> 00:14:26.399
that Bob blocked Mallory take effect. You can click on

00:14:26.400 --> 00:14:30.539
another peer to set them as the root hyperdrive. I'll click

00:14:30.540 --> 00:14:34.999
on Eve. Now we're looking at the peer graph from Eve's

00:14:35.000 --> 00:14:39.519
perspective. This peer graph view has a history. If I open

00:14:39.520 --> 00:14:42.359
the transient menu, you'll see here there's a back and a

00:14:42.360 --> 00:14:47.359
forward button. Back is bound to "l" for "left". If I press "l",

00:14:48.440 --> 00:14:51.839
we're looking at the graph from Joseph's perspective. If I

00:14:51.840 --> 00:14:56.279
press "l" again, now we're looking at Alice, as at the

00:14:56.280 --> 00:15:01.439
beginning. I'll press "r" to go forward, and "r" again, and now

00:15:01.440 --> 00:15:04.734
we're back at Eve. Now, I'd like to show you

00:15:04.735 --> 00:15:08.337
the hyperdrive-org-transclusion package we published.

00:15:08.338 --> 00:15:10.358
I'll open up the hyperdrive manual

00:15:10.359 --> 00:15:14.399
to see how to install it.

00:15:15.680 --> 00:15:20.999
Now, from here, I'll press "m" and type in transclusion to jump

00:15:21.000 --> 00:15:23.599
straight to the "Org-transclusion integration" section of

00:15:23.600 --> 00:15:27.079
the manual. To summarize, we can install

00:15:27.080 --> 00:15:30.879
hyperdrive-org-transclusion with

00:15:32.220 --> 00:15:33.919
M-x package-install RET hyperdrive-org-transclusion.

00:15:37.000 --> 00:15:42.159
Then, once this is done, we will copy the following snippet

00:15:43.780 --> 00:15:47.559
and add it either to our init.el file or, in this case, I'll

00:15:47.560 --> 00:15:52.439
just evaluate it. Now, hyperdrive-org-transclusion-mode is

00:15:52.440 --> 00:15:52.879
enabled.

00:15:58.100 --> 00:16:01.479
Let's go back to the hello.org file in Alice's hyperdrive.

00:16:01.480 --> 00:16:07.239
I'll right-click on Alice, then click "Open Hyperdrive", and

00:16:07.240 --> 00:16:11.359
hit RET on hello.org. This time, I'm not prompted to mark

00:16:11.360 --> 00:16:16.199
Alice's hyperdrive as safe, since we did it already. I'll

00:16:16.200 --> 00:16:20.719
navigate to the "Check out my peers" heading. Then I'll run

00:16:20.720 --> 00:16:28.359
M-x org-store-link. Now, I'll create a new file in my

00:16:28.360 --> 00:16:32.959
hyperdrive by running M-x hyperdrive-find-file. I'll

00:16:32.960 --> 00:16:38.488
select my hyperdrive and I'll call this new file

00:16:38.489 --> 00:16:45.919
response-to-alice.org.

00:16:45.920 --> 00:16:50.780
Now, I'll paste in a response that I've written.

00:16:50.781 --> 00:16:57.979
I'll go to the bottom and I will run M-x org-insert-link

00:16:57.980 --> 00:16:59.423
and I'll insert the link

00:16:59.424 --> 00:17:02.799
that I stored earlier. As a link

00:17:02.800 --> 00:17:07.759
description, I'll change it to

00:17:08.880 --> 00:17:09.879
"Snippet from Alice's hyperdrive file".

00:17:12.700 --> 00:17:18.399
I'll save my hyperdrive file.

00:17:18.400 --> 00:17:21.839
Now, to show that the link works, I'll just kill this buffer

00:17:21.840 --> 00:17:27.099
showing the hello.org file, and I'll click on the link.

00:17:27.100 --> 00:17:29.487
Now, in addition to linking from my file

00:17:29.488 --> 00:17:31.488
to the heading in Alice's file,

00:17:31.489 --> 00:17:35.699
I'd like to transclude this heading's content in my file.

00:17:35.700 --> 00:17:38.634
So I'll go to the link in my file and run

00:17:38.635 --> 00:17:45.400
M-x org-transclusion-make-from-link

00:17:45.401 --> 00:17:47.879
and I'll save my file again.

00:17:47.880 --> 00:17:50.504
All that's been added is another link,

00:17:50.505 --> 00:17:54.433
prefixed with this transclude keyword.

00:17:54.434 --> 00:17:57.034
To make the transclusion show up inline,

00:17:57.035 --> 00:18:02.359
I'll run M-x org-transclusion-add. The content

00:18:02.360 --> 00:18:05.359
of Alice's file hasn't been copied into mine. It's just

00:18:05.360 --> 00:18:12.959
being transcluded. If I run M-x org-transclusion-remove,

00:18:12.960 --> 00:18:15.439
you'll see that the underlying content is still

00:18:15.440 --> 00:18:21.639
just the transclude keyword and the link.

00:18:21.640 --> 00:18:24.319
Now some time has passed and Alice has updated her

00:18:24.320 --> 00:18:29.879
hyperdrive file. She wrote, "Please add me as a source." Since

00:18:29.880 --> 00:18:33.559
the transclude link that I added in my file does not specify a

00:18:33.560 --> 00:18:36.879
version, it will always transclude the latest version of

00:18:36.880 --> 00:18:42.639
Alice's hello.org file. If I run M-x org-transclusion-add

00:18:42.640 --> 00:18:46.719
once more, we'll see that the latest version of Alice's

00:18:46.720 --> 00:18:51.679
file gets transcluded into mine. Let's say that I want to

00:18:51.680 --> 00:18:54.959
transclude the previous version of Alice's hello.org

00:18:54.960 --> 00:18:58.879
file, and I don't want my transclusion to change when Alice

00:18:58.880 --> 00:19:02.919
updates her file. That's possible too. I'll go over to her

00:19:02.920 --> 00:19:09.759
file and run M-x hyperdrive-open-previous-version. Now

00:19:09.760 --> 00:19:14.079
when I widen the window a little, we can see in the mode line

00:19:14.080 --> 00:19:18.279
that this is version 57. For an explanation of what the

00:19:18.280 --> 00:19:21.599
version numbers mean, check out the last video or the info

00:19:21.600 --> 00:19:25.759
manual. For now, I'll go down to her "Check out my peers"

00:19:25.760 --> 00:19:32.999
heading and run M-x org-store-link. Now, in my response to

00:19:33.000 --> 00:19:39.159
Alice, I'll insert the link. I'll run org-transclusion-make-from-link.

00:19:39.160 --> 00:19:44.759
Now there are two transclusions. The first

00:19:44.760 --> 00:19:47.719
transclusion will update whenever Alice updates her file,

00:19:47.720 --> 00:19:52.919
and the second transclusion is pinned to version 57.

00:19:52.920 --> 00:19:53.356
That covers hyperdrive-install, the peer graph, and

00:19:53.357 --> 00:19:58.298
hyperdrive-org-transclusion.

00:19:58.299 --> 00:20:00.519
Feel free to check out the hyperdrive.el

00:20:00.520 --> 00:20:04.119
info manual in the ushin hyperdrive here, or on the

00:20:04.120 --> 00:20:08.439
ushin.org website. Thanks to the folks at Sopranica, we

00:20:08.440 --> 00:20:11.879
have a public XMPP group chat you can join, either using an

00:20:11.880 --> 00:20:15.919
XMPP client or anonymously from your browser. If you use

00:20:15.920 --> 00:20:19.799
Matrix, there's also a bridge. Thank you for watching, and

00:20:19.800 --> 00:20:22.519
Thank you to the EmacsConf organizers and all the

00:20:22.520 --> 00:20:25.160
presenters who made this wonderful event possible.