summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-nangulator--introducing-n-angulator--kevin-haddock--main.vtt
blob: 99d8802bc79665c36b9b6d7e9a49fcdf1ec7aa72 (plain) (blame)
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
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
WEBVTT

00:00.240 --> 00:00:02.800
Hello. This is Kevin Haddock 

00:00:02.800 --> 00:00:05.839
to announce the introduction of N-Angulator, 

00:00:05.839 --> 00:00:07.759
hereafter called NA.

00:07.759 --> 00:00:10.240
NA allows you, the user, to supply 

00:00:10.240 --> 00:00:11.679
the meaning to your data 

00:00:11.679 --> 00:00:13.599
in a concise, efficient way. 

00:00:13.599 --> 00:00:14.880
How does it work?

00:14.880 --> 00:00:16.880
Your files are stored on your hard disk

00:00:16.880 --> 00:00:18.160
in what technically is called 

00:00:18.160 --> 00:00:20.640
a hierarchical file system.

00:20.640 --> 00:00:22.240
What this means is that 

00:00:22.240 --> 00:00:24.560
the root of the directory tree can be

00:00:24.560 --> 00:00:27.760
not only files, or what we call leaves,

00:00:27.760 --> 00:00:30.720
but also other folders/branches

00:00:30.720 --> 00:00:33.680
that themselves contain other files, leaves, 

00:00:33.680 --> 00:00:36.000
and/or branches.

00:36.000 --> 00:00:37.680
This structure is supposed to 

00:00:37.680 --> 00:00:40.079
make it easy to locate your data, 

00:00:40.079 --> 00:00:42.079
but as anyone knows who has worked with this

00:00:42.079 --> 00:00:43.600
single-dimensional file system 

00:00:43.600 --> 00:00:45.280
for any length of time,

00:45.280 --> 00:00:46.800
it can get quite frustrating 

00:00:46.800 --> 00:00:48.960
when your file would fit equally well 

00:00:48.960 --> 00:00:52.079
on more than one branch of the tree.

00:52.079 --> 00:00:53.920
What are you to do?

00:53.920 --> 00:00:55.920
Create multiple copies everywhere

00:00:55.920 --> 00:00:57.840
it might appropriately fit.

00:00:57.840 --> 00:00:59.039
What if the file was something 

00:00:59.039 --> 00:01:01.120
people would occasionally modify,

00:01:01.120 --> 00:01:04.879
like a spreadsheet or a computer source file?

01:04.879 --> 00:01:07.760
You would have to hunt it down in every place 

00:01:07.760 --> 00:01:11.840
and apply those changes everywhere by hand.

01:11.840 --> 00:01:14.720
Also, let's say not only did you want 

00:01:14.720 --> 00:01:17.040
to put the file in multiple places, 

00:01:17.040 --> 00:01:18.799
but it was also more appropriate 

00:01:18.799 --> 00:01:21.280
to give it different names?

01:21.280 --> 00:01:23.280
Plus, let's say in different areas

00:01:23.280 --> 00:01:25.119
of the tree, there were files

00:01:25.119 --> 00:01:26.560
with the same name

01:26.560 --> 00:01:29.280
that had totally different content?

01:29.280 --> 00:01:31.280
Then updating all the different instances

00:01:31.280 --> 00:01:32.640
of the file you need 

00:01:32.640 --> 00:01:35.200
would become more and more of a nightmare.

01:35.200 --> 00:01:37.920
In addition, wouldn't it be great

00:01:37.920 --> 00:01:39.520
if we could all speed up 

00:01:39.520 --> 00:01:42.479
the actual searching for a particular file

01:42.479 --> 00:01:45.680
by selecting multiple branches in the tree

00:01:45.680 --> 00:01:47.200
and simply asking the computer 

00:01:47.200 --> 00:01:49.680
to tell us which branches under those

01:49.680 --> 00:01:52.560
contain the same file and which do not?

01:52.560 --> 00:01:54.000
This would be especially great 

00:01:54.000 --> 00:01:56.719
if it were instantaneous.

01:56.719 --> 00:01:58.640
Well, believe it or not, this is what NA

01:58.640 --> 00:02:00.079
brings to the table.

02:00.079 --> 00:02:03.040
In fact, this is how NA got its name.

02:03.040 --> 00:02:05.040
Your data is located by a process 

00:02:05.040 --> 00:02:06.960
very similar to the triangulation 

00:02:06.960 --> 00:02:09.119
used to locate radio signals, 

00:02:09.119 --> 00:02:10.160
only we are not limited 

00:02:10.160 --> 00:02:12.000
to just two or three angles, 

00:02:12.000 --> 00:02:14.720
but instead, many dozens can be used,

02:14.720 --> 00:02:16.879
this makes NA appear to be 

00:02:16.879 --> 00:02:18.640
what is known in computer lingo 

00:02:18.640 --> 00:02:21.760
as an n-dimensional sparse array.

02:21.760 --> 00:02:23.599
If that sounds complex, don't worry. 

00:02:23.599 --> 00:02:25.280
It will become clear when you see it 

00:02:25.280 --> 00:02:28.720
in operation in a couple of minutes.

02:28.720 --> 00:02:32.560
To start out, here we see the NA main screen.

02:32.560 --> 00:02:36.080
There are two vital aspects of mastering NA.

00:02:36.080 --> 00:02:37.760
First is the actual mechanics 

00:02:37.760 --> 00:02:39.120
of using the program,

00:02:39.120 --> 00:02:40.480
which should be second nature

00:02:40.480 --> 00:02:41.920
for most anyone familiar with

02:41.920 --> 00:02:46.160
either a Windows or Unix/apple file system.

02:46.160 --> 00:02:48.080
We have the same operations 

00:02:48.080 --> 00:02:50.400
as one might do with Windows Explorer

02:50.400 --> 00:02:52.560
or any number of other file tools, 

00:02:52.560 --> 00:02:54.560
but what we also do 

00:02:54.560 --> 00:02:56.080
that generally they do not

00:02:56.080 --> 00:02:58.000
is place a leaf on a branch, 

00:02:58.000 --> 00:03:00.560
then cruise around adding links to that leaf

03:00.560 --> 00:03:02.720
on a multitude of other branches, 

00:03:02.720 --> 00:03:05.120
which could include creating, renaming, 

00:03:05.120 --> 00:03:07.360
or restructuring more branches on the fly

03:07.360 --> 00:03:10.480
as needed. Plus, when we find ourselves 

00:03:10.480 --> 00:03:12.319
hunting for that file, 

00:03:12.319 --> 00:03:13.840
we can incrementally select 

00:03:13.840 --> 00:03:15.120
a stack of branches

00:03:15.120 --> 00:03:17.200
while seeking what the latter branches

00:03:17.200 --> 00:03:19.920
have in common with the earlier ones,

03:19.920 --> 00:03:22.720
to make putting one's finger on exactly

00:03:22.720 --> 00:03:26.239
the item they're looking for a snap.

03:26.239 --> 00:03:28.319
Secondly, you have the actual art 

00:03:28.319 --> 00:03:29.680
of organizing your data, 

00:03:29.680 --> 00:03:31.120
and NA doesn't really put

00:03:31.120 --> 00:03:32.640
any limitations on this, 

00:03:32.640 --> 00:03:34.799
other than the underlying limitations 

00:03:34.799 --> 00:03:36.560
of the file system.

03:36.560 --> 00:03:39.760
Let's get started, shall we?

03:39.760 --> 00:03:41.920
Right-clicking the mouse button here

03:41.920 --> 00:03:43.760
will bring up what we call 

00:03:43.760 --> 00:03:46.000
a branch navigation menu, 

00:03:46.000 --> 00:03:46.959
because it allows you 

00:03:46.959 --> 00:03:48.239
to move around the tree 

00:03:48.239 --> 00:03:50.159
or commence a new angle.

03:50.159 --> 00:03:52.480
We have chosen to organize our data

00:03:52.480 --> 00:03:55.519
with a hopper to put new items in,

00:03:55.519 --> 00:03:57.360
and the initial branches representing

00:03:57.360 --> 00:03:59.519
who, what, where, why, and how. 

00:03:59.519 --> 00:04:01.280
We right-click on the root 

00:04:01.280 --> 00:04:03.439
and select 0hopper,

04:03.439 --> 00:04:06.000
and that branch is added to the display.

04:06.000 --> 00:04:08.080
If we middle-click on the branch,

04:08.080 --> 00:04:09.360
we get what is called 

00:04:09.360 --> 00:04:11.280
the branch command menu,

00:04:11.280 --> 00:04:12.959
which gives us many options, 

00:04:12.959 --> 00:04:13.920
not the least of which 

00:04:13.920 --> 00:04:15.920
is to create a leaf here.

04:15.920 --> 00:04:18.000
Remember this item as we progress,

04:18.000 --> 00:04:20.320
because it will become important.

04:20.320 --> 00:04:22.960
Next we pick what we know is a leaf item,

04:22.960 --> 00:04:24.720
due to the fact that it does not have 

00:04:24.720 --> 00:04:30.960
a trailing slash.

04:30.960 --> 00:04:32.960
Now, when we right-click on it,

04:32.960 --> 00:04:35.040
notice the navigation menu is limited to

00:04:35.040 --> 00:04:37.040
the two items: New Angle

00:04:37.040 --> 00:04:40.960
and the leaf name itself.

04:40.960 --> 00:04:43.680
If we want to view or edit that leaf item,

00:04:43.680 --> 00:04:45.440
we can select that item.

04:45.440 --> 00:04:47.280
Now that we have selected a leaf, 

00:04:47.280 --> 00:04:48.560
let's middle-click on it

00:04:48.560 --> 00:04:49.520
to bring up what we call

00:04:49.520 --> 00:04:51.600
the leaf command menu.

04:51.600 --> 00:04:54.080
This shows us a bunch of standard options

00:04:54.080 --> 00:04:56.160
one might do in a typical file tool

00:04:56.160 --> 00:04:58.320
like Microsoft Explorer.

04:58.320 --> 00:05:00.479
Since we want to do what they cannot do,

05:00.479 --> 00:05:01.680
let's right-click the leaf 

00:05:01.680 --> 00:05:04.639
and select New Angle.

05:04.639 --> 00:05:06.400
Notice that another slash has appeared 

00:05:06.400 --> 00:05:09.840
below the displayed path of the leaf.

05:09.840 --> 00:05:11.520
Right-click on it, and you will see

00:05:11.520 --> 00:05:14.639
the root branch navigation menu appears again,

05:14.639 --> 00:05:19.039
but now 0hopper entry has a line 

00:05:19.039 --> 00:05:20.960
both above and below it.

05:20.960 --> 00:05:23.199
Items in between these two lines 

00:05:23.199 --> 00:05:24.560
are called members,

00:05:24.560 --> 00:05:27.520
and items below them are called others.

05:27.520 --> 00:05:29.680
What this is saying is that 

00:05:29.680 --> 00:05:32.160
the previously selected angle,

05:32.160 --> 00:05:34.160
which can be a single leaf

05:34.160 --> 00:05:35.840
as in this instance,

05:35.840 --> 00:05:37.360
or can be all of the leaves 

00:05:37.360 --> 00:05:38.960
under a particular branch 

00:05:38.960 --> 00:05:43.039
chosen to navigate new angle from,

05:43.039 --> 00:05:44.880
shares content with the items 

00:05:44.880 --> 00:05:47.680
under the member area of the menu,

00:05:47.680 --> 00:05:50.880
but items in the others area do not.

05:50.880 --> 00:05:53.600
Since the first angle is 0hopper,

05:53.600 --> 00:05:56.800
of course it shares content with itself,

05:56.800 --> 00:05:59.199
and so it appears in members.

05:59.199 --> 00:06:01.199
Now let's click the middle button 

00:06:01.199 --> 00:06:02.960
on the root branch, and see what 

00:06:02.960 --> 00:06:07.360
the branch command menu has to say.

06:07.360 --> 00:06:09.280
Notice that the entry that used to say

06:09.280 --> 00:06:13.120
Create a New Leaf now says Add a Link.

06:13.120 --> 00:06:15.039
This is because we have already selected

06:15.039 --> 00:06:17.360
a leaf, and now we want to add links 

00:06:17.360 --> 00:06:20.479
to it rather than create a new one.

06:20.479 --> 00:06:21.840
If you go back to the root 

00:06:21.840 --> 00:06:24.319
and reselect 0hopper,

06:24.319 --> 00:06:29.039
that option will revert back again.

06:29.039 --> 00:06:40.880
So let's add a link under person.

06:40.880 --> 00:06:42.720
We right-click the root, 

00:06:42.720 --> 00:06:46.720
select person, and let's add a link.

06:46.720 --> 00:06:50.560
Notice the bottom area (called the minibuffer) 

00:06:50.560 --> 00:06:53.360
gives us the proposed name of the link,

06:53.360 --> 00:06:55.680
and we choose to accept it by hitting enter, 

00:06:55.680 --> 00:07:09.759
or edit it to taste first.

07:09.759 --> 00:07:10.960
Now let's go back up to 

00:07:10.960 --> 00:07:13.120
the end of the prior angle,

07:13.120 --> 00:07:15.360
select New Angle again,

07:15.360 --> 00:07:18.319
and then click the resultant /, 

00:07:18.319 --> 00:07:20.240
and see what are members 

00:07:20.240 --> 00:07:21.840
and what are others.

07:21.840 --> 00:07:24.319
Notice that the 0hopper and person

07:24.319 --> 00:07:25.759
are members.

07:25.759 --> 00:07:28.319
NA knows you added content to the person,

00:07:28.319 --> 00:07:32.160
so it moves to members.

07:32.160 --> 00:07:33.599
Now let's add some more links 

00:07:33.599 --> 00:07:35.360
and perhaps a few subdirectories 

00:07:35.360 --> 00:08:06.960
for this item.

08:06.960 --> 00:08:08.960
Notice how we can even eliminate

00:08:08.960 --> 00:08:11.039
the file name extension.

08:11.039 --> 00:08:13.680
It will still know how to display the item

00:08:13.680 --> 00:08:15.440
as it actually analyzes the file 

00:08:15.440 --> 00:08:17.120
to determine its type.

08:17.120 --> 00:08:19.120
This greatly cleans up your metadata 

00:08:19.120 --> 00:08:40.719
and makes it more human.

08:40.719 --> 00:08:41.839
Now let's pick a branch 

00:08:41.839 --> 00:08:43.519
from one of the menus.

08:43.519 --> 00:08:44.880
For instance, let's look and see 

00:08:44.880 --> 00:08:54.880
where any events broadcast were done from.

08:54.880 --> 00:09:06.640
We select event, broadcast, then New Angle,

09:06.640 --> 00:09:09.600
and we can see California is in members.

09:09.600 --> 00:09:11.600
Now we can also do New Angle

00:09:11.600 --> 00:09:13.920
and select person,

09:13.920 --> 00:09:16.160
and we can see who did them.

09:16.160 --> 00:09:18.720
Another thing we can do is pick a leaf

09:18.720 --> 00:09:19.920
and quickly display 

00:09:19.920 --> 00:09:21.920
all angles or links for it,

00:09:21.920 --> 00:09:24.160
or if we are willing to wait a little longer,

00:09:24.160 --> 00:09:26.720
have NA construct all the display items

00:09:26.720 --> 00:09:28.320
with Edit All Angles,

00:09:28.320 --> 00:09:30.160
so we can manipulate them

00:09:30.160 --> 00:09:31.440
just as if we had entered 

00:09:31.440 --> 00:09:44.320
or selected them by hand.

09:44.320 --> 00:09:46.080
There are many more tools in NA 

00:09:46.080 --> 00:09:47.440
to handle sets of leaves 

00:09:47.440 --> 00:09:50.320
such as scanned pages of a book,

09:50.320 --> 00:09:53.040
promoting /, demoting nodes,

09:53.040 --> 00:09:54.560
and so forth.

09:54.560 --> 00:09:55.560
Thanks for watching.

00:09:55.560 --> 00:09:58.040
[captions by sachac]