1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
|
<!-- Automatically generated by emacsconf-publish-after-page -->
<div class="transcript transcript-mainVideo"><a name="hyperdrive-mainVideo-transcript"></a><h1>Transcript</h1>
[[!template text="""Hello, welcome to this talk on hyperdrive.el. I'm Joseph""" start="00:00:00.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Turner presenting on behalf of ushin, a tiny independent""" start="00:00:03.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""information freedom nonprofit. hyperdrive.el is an Emacs""" start="00:00:07.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""interface to the hyperdrive peer-to-peer file sharing""" start="00:00:12.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""system built by Holepunch. Like other peer-to-peer file""" start="00:00:14.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""sharing tools, such as BitTorrent, hyperdrive lets you""" start="00:00:18.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""share unlimited files directly with other users without""" start="00:00:22.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""having to go through a central hub. One thing that sets""" start="00:00:25.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Hyperdrive apart is that the files you share can be""" start="00:00:29.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""modified. Since hyperdrive has built-in versioning,""" start="00:00:32.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you can explore the history of changes that you make to your""" start="00:00:35.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""files or others make to theirs. You can stream video and""" start="00:00:38.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""audio. There's no sign-up or account creation process""" start="00:00:42.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""required. It's all free software. This means that the""" start="00:00:45.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""community has the legal right, the tools, and the""" start="00:00:49.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""information necessary to participate in the development""" start="00:00:52.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""process, or even fork the project""" start="00:00:55.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and go cimarron. Since""" start="00:00:58.338" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""last year's talk, we've added a few new features. It's now""" start="00:01:00.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""much easier to get started using hyperdrive.el, since we""" start="00:01:04.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""added the hyperdrive-install command, which downloads the""" start="00:01:08.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""gateway program and installs it on your machine. We added a""" start="00:01:12.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""peer graph feature, which lets you visualize your network""" start="00:01:16.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of sources of information. We also published a new package,""" start="00:01:19.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive-org-transclusion, which lets you display live""" start="00:01:24.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""updating snippets of hyperdrive files in Org documents.""" start="00:01:29.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's get started. Let's say you get an email from your""" start="00:01:34.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""friend Alice inviting you to check out hyperdrive.el.""" start="00:01:37.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's click on the link here to look at the manual. Let's go""" start="00:01:41.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""down to the installation section. It says you need to have""" start="00:01:45.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""GNU Emacs version 28.1 or later. I'll assume you have it""" start="00:01:50.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""installed, but if not, you can click this link.""" start="00:01:54.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""You need to have curl installed,""" start="00:01:57.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is likely already the case, but if not,""" start="00:01:59.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive.el will let you know.""" start="00:02:01.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now from within Emacs you can install hyperdrive.el.""" start="00:02:04.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Run M-x package-refresh-contents.""" start="00:02:10.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then, M-x package-install, type in hyperdrive,""" start="00:02:14.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and hit return. Next, we'll install hyper-gateway-ushin.""" start="00:02:20.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's run M-x hyperdrive-install. It's prompting me to""" start="00:02:26.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""download and install the gateway, which is 51 megabytes.""" start="00:02:33.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll press y.""" start="00:02:35.881" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I will skip most of the download process. The download is""" start="00:02:39.781" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""wrapping up.""" start="00:02:44.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, it's prompting me to start the gateway. I can either run""" start="00:02:49.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""M-x hyperdrive-start, or I can press this button. And""" start="00:02:53.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""after a few moments, we'll see that the gateway will start.""" start="00:02:59.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's ready. You can also click this button, "View hyperdrive""" start="00:03:03.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""User Info Manual", to view the same manual that we were""" start="00:03:07.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""viewing in the browser. The info manual comes with""" start="00:03:10.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive.el and is available offline. Now that""" start="00:03:13.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""everything's installed and the gateway is running, we're""" start="00:03:17.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""back at Alice's email. Let's click on the link to her""" start="00:03:20.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive. Here's Alice's hyperdrive. Let's open her""" start="00:03:23.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hello.org file.""" start="00:03:28.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'm being prompted to mark Alice's hyperdrive. Currently,""" start="00:03:33.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""it's unknown. I'll press ? to see more details.""" start="00:03:37.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""safe", "unsafe", "unknown". I'll press e for "explain". In the info""" start="00:03:41.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""manual, it says that if a hyperdrive is marked as safe, that""" start="00:03:48.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""means files in that hyperdrive will automatically have""" start="00:03:54.140" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""their major mode enabled based on their file extension. In""" start="00:03:57.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this case, if I mark Alice's hyperdrive as safe and I click on""" start="00:04:02.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this hello.org file, Emacs will automatically enable Org""" start="00:04:06.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""mode in that file. Since I know Alice directly, I'll mark her""" start="00:04:10.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive as safe. I'll click on the file hello.org again,""" start="00:04:14.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and now I'll press Shift-s for safe.""" start="00:04:19.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'm going to set Alice's petname. hyperdrive.el has""" start="00:04:25.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""different ways to name a hyperdrive. The public key is the""" start="00:04:30.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""drive's unique identifier. You can also assign yourself a""" start="00:04:34.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""public nickname, which you announce to the world. Then""" start="00:04:38.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""users on their own machines can assign each hyperdrive that""" start="00:04:42.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""they are aware of a private petname. I'll assign Alice a""" start="00:04:45.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""petname, which is the way that I will identify Alice just on""" start="00:04:50.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""my own machine. I'll type in "My Friend Alice".""" start="00:04:54.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then when I refresh her drive,""" start="00:05:01.907" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we see that it says petname in the top left.""" start="00:05:03.708" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'll do what she asks,""" start="00:05:07.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""which is to right click on her name and""" start="00:05:09.393" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""open her peer graph. In the context menu, I see a few""" start="00:05:11.614" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""different actions I can take, but I'll click on "Peer Graph".""" start="00:05:15.260" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""It's prompting me to pick the max hops for sources. Default 3.""" start="00:05:19.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll choose the default. Same for blockers. I'll explain""" start="00:05:22.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""what that means later.""" start="00:05:26.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is Alice's peer graph. Here we can see that Alice has two""" start="00:05:30.380" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""direct sources, Bob and Eve. Both Bob and Eve have assigned""" start="00:05:35.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""themselves nicknames, and so we see Bob and Eve here. Eve has""" start="00:05:41.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""assigned this other hyperdrive to be a source. But this""" start="00:05:45.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""other hyperdrive, whose public key is "kb3zr6mq"""" start="00:05:50.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and so on--if we hover over the hyperdrive, we'll see the full""" start="00:05:55.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""public key--has not assigned itself a nickname. So we""" start="00:05:59.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""just see the truncated short public key. Because we've""" start="00:06:03.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""assigned a petname for Alice,""" start="00:06:08.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we see Alice's petname show up here.""" start="00:06:10.918" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'll open the peer list view to show the same""" start="00:06:14.559" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""information in a different way. Since I'm using a large""" start="00:06:17.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""font, I'll widen this window so we can see everything going""" start="00:06:21.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""on in the peer list. We see that the root hyperdrive is""" start="00:06:25.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""petname "My Friend Alice", nickname "alice", public key "dm1",""" start="00:06:29.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and so on. We've set the sources max hops to three, which means""" start="00:06:33.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that we will go out at most three hops from Alice in order to""" start="00:06:38.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""find sources. One hop from Alice are Bob and Eve. One hop""" start="00:06:42.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""from Eve is "kb3", which is two hops from Alice. Now we've set""" start="00:06:49.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the max hops for sources to three, but in this case, the""" start="00:06:55.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""network is small, and "kb3" has no sources. So we can only go""" start="00:06:59.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""out two hops from Alice until we run out of sources. In the""" start="00:07:04.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""future, we plan to add a search feature based on this list of""" start="00:07:07.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""sources. You type in a query, and you get back a list of""" start="00:07:11.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""results published by Eve, Bob, or "kb3". It's also possible to""" start="00:07:14.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""block peers. I'll open the transient menu by pressing""" start="00:07:19.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""question mark. For now, let's turn on showing blocked""" start="00:07:23.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""peers. I'll press "s x", and now it says blocked sources.""" start="00:07:28.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now we can see Mallory also shows up. Mallory has been""" start="00:07:35.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""included as a source by Eve, but is blocked. So in the end""" start="00:07:38.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""result, she does not show up in the list of sources. Instead,""" start="00:07:43.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""she shows up as a blocked source. But how is it that Mallory""" start="00:07:47.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ended up being blocked? Let's open up the transient menu""" start="00:07:51.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""once more and click "s b" to show blockers. Now we can see that""" start="00:07:55.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Bob has blocked Mallory. This means that Bob is not""" start="00:08:02.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""interested in seeing search results from Mallory. Since""" start="00:08:07.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Alice has included Bob as a blocker, that means that Alice""" start="00:08:12.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""trusts Bob to block people on her behalf. So since Bob has""" start="00:08:17.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""blocked Mallory, Mallory does not show up in Alice's""" start="00:08:23.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""peergraph as a source. Well, now I'm curious to see what it is""" start="00:08:27.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Mallory published that drove Bob to block her. I'll""" start="00:08:31.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""right-click on Mallory, and in the context menu, "Open Hyperdrive"""" start="00:08:35.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and... Wingsuit Flying Grand Canyon Point of View Not Clickbait?""" start="00:08:39.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I gotta check this out! [playing: Rick Astley's "Never Gonna Give You Up"]""" start="00:08:44.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""No! Disgusting! No wonder Bob blocked Mallory. Let's go""" start="00:08:49.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""back to Alice's peer graph. Mallory is a blocked source.""" start="00:08:56.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Are there any peers who are blocked but who aren't sources?""" start="00:09:01.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll open the transient menu and I'll press "s x". Now we're""" start="00:09:05.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""looking at blocked non-sources. Darth, who's been blocked""" start="00:09:11.740" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""by Bob, has not been added by any of Alice's sources as a""" start="00:09:16.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""source. So Darth is a blocked non-source. I'll open the""" start="00:09:20.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""transient menu again and I'll press "s x". Now we're""" start="00:09:25.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""looking at all blocked peers. Both Mallory and Darth show""" start="00:09:29.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""up. If I scroll down in the peer list, we'll see that Mallory""" start="00:09:34.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is listed under blocked sources, and Darth is listed under""" start="00:09:37.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""blocked non-sources. This view has gotten a little bit busy.""" start="00:09:42.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's say that we're only interested in how Alice""" start="00:09:45.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""relates to Mallory. I'll open the transient menu, and I""" start="00:09:49.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""will filter the graph to show paths only to Mallory. I'll""" start="00:09:54.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""press "o a", type in Mallory, and hit enter. Now we see that""" start="00:09:58.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Mallory has a bold border and "kb3" and Darth are missing from""" start="00:10:05.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the graph. Eve shows up because there's a path from Alice to""" start="00:10:11.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Mallory that goes through Eve. Same for Bob. We can also add""" start="00:10:16.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""more than one peer in this view. I'll press "o a" again, and""" start="00:10:22.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""this time I'll choose Darth. Now Darth and Mallory have bold""" start="00:10:28.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""borders, and "kb3" is still missing. We can remove Mallory and""" start="00:10:34.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Darth one at a time with "o r", or we can press C-u, the""" start="00:10:38.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""universal prefix argument, and then "o r" to remove both""" start="00:10:42.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Mallory and Darth from the list. Now we're back to seeing""" start="00:10:47.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""everybody. This view of the graph is somewhat simplified""" start="00:10:51.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""because we're showing only""" start="00:10:55.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the shortest paths between peers.""" start="00:10:57.538" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If I press Shift-s now we're looking at all paths.""" start="00:11:00.239" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here, we can see that in addition to going from Alice to""" start="00:11:06.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Bob as a source directly, we also go from Alice to Bob through""" start="00:11:10.040" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Eve as a source. Let's go back to showing only the shortest""" start="00:11:15.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""paths. Currently, the max hops for sources and for blockers""" start="00:11:21.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""is set to 3. Let's see what happens if we set the""" start="00:11:27.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""blockers max hops to 0.""" start="00:11:31.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""After the graph reloads, we now see that Mallory""" start="00:11:35.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""shows up as a source, not as a blocked source.""" start="00:11:39.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""This is because Bob,""" start="00:11:43.287" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""who is one hop away from Alice, is no longer included as a""" start="00:11:44.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""blocker, because we've set the blockers max hops to 0. And""" start="00:11:49.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""since Bob is not a blocker, the fact that Bob blocks Mallory""" start="00:11:52.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""doesn't factor in. While Alice is the only one who gets to""" start="00:11:57.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""decide who her direct sources, blockers, and blocked peers""" start="00:12:01.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""are, anyone can view Alice's peer graph, tinker with the""" start="00:12:05.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""sources or blockers max hops, and use her list of sources to""" start="00:12:10.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""do a search. Let's see what happens if we set sources max""" start="00:12:14.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hops to 2. Well, the graph doesn't change, because we only""" start="00:12:19.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ever went out 2 hops anyway. Let's set source's max hops to 1.""" start="00:12:24.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now we only see Bob and Eve, since "kb3" and Mallory are""" start="00:12:30.140" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""2 hops out. Source hops 0. Now we're left with just Alice.""" start="00:12:35.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now I'd like to create a new hyperdrive and add Alice as a""" start="00:12:44.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""source. I'll run M-x hyperdrive-new.""" start="00:12:48.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now it's prompting me""" start="00:12:52.732" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for a new hyperdrive seed. A seed is a string of characters""" start="00:12:53.813" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that's combined with your secret key, which is generated""" start="00:12:57.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""for you by the gateway program, in order to create a new""" start="00:13:01.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""public key for each new hyperdrive. I'll type in "Joseph".""" start="00:13:04.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""A new drive. Now, I'll right-click on my own name, and in the""" start="00:13:10.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""context menu, I'll choose "Set Relation From". From Joseph...""" start="00:13:15.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to Alice...as a source. Now, I'll right-click on my name again,""" start="00:13:21.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and click on "Peer Graph". Sources max hops, let's say three""" start="00:13:32.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and [three] for blockers as well,""" start="00:13:40.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Here's the peer graph from my newly created""" start="00:13:45.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive's perspective. Mallory is included as a""" start="00:13:49.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""source, three hops from the root. Let's open the list view.""" start="00:13:54.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""If we were to mark Alice as a blocker by clicking on this""" start="00:14:01.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""button in the blocker column next to the petname for Alice,""" start="00:14:06.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then we see that Mallory shows up as a blocked source. Only""" start="00:14:12.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""now that Joseph includes Alice as a blocker does the fact""" start="00:14:16.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that Bob blocked Mallory take effect. You can click on""" start="00:14:21.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""another peer to set them as the root hyperdrive. I'll click""" start="00:14:26.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""on Eve. Now we're looking at the peer graph from Eve's""" start="00:14:30.540" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""perspective. This peer graph view has a history. If I open""" start="00:14:35.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the transient menu, you'll see here there's a back and a""" start="00:14:39.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""forward button. Back is bound to "l" for "left". If I press "l",""" start="00:14:42.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we're looking at the graph from Joseph's perspective. If I""" start="00:14:48.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""press "l" again, now we're looking at Alice, as at the""" start="00:14:51.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""beginning. I'll press "r" to go forward, and "r" again, and now""" start="00:14:56.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""we're back at Eve. Now, I'd like to show you""" start="00:15:01.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the hyperdrive-org-transclusion package we published.""" start="00:15:04.735" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll open up the hyperdrive manual""" start="00:15:08.338" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to see how to install it.""" start="00:15:10.359" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, from here, I'll press "m" and type in transclusion to jump""" start="00:15:15.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""straight to the "Org-transclusion integration" section of""" start="00:15:21.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the manual. To summarize, we can install""" start="00:15:23.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive-org-transclusion with""" start="00:15:27.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""M-x package-install RET hyperdrive-org-transclusion.""" start="00:15:32.220" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Then, once this is done, we will copy the following snippet""" start="00:15:37.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and add it either to our init.el file or, in this case, I'll""" start="00:15:43.780" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""just evaluate it. Now, hyperdrive-org-transclusion-mode is""" start="00:15:47.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""enabled.""" start="00:15:52.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Let's go back to the hello.org file in Alice's hyperdrive.""" start="00:15:58.100" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll right-click on Alice, then click "Open Hyperdrive", and""" start="00:16:01.480" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hit RET on hello.org. This time, I'm not prompted to mark""" start="00:16:07.240" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Alice's hyperdrive as safe, since we did it already. I'll""" start="00:16:11.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""navigate to the "Check out my peers" heading. Then I'll run""" start="00:16:16.200" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""M-x org-store-link. Now, I'll create a new file in my""" start="00:16:20.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive by running M-x hyperdrive-find-file. I'll""" start="00:16:28.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""select my hyperdrive and I'll call this new file""" start="00:16:32.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""response-to-alice.org.""" start="00:16:38.489" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, I'll paste in a response that I've written.""" start="00:16:45.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll go to the bottom and I will run M-x org-insert-link""" start="00:16:50.781" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll insert the link""" start="00:16:57.980" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that I stored earlier. As a link""" start="00:16:59.424" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""description, I'll change it to""" start="00:17:02.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text=""""Snippet from Alice's hyperdrive file".""" start="00:17:08.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll save my hyperdrive file.""" start="00:17:12.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, to show that the link works, I'll just kill this buffer""" start="00:17:18.400" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""showing the hello.org file, and I'll click on the link.""" start="00:17:21.840" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now, in addition to linking from my file""" start="00:17:27.100" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""to the heading in Alice's file,""" start="00:17:29.488" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'd like to transclude this heading's content in my file.""" start="00:17:31.489" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""So I'll go to the link in my file and run""" start="00:17:35.700" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""M-x org-transclusion-make-from-link""" start="00:17:38.635" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and I'll save my file again.""" start="00:17:45.401" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""All that's been added is another link,""" start="00:17:47.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""prefixed with this transclude keyword.""" start="00:17:50.505" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""To make the transclusion show up inline,""" start="00:17:54.434" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""I'll run M-x org-transclusion-add. The content""" start="00:17:57.035" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""of Alice's file hasn't been copied into mine. It's just""" start="00:18:02.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""being transcluded. If I run M-x org-transclusion-remove,""" start="00:18:05.360" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""you'll see that the underlying content is still""" start="00:18:12.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""just the transclude keyword and the link.""" start="00:18:15.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now some time has passed and Alice has updated her""" start="00:18:21.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive file. She wrote, "Please add me as a source." Since""" start="00:18:24.320" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""the transclude link that I added in my file does not specify a""" start="00:18:29.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""version, it will always transclude the latest version of""" start="00:18:33.560" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Alice's hello.org file. If I run M-x org-transclusion-add""" start="00:18:36.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""once more, we'll see that the latest version of Alice's""" start="00:18:42.640" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""file gets transcluded into mine. Let's say that I want to""" start="00:18:46.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""transclude the previous version of Alice's hello.org""" start="00:18:51.680" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""file, and I don't want my transclusion to change when Alice""" start="00:18:54.960" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""updates her file. That's possible too. I'll go over to her""" start="00:18:58.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""file and run M-x hyperdrive-open-previous-version. Now""" start="00:19:02.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""when I widen the window a little, we can see in the mode line""" start="00:19:09.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""that this is version 57. For an explanation of what the""" start="00:19:14.080" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""version numbers mean, check out the last video or the info""" start="00:19:18.280" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""manual. For now, I'll go down to her "Check out my peers"""" start="00:19:21.600" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""heading and run M-x org-store-link. Now, in my response to""" start="00:19:25.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Alice, I'll insert the link. I'll run org-transclusion-make-from-link.""" start="00:19:33.000" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Now there are two transclusions. The first""" start="00:19:39.160" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""transclusion will update whenever Alice updates her file,""" start="00:19:44.760" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""and the second transclusion is pinned to version 57.""" start="00:19:47.720" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""That covers hyperdrive-install, the peer graph, and""" start="00:19:52.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive-org-transclusion.""" start="00:19:53.357" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Feel free to check out the hyperdrive.el""" start="00:19:58.299" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""info manual in the ushin hyperdrive here, or on the""" start="00:20:00.520" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""ushin.org website. Thanks to the folks at Sopranica, we""" start="00:20:04.120" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""have a public XMPP group chat you can join, either using an""" start="00:20:08.440" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""XMPP client or anonymously from your browser. If you use""" start="00:20:11.880" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Matrix, there's also a bridge. Thank you for watching, and""" start="00:20:15.920" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""Thank you to the EmacsConf organizers and all the""" start="00:20:19.800" video="mainVideo-hyperdrive" id="subtitle"]]
[[!template text="""presenters who made this wonderful event possible.""" start="00:20:22.520" video="mainVideo-hyperdrive" id="subtitle"]]
</div>
Captioner: sachac
<div class="transcript transcript-qanda"><a name="hyperdrive-qanda-transcript"></a><h1>Q&A transcript</h1>
<div class="transcript-heading">[[!template new="1" text="""New version of hyperdrive.el""" start="00:00:00.000" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""One thing I wanted to mention was that""" start="00:00:00.000" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""as with last year, I just released a new version of""" start="00:00:02.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""hyperdrive.el and it depends on the latest release of""" start="00:00:08.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""transient.el and so if you are going to install this""" start="00:00:13.477" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""package, make sure that you restart your Emacs after you""" start="00:00:19.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""install it, if you aren't already up to date with transient,""" start="00:00:25.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""which was released yesterday. Otherwise, since it, this""" start="00:00:29.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""latest version of transient.el updates the transient""" start="00:00:35.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""prefix EIEIO class, and it won't work unless you restart""" start="00:00:40.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Emacs. Okay, well, good to know. I think that's a small price""" start="00:00:46.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to pay to be on a bleedingest of bleeding edges. All right, I""" start="00:00:50.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""see there's a question here. Let me see if I can read it. Yeah,""" start="00:00:57.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""sure. Do you want me to field it to you or do you want to read it?""" start="00:00:59.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Oh, sure. Go ahead. I'd love to hear you read it. Sure.""" start="00:01:01.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Thank you. So first question. Hi there.""" start="00:01:04.105" video="qanda-hyperdrive" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Network effects are tricky - do you know of any public shares people can join to try this tool out properly?""" start="00:01:06.687" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Thank you for the talk.""" start="00:01:06.687" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I enjoyed watching it. I tried this tool last year and it""" start="00:01:07.788" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""seemed to work well, but I don't know anyone who actually""" start="00:01:10.757" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""uses it. Network effects are tricky. Do you know of any""" start="00:01:13.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""public shares people can join to try to try this tool out""" start="00:01:16.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""properly? Thank you. Network effects are indeed tricky.""" start="00:01:19.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Yeah. That's kind of part of the purpose of the peer graph is""" start="00:01:24.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to make it easier to discover peers in a way that's more, uh,""" start="00:01:29.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""more reliable and consistent than just somebody puts a""" start="00:01:34.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""public key on Reddit and then it's lost unless somebody""" start="00:01:37.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""finds it. Um, but the, the public keys that I know of are,""" start="00:01:42.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""there's the public key for the Ushin hyperdrive, which is""" start="00:01:50.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""basically just the same content that's on the website""" start="00:01:53.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""mirrored to a hyperdrive. Um, and then there are a few other""" start="00:01:56.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""ones. There's like, uh, hypha.coop has some WebZine""" start="00:02:00.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""content accessible via HyperDrive and also via IPFS. And""" start="00:02:07.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""then mauvesignweaver has a blog that's also available on""" start="00:02:13.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Hyper. So that's blog.mauve.moe .""" start="00:02:19.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""But besides that, that's kind of the purpose of this""" start="00:02:23.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""peer graph thing is to make it easier to discover other""" start="00:02:28.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""peers. Yeah, to make it also very visual in a way, because,""" start="00:02:31.757" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you know, I personally, it's funny because it reminded me of""" start="00:02:36.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""talks that I did in the past about the trust system for PGP""" start="00:02:40.437" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""keychains, because at the end of the day, you know, this""" start="00:02:45.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""trust system, whether you trust someone absolutely or""" start="00:02:47.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""relatively, the blocking system, it feels very related.""" start="00:02:50.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Any kind of a chain of trust like this, feels very""" start="00:02:53.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""reminiscent, obviously, but it felt very nice that for you,""" start="00:02:57.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you had a dynamic display of this web of trust. Whereas for""" start="00:03:00.437" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""me, I had to make fancy diagram in ticks, in latex, just to""" start="00:03:04.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""make sure that people understood what was actually going""" start="00:03:08.837" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""on. Yeah, one thing I want to point out is just the difference""" start="00:03:14.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in utility for something like the PGP web of trust versus""" start="00:03:21.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""this kind of network of peers is, if I understand right, the""" start="00:03:25.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""main purpose of web of trust is to identify that a certain""" start="00:03:29.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""public key is actually created by the person that they claim""" start="00:03:34.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to be. So you have a way of identifying that a key actually""" start="00:03:42.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""matches like a government identity. Whereas this kind of""" start="00:03:46.037" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""network of peers has nothing to do with authenticating a key""" start="00:03:49.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""or associating a key with an identity, like a government""" start="00:03:53.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""identity. The purpose is exclusively just to get more peers""" start="00:03:57.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to be able to discover more peers who have things that are""" start="00:04:03.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""worth reading.""" start="00:04:07.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Yeah, it's a different take on a concept, but even though the""" start="00:04:07.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""concept might be the same, I find there's a wealth of things""" start="00:04:14.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that can be done thanks to this, because as you said, you""" start="00:04:18.837" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""trust someone to send you a file that is trustworthy. Well,""" start="00:04:21.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""with PGP, it's mostly about communication, but about file""" start="00:04:25.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""sharing, it just opens up completely new avenues. Yeah. Do""" start="00:04:28.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you have anything else to add? And about that, I think one of""" start="00:04:33.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the barriers to the PGP web of trust is that it required""" start="00:04:40.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""getting together to have key parties to meet people and""" start="00:04:45.477" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""verify identities. Whereas with this kind of thing,""" start="00:04:48.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""there's no need to do that because so long as your content is""" start="00:04:51.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interesting, it doesn't matter that you're not who you""" start="00:04:54.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""claim to be or that you don't even claim to be anybody. Yeah, I""" start="00:04:57.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""mean, again, as you mentioned, it's not about identifying""" start="00:05:01.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""people, it's just about identifying value, in a way, in the""" start="00:05:04.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""content that people share. It has nothing to do with""" start="00:05:08.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""verifying their actual identity. But again, it's the same""" start="00:05:10.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""technology, it's the same understanding, but for""" start="00:05:13.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""different applications, which is lovely because""" start="00:05:16.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""programming is fractals all over. The same problems repeat""" start="00:05:18.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""themselves and the same solutions show up for widely""" start="00:05:22.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""different scenarios, which is always good. Yeah. Anything""" start="00:05:24.837" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""else? One more thing. Yeah. One more thing is that I wanted to""" start="00:05:26.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""give some kudos to, um, some of the other projects that""" start="00:05:32.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""inspired the pure graph work. One of them is Adam Porter's or""" start="00:05:36.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""graph view, um, which is a, um, a tool for visualizing""" start="00:05:42.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""different nodes in an org file and how they link to one""" start="00:05:50.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""another. Um, he did. the pioneering work to figure out how to""" start="00:05:55.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""render interactive graphs with GraphViz. And so we worked""" start="00:06:01.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""together on it and kind of hacked down the last parts that""" start="00:06:07.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""weren't working correctly. And so this is inspired a lot.""" start="00:06:12.477" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""The user interface is inspired a lot by Adam's work. And then""" start="00:06:16.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""also the idea of having people that you mark as blockers and""" start="00:06:19.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""block is inspired by another project called TrustNet by""" start="00:06:26.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Alex Cobleigh. I can type in the link there. Alex, how do you""" start="00:06:31.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""spell it? Cobleigh? Yeah, I'll type it in here. Thank you. And I""" start="00:06:37.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""think the link is https://cblgh.org/trustnet. I think that is it.""" start="00:06:43.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""I'm not totally sure. But yeah. Okay, well, that's very good.""" start="00:06:50.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and thank you for giving credits to the inspiration, because""" start="00:06:57.837" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""again, nothing is done without context, and it's always nice""" start="00:07:01.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in the free software world to acknowledge people who have""" start="00:07:05.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""influenced us, because it's very nice when people start""" start="00:07:08.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""contributing, maintaining software, publishing stuff""" start="00:07:11.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that they actually start collaborating with people who've""" start="00:07:14.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""inspired them, which is a nice way to climb over the shoulders""" start="00:07:17.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""of giants, which this community likes so much. All right,""" start="00:07:21.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""moving on to the next question. We are, we have about seven""" start="00:07:25.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""more minutes for questions, so we're still good.""" start="00:07:28.677" video="qanda-hyperdrive" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense""" start="00:07:31.064" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Second question, one use case for this sharing and building upon""" start="00:07:31.064" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""second brain, sorry, one use case for this is sharing and""" start="00:07:33.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""building upon second brains, i.e. Zettelkasten, that's""" start="00:07:37.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""denote or what I'm actually doing, but a blocker for me""" start="00:07:41.437" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""wanting to make one public is wanting to use a block list or""" start="00:07:44.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""whitelist so that I can make them... Cautioning?""" start="00:07:46.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Quarantining? Containing. Yes, definitely containing.""" start="00:07:51.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Why did I go for quarantine rather than containing? I guess""" start="00:07:56.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""my brain went to a dark place from the 2020s. So I can make""" start="00:07:59.757" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""containing useful information for only me while also being""" start="00:08:04.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""useful in a public sense. Yes, I think your question is about""" start="00:08:08.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""how to keep some of the content of your Zettelkasten private""" start="00:08:16.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and only have certain parts of it be public. If your desire is""" start="00:08:22.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to only share certain files in your Zettelkasten, then you""" start="00:08:29.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""can use the hyperdrive mirror command that we demonstrated""" start="00:08:35.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in the Emacs 2023 talk. In short,""" start="00:08:43.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""It lets you specify either a regular expression that""" start="00:08:48.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""matches only some of the files that'll get uploaded from a""" start="00:08:53.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""directory of files on your machine. And only the files that""" start="00:08:58.037" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""match that regex will be put into the hyperdrive and shared""" start="00:09:02.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""with the world. But it doesn't have to be a regex. It could be a""" start="00:09:05.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""lambda. So it could match based on file size or modification""" start="00:09:08.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""time or really whatever you like. So I hope that answers your""" start="00:09:13.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""question. Great. And I personally, as someone who loves""" start="00:09:18.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""tinkering with my Elisp, I particularly like the ability to""" start="00:09:23.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""specify things with a lambda because it just opens up the""" start="00:09:27.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""ceiling of the possibilities with interactions between""" start="00:09:31.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""different parts of software. And, you know, as I have worked""" start="00:09:34.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""significantly in Org Roam, I could definitely see""" start="00:09:37.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""interactions with lambdas here to make sure that we can send""" start="00:09:39.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""and share files based on the filter list that is""" start="00:09:44.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""incrementally added to thanks to those lambdas. So thanks""" start="00:09:47.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""for this. One more thing I want to add about that is that the,""" start="00:09:51.037" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that same question of being able to upload only certain""" start="00:09:55.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""files while leaving others to be private was something""" start="00:10:00.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that was inspired by Karl Voit. I had an email thread with""" start="00:10:04.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""him in which he talked about how he uses his file tags project""" start="00:10:07.557" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""to organize his files. And he'll put a public tag on the files""" start="00:10:16.037" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""in his org database that he wants to have be published to his""" start="00:10:21.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""website. And so you could very easily just set a regular""" start="00:10:26.477" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""expression matches that public tag and then all of the other""" start="00:10:29.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""files would be not shared. Yeah, and, oh, sorry, I was, I""" start="00:10:33.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""misclicked, I was talking to production for a second. First""" start="00:10:39.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""time it happens today, so I think this is a testament to the""" start="00:10:42.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""level of tightness. But yeah, as you were saying, whatever""" start="00:10:45.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""heuristics you want is actually a good thing. I think people""" start="00:10:47.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""are a little antsy because they tend to brain dump into their""" start="00:10:51.397" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Org Roam, Zettelkasten, Denote, and they""" start="00:10:54.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""really don't want some of their personal notes being out""" start="00:10:59.837" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""there. And well, if you are worried about this, I think""" start="00:11:02.517" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""learning some Elisp and implementing some Lambda function""" start="00:11:05.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that allows you to filter with intention might be the best""" start="00:11:09.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""solution for you. So I hope we've covered the question as""" start="00:11:13.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""well as we could have. Next question is more about an idea""" start="00:11:17.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""about trying hyperdrive to distribute the Worg. Does that""" start="00:11:21.437" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""make sense to you? Yeah, I mean, you could distribute""" start="00:11:24.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""whatever you wanted. I think that'd be a great idea. Okay,""" start="00:11:28.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""great. Moving to the next question, and we have about three""" start="00:11:32.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""minutes, so I think we'll cover the last two questions and""" start="00:11:36.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""we'll move on to the next talk after that.""" start="00:11:38.317" video="qanda-hyperdrive" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)?""" start="00:11:41.024" video="qanda-hyperdrive" id="subtitle"]]</div>[[!template text="""Could you comment on the visualization thing,""" start="00:11:41.024" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Org visualization, and your""" start="00:11:43.165" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""experience with this type of content in buffers and the""" start="00:11:44.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""various possibilities, SVG, et cetera?""" start="00:11:47.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Sure. So one thing that we worked on was I added a patch that""" start="00:11:52.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""was merged as part of Emacs 30, which fixes the way that image""" start="00:11:59.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""maps scale when images are scaled. So as an Emacs 30, if you""" start="00:12:05.157" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""zoom in on an image or shrink an image or rotate an image, now""" start="00:12:14.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the image map, which is the overlay, so it's not actually an""" start="00:12:19.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""overlay, but it's, so to speak, it's an overlay that allows""" start="00:12:24.277" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""the images to be clickable based on, you know, where the""" start="00:12:26.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""actual visual display is. You can also click on it or hit help""" start="00:12:30.117" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""echo. And as of Emacs 30, now that scales with the image""" start="00:12:32.757" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""itself.""" start="00:12:37.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""The code to make that work on previous versions of Emacs, you""" start="00:12:37.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""can see the advice that we added in hyperdrive-sbb-view, that""" start="00:12:45.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""file in hyperdrive.el, if you're curious to see how you""" start="00:12:51.757" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""could polyfill that code, so to speak, to make it work on""" start="00:12:55.957" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""previous versions of Emacs before Emacs 30. But it works""" start="00:13:01.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""great. The way that this works is we generate a GraphViz""" start="00:13:06.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""string that will be sent to GraphViz to render an SVG and also""" start="00:13:11.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""render a CMAPX string. We pipe those back into Emacs and then""" start="00:13:16.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""we generate the image map from the CMAPX file and then we put""" start="00:13:23.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""that image map with the SVG, and we render it in a buffer.""" start="00:13:27.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Works pretty well. You can check out the code to see exactly""" start="00:13:32.597" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""how it works. OK, great. Well, sadly, I think we are a little""" start="00:13:37.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""short on time to cover the last two questions. So Joseph, if""" start="00:13:41.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""you want to take a little bit of time maybe to answer the""" start="00:13:44.997" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""questions in the BBB, you can just do this, even though the""" start="00:13:47.237" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""stream will be moving to the next talk. But I'll use the""" start="00:13:51.197" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""opportunity to thank you both for the talk and for your""" start="00:13:54.477" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""answers, because they were very insightful. And thank you""" start="00:13:57.717" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""so much for taking the time to be with us today. Thank you,""" start="00:14:00.317" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Leo. Enjoy the rest of the conference. Any last words in""" start="00:14:03.637" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""about 15 seconds? Thank you. I'm grateful for your taking""" start="00:14:05.877" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""all this time to make this conference possible. Well, you""" start="00:14:10.357" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""know, the conference would be nothing without the speakers""" start="00:14:14.077" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""coming and chatting, so you are the ones to thank. I mean, we""" start="00:14:16.917" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""like the thanking, obviously, but it's mostly you doing the""" start="00:14:19.677" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""work. All right. Thank you, Joseph. We'll see you later.""" start="00:14:21.797" video="qanda-hyperdrive" id="subtitle"]]
[[!template text="""Bye-bye.""" start="00:14:26.157" video="qanda-hyperdrive" id="subtitle"]]
</div>Questions or comments? Please e-mail [contact@ushin.org](mailto:contact@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20New%20in%20hyperdrive.el%3A%20quick%20install%2C%20peer%20graph%2C%20transclusion%21)
<!-- End of emacsconf-publish-after-page -->
|