summaryrefslogtreecommitdiffstats
path: root/2025/captions/emacsconf-2025-hyperboleqa--questions-and-answers-to-help-you-fly-with-hyperbole--bob-weiner--main.vtt
blob: d20eabe438c7a2cb65f3f1a10c7d0c81cae7f8bf (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
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
WEBVTT

00:00:00.000 --> 00:00:12.239
All right, you're good to go. Are people here?

00:00:12.240 --> 00:00:15.639
Let me read the first question to you since I'm here.

00:00:15.640 --> 00:00:17.639
The first question here is,

00:00:17.640 --> 00:00:20.599
I'm excited to know opinion and current state

00:00:20.600 --> 00:00:23.799
of using NCP and AI for PKMs and PIEs.

00:00:23.800 --> 00:00:28.639
Since they do carry a lot of burden out of us, it means a lot of process.

00:00:28.640 --> 00:00:33.439
How does our pipeline stand with the coming days?

00:00:33.440 --> 00:00:35.119
Thanks for the question.

00:00:35.120 --> 00:00:40.239
AI is obviously on everybody's mind.

00:00:40.240 --> 00:00:43.719
We haven't done a lot of integration

00:00:43.720 --> 00:00:47.199
with any of the popular AI engines,

00:00:47.200 --> 00:00:50.519
but I think as you'll see through this Q&A session,

00:00:50.520 --> 00:00:54.559
Hyperbole's function is really to interlink

00:00:54.560 --> 00:00:57.959
your information everywhere throughout Emacs.

00:00:57.960 --> 00:01:02.279
And so, whether you're using a chatbot

00:01:02.280 --> 00:01:04.919
in a specific buffer,

00:01:04.920 --> 00:01:11.359
you can use hyperbole implicit links, implicit buttons

00:01:11.360 --> 00:01:17.039
to activate different actions there as well.

00:01:17.040 --> 00:01:20.399
So sometimes it takes a bit of customization,

00:01:20.400 --> 00:01:25.999
a small amount of two to seven lines of code to do that.

00:01:26.000 --> 00:01:30.839
As we get to working with more of these engines,

00:01:30.840 --> 00:01:34.119
we'll build that into the core part of Hyperbole.

00:01:34.120 --> 00:01:40.039
But right now, that's left as an extension

00:01:40.040 --> 00:01:43.359
for users who are heavily using MCP

00:01:43.360 --> 00:01:45.879
or other protocols right now.

00:01:45.880 --> 00:01:50.239
We have, for example, integrated

00:01:50.240 --> 00:01:57.559
with LSPs, you know, for coding and have that interface through xref

00:01:57.560 --> 00:02:01.199
and basically using the single key, the action key,

00:02:01.200 --> 00:02:02.719
which is made a return.

00:02:02.720 --> 00:02:08.919
You can jump around to any of your source definitions

00:02:08.920 --> 00:02:10.999
from any reference in almost any language

00:02:11.000 --> 00:02:14.599
that anybody uses today. So you can extrapolate from that

00:02:14.600 --> 00:02:17.119
how that might work with AI as well.

00:02:17.120 --> 00:02:22.999
And I think you'll see later when we talk about HiWiki

00:02:23.000 --> 00:02:26.719
that we're now enabling just just wiki words

00:02:26.720 --> 00:02:30.079
to be buttons in hyperbole.

00:02:30.080 --> 00:02:33.999
So those could be part of your chat with an AI

00:02:34.000 --> 00:02:37.519
and you just click on it and you jump right to all your references

00:02:37.520 --> 00:02:49.119
associated with that terminology. Thanks for the question.

00:02:49.120 --> 00:02:51.839
Should I just go through the second question?

00:02:51.840 --> 00:02:54.199
I thought people would be glad.

00:02:54.200 --> 00:02:56.559
As a normal user who codes and takes notes,

00:02:56.560 --> 00:02:58.759
I really want to deep dive and learn Hyperbole,

00:02:58.760 --> 00:03:02.079
but always end up winding back up to Embark

00:03:02.080 --> 00:03:04.399
and Org Mode being the better system.

00:03:04.400 --> 00:03:06.479
For me, Hyperbole looks over engineering

00:03:06.480 --> 00:03:08.079
or over the peer system,

00:03:08.080 --> 00:03:10.119
which other individual packages do well.

00:03:10.120 --> 00:03:15.399
And outside DMAC, there's no system supporting Hyperbole or any usability.

00:03:15.400 --> 00:03:17.519
And I think you've cited answering

00:03:17.520 --> 00:03:21.159
that already, so go ahead.

00:03:21.160 --> 00:03:26.919
Right, hyperbole is large, but there's reasons behind that.

00:03:26.920 --> 00:03:30.599
We're just trying to link all your information in Emacs.

00:03:30.600 --> 00:03:38.079
So I think you can see my screen here in Emacs.

00:03:38.080 --> 00:03:45.439
So for example, you can take any Lisp expression,

00:03:45.440 --> 00:03:49.239
even a variable like here we have in hyperbole

00:03:49.240 --> 00:03:50.959
Hyperbdur variable

00:03:50.960 --> 00:03:53.519
and I just hit the action key made a return

00:03:53.520 --> 00:03:57.759
and in my mini buffer I see the value of that variable,

00:03:57.760 --> 00:04:01.599
but I could just as well take any other expression

00:04:01.600 --> 00:04:03.919
and take the outer parens off

00:04:03.920 --> 00:04:05.679
and change them to angle brackets

00:04:05.680 --> 00:04:08.239
and now that's a live Hyper button

00:04:08.240 --> 00:04:12.079
could be in a comment in a programming buffer in this case.

00:04:12.080 --> 00:04:15.679
It's in K outliner buffer,

00:04:15.680 --> 00:04:19.159
which is a an auto-numbered outliner part of hyperbole.

00:04:19.160 --> 00:04:23.599
So let's just try this and say made a return.

00:04:23.600 --> 00:04:28.719
I pressed and it ran occur and found all the occurrences of buttons.

00:04:28.720 --> 00:04:31.919
And similarly in here, I could just jump and go

00:04:31.920 --> 00:04:35.519
to any of these lines directly

00:04:35.520 --> 00:04:37.919
by hitting made a return in that buffer as well.

00:04:37.920 --> 00:04:39.799
So all your text, all your sort

00:04:39.800 --> 00:04:44.879
of what we call implicit links become live and hyperbole.

00:04:44.880 --> 00:04:46.519
And you didn't have to learn much.

00:04:46.520 --> 00:04:48.559
You just learn, you know, if you know a little Lisp

00:04:48.560 --> 00:04:50.279
or how to type any expression,

00:04:50.280 --> 00:04:52.879
then you just change the outer brackets.

00:04:52.880 --> 00:04:55.079
And all of a sudden, you have hyperbuttons.

00:04:55.080 --> 00:05:01.079
So hyperbole, you can learn a little bit at a time.

00:05:01.080 --> 00:05:04.479
And although it seems daunting at first

00:05:04.480 --> 00:05:06.879
because it has so much functionality,

00:05:06.880 --> 00:05:09.679
very large and rich architecture.

00:05:09.680 --> 00:05:13.639
But what we do is teach people one piece at a time.

00:05:13.640 --> 00:05:17.919
So just to continue on that a little bit,

00:05:17.920 --> 00:05:19.639
implicit buttons are buttons

00:05:19.640 --> 00:05:23.359
that exist just from the text pattern in the buffer.

00:05:23.360 --> 00:05:28.279
So you saw an example of changing Lisp into implicit buttons right there.

00:05:28.280 --> 00:05:30.959
I could do keystrokes.

00:05:30.960 --> 00:05:33.119
I can just type them out in my buffer

00:05:33.120 --> 00:05:34.879
and surround them with braces.

00:05:34.880 --> 00:05:37.439
So here's something, let's see,

00:05:37.440 --> 00:05:41.079
this is actually a command in the K Outliner

00:05:41.080 --> 00:05:45.799
to jump to the cell numbered four. So let's just do that.

00:05:45.800 --> 00:05:47.599
And it took me right there, right?

00:05:47.600 --> 00:05:51.759
So I'm just pressing made a return to activate these buttons.

00:05:51.760 --> 00:05:56.279
Similarly, any sort of, this is a complex example,

00:05:56.280 --> 00:05:59.479
but any path name I can surround with double quotes,

00:05:59.480 --> 00:06:01.079
and it's a live hyper button.

00:06:01.080 --> 00:06:05.479
In this case, I want to jump to a path name called readme.md,

00:06:05.480 --> 00:06:08.359
but it's in a directory that's specified

00:06:08.360 --> 00:06:13.519
by an actual list variable. And then I want to go directly

00:06:13.520 --> 00:06:17.479
to a headline within that file called hyperbole manual.

00:06:17.480 --> 00:06:19.759
And within that headline, I wanna go

00:06:19.760 --> 00:06:22.719
to the eighth line relative to that.

00:06:22.720 --> 00:06:24.879
So all I have to do, made a return again,

00:06:24.880 --> 00:06:28.959
and boom, I'm in that, I'm directly linked to that.

00:06:28.960 --> 00:06:33.799
And Hyperbole has ways that you can just split your windows like this

00:06:33.800 --> 00:06:38.079
and create that reference in the source buffer right there.

00:06:38.080 --> 00:06:41.999
You just press a few keys and it'll embed that link.

00:06:42.000 --> 00:06:43.839
We'll see that a little later.

00:06:43.840 --> 00:06:47.319
Another example, so all of these buttons,

00:06:47.320 --> 00:06:49.599
if I just show you here,

00:06:49.600 --> 00:06:52.279
you can press Control-H, Capital-A anytime.

00:06:52.280 --> 00:06:54.319
and it will show you exactly

00:06:54.320 --> 00:06:56.559
what made a return will do in that context.

00:06:56.560 --> 00:06:59.479
In this case, it's an implicit button,

00:06:59.480 --> 00:07:03.119
and it shows you even where the button starts and ends,

00:07:03.120 --> 00:07:06.679
what type of action it will run,

00:07:06.680 --> 00:07:08.039
it's a link to a file line,

00:07:08.040 --> 00:07:09.999
and then what arguments it takes.

00:07:10.000 --> 00:07:13.999
So Hyperbole extracts all this meta information

00:07:14.000 --> 00:07:16.679
just from the text in your buffer

00:07:16.680 --> 00:07:19.119
and displays it to you conveniently

00:07:19.120 --> 00:07:22.319
so you can know before you ever touch a hyper button

00:07:22.320 --> 00:07:24.479
if it will do something that you want it to do.

00:07:24.480 --> 00:07:28.559
Here we have a fairly advanced button

00:07:28.560 --> 00:07:31.519
that's very simple to do. You just specify a bug in Emacs

00:07:31.520 --> 00:07:34.279
that you want to reference to.

00:07:34.280 --> 00:07:40.039
Notice no delimiters, just bug pound, whatever, made a return.

00:07:40.040 --> 00:07:45.479
And I'm in GNU's reading the conversation for that bug.

00:07:45.480 --> 00:07:48.719
And I can just, you know, move

00:07:48.720 --> 00:07:50.919
through all the conversation.

00:07:50.920 --> 00:07:56.039
I can quit out of there and go back to where I was.

00:07:56.040 --> 00:07:59.599
So very, very easy to use these implicit buttons

00:07:59.600 --> 00:08:00.879
because they're already there

00:08:00.880 --> 00:08:03.679
throughout your Emacs buffers.

00:08:03.680 --> 00:08:06.119
I described the control HA, what that does.

00:08:06.120 --> 00:08:09.359
And there's other types of buttons

00:08:09.360 --> 00:08:11.559
that we can get into as questions go on,

00:08:11.560 --> 00:08:14.719
but you can create your own explicit buttons

00:08:14.720 --> 00:08:18.719
that have a little slightly different delimiter than you see

00:08:18.720 --> 00:08:19.799
in the implicit buttons.

00:08:19.800 --> 00:08:24.759
And this one I just put in here to show you that

00:08:24.760 --> 00:08:30.439
If you use it and you go, this is the hyperbole to do list,

00:08:30.440 --> 00:08:31.879
which is an org buffer.

00:08:31.880 --> 00:08:35.079
But I wanted to show in here that similarly,

00:08:35.080 --> 00:08:37.799
we have implicit buttons for to do's in the work.

00:08:37.800 --> 00:08:39.679
And when we hit made a return,

00:08:39.680 --> 00:08:42.679
it just changes the state of that to do.

00:08:42.680 --> 00:08:44.919
And I can cycle through those

00:08:44.920 --> 00:08:47.399
but even better with the prefix argument

00:08:47.400 --> 00:08:50.399
if I have multiple sequences of to do's

00:08:50.400 --> 00:08:53.519
because there's Bob and Matt's that maintain hyperbole

00:08:53.520 --> 00:08:55.999
so I can shift to Bob's to do's

00:08:56.000 --> 00:08:57.759
with control you made a return

00:08:57.760 --> 00:09:00.079
and then cycle through the states for me

00:09:00.080 --> 00:09:05.039
So very very easy to use,

00:09:05.040 --> 00:09:08.319
you know something that's a little bit more difficult to do

00:09:08.320 --> 00:09:16.239
I think in org without it and So that's an explicit button

00:09:16.240 --> 00:09:19.479
where I had to actually say I want to create this button,

00:09:19.480 --> 00:09:21.599
and I had to specify what type it is.

00:09:21.600 --> 00:09:23.759
If I show you the information there again,

00:09:23.760 --> 00:09:25.879
you see it has a little different type

00:09:25.880 --> 00:09:29.679
called a keyboard key, which runs just the key sequence.

00:09:29.680 --> 00:09:34.759
So you're starting to see already

00:09:34.760 --> 00:09:36.839
that explicit buttons have a type

00:09:36.840 --> 00:09:38.159
that's connected to an action

00:09:38.160 --> 00:09:41.199
that an implicit button can do as well.

00:09:41.200 --> 00:09:42.959
So all of this ties back together.

00:09:42.960 --> 00:09:47.079
And finally, there's a homepage that Hyperbole has,

00:09:47.080 --> 00:09:49.159
a personal homepage that you have.

00:09:49.160 --> 00:09:52.999
You hit Control-H-H, which is our mini-buffer menu,

00:09:53.000 --> 00:09:58.319
and then you hit what is it, B for button file

00:09:58.320 --> 00:10:01.439
and then P for personal file.

00:10:01.440 --> 00:10:05.239
And that just brings you to basically a set of links

00:10:05.240 --> 00:10:10.199
that you can create buttons in any format you want.

00:10:10.200 --> 00:10:12.479
There's no structure that you see here.

00:10:12.480 --> 00:10:18.759
But the nice thing is that all of these buttons that have these names, as we call them,

00:10:18.760 --> 00:10:20.279
with the delimiters here,

00:10:20.280 --> 00:10:23.799
can be referenced now as what we call global buttons

00:10:23.800 --> 00:10:28.239
wherever you are in Emacs. So I'm in a separate buffer here

00:10:28.240 --> 00:10:30.719
and say I want to jump to that to-do button

00:10:30.720 --> 00:10:33.279
that's labeled TD on line 10 down there.

00:10:33.280 --> 00:10:35.519
No matter what I have on screen,

00:10:35.520 --> 00:10:39.199
I can hit control H, H, G for global button,

00:10:39.200 --> 00:10:43.719
A for activate, and then it gives me a list of those.

00:10:43.720 --> 00:10:47.119
So I know it's TD, I just put TD in.

00:10:47.120 --> 00:10:52.159
Okay, that's a path link problem I have,

00:10:52.160 --> 00:10:56.359
but when I fix the link, it would go to it.

00:10:56.360 --> 00:10:58.239
So you can create buttons

00:10:58.240 --> 00:11:01.639
that you can access in any mode, anywhere,

00:11:01.640 --> 00:11:05.799
and just give them quick names, and it's very easy.

00:11:05.800 --> 00:11:08.559
So that kind of gives you an idea

00:11:08.560 --> 00:11:11.719
of how you can get very productive

00:11:11.720 --> 00:11:14.999
with hyperbole with just a few simple techniques.

00:11:15.000 --> 00:11:30.439
You still there Sacha? Yep, I'm still here.

00:11:30.440 --> 00:11:37.079
I have too many tabs.

00:11:37.080 --> 00:11:46.199
So the question is, I've been using activities.el

00:11:46.200 --> 00:11:48.879
and bufferload to save dedicated workplaces,

00:11:48.880 --> 00:11:52.159
open buffers, and decisions in tabs and frames

00:11:52.160 --> 00:11:54.599
for tasks and projects across the next sessions.

00:11:54.600 --> 00:12:00.119
Can I do something similar with Hyper-V? Yes, you can.

00:12:00.120 --> 00:12:03.719
And activities is a nice package from alphapapa.

00:12:03.720 --> 00:12:07.399
We've actually been working with it lately.

00:12:07.400 --> 00:12:11.159
So we're probably in the next month or so

00:12:11.160 --> 00:12:13.479
we'll have a specific integration

00:12:13.480 --> 00:12:15.999
to activities built into Hyperbole.

00:12:16.000 --> 00:12:21.519
But right now, we don't. But of course, you can call

00:12:21.520 --> 00:12:23.279
any of its functions or key bindings

00:12:23.280 --> 00:12:26.079
using the techniques that I just showed you earlier.

00:12:26.080 --> 00:12:33.599
But what we do have built in if you go to the menu again.

00:12:33.600 --> 00:12:35.959
and you see control HH,

00:12:35.960 --> 00:12:43.039
and then there's a W, Windows, WinConfig menu,

00:12:43.040 --> 00:12:48.399
and there's two types of window configurations that you can save here.

00:12:48.400 --> 00:12:52.599
They are, right now, they're per Emacs session.

00:12:52.600 --> 00:12:55.759
They're not stored beyond that,

00:12:55.760 --> 00:12:58.519
but we'll probably add that in as well,

00:12:58.520 --> 00:12:59.879
or we'll use activities for that.

00:12:59.880 --> 00:13:07.199
so the two types are you can either just save a window configuration in a frame

00:13:07.200 --> 00:13:10.319
to actually it stores the frame configuration

00:13:10.320 --> 00:13:13.359
to a ring just like the kill ring

00:13:13.360 --> 00:13:16.119
so you have the three commands at the right

00:13:16.120 --> 00:13:21.239
you can save with an s you can pop one off the ring with p

00:13:21.240 --> 00:13:25.959
or you can just yank and keep cycling through with a y

00:13:25.960 --> 00:13:31.119
and it will restore the frame configuration that you saved.

00:13:31.120 --> 00:13:35.079
Similarly you can just do it by name

00:13:35.080 --> 00:13:36.839
and you can say I want to add a name

00:13:36.840 --> 00:13:45.799
and then you know just give it a name again win win C and store it and it stores it there

00:13:45.800 --> 00:13:48.559
and then you can get back to it by name as well.

00:13:48.560 --> 00:13:51.319
So fairly fairly easy to use as well

00:13:51.320 --> 00:13:54.999
and again integrated in the same simple menu system.

00:13:55.000 --> 00:13:57.079
So thanks for that question.

00:13:57.080 --> 00:14:07.119
Should I just go to the next question?

00:14:07.120 --> 00:14:10.079
How well do hyperbole and org mode work together?

00:14:10.080 --> 00:14:12.759
Is there any kind of integration?

00:14:12.760 --> 00:14:18.079
Yes, in fact, that's really good.

00:14:18.080 --> 00:14:22.359
I'll just mention something. Let me go back to my homepage.

00:14:22.360 --> 00:14:26.679
I just stored that here. So we gave a talk at an earlier

00:14:26.680 --> 00:14:31.559
Emacs conference right here on org

00:14:31.560 --> 00:14:33.199
and hyperbole integration.

00:14:33.200 --> 00:14:35.919
So that's a good one to go back to.

00:14:35.920 --> 00:14:39.479
And I believe it's in this files

00:14:39.480 --> 00:14:41.599
included with hyperbole as well.

00:14:41.600 --> 00:14:45.079
So you can learn various techniques

00:14:45.080 --> 00:14:48.199
of how the action key helps you in org.

00:14:48.200 --> 00:14:51.679
It does special things in tables.

00:14:51.680 --> 00:15:00.239
And there's some nice support for, for example, working with code blocks.

00:15:00.240 --> 00:15:02.639
Let me see where that is. Okay, so right back here.

00:15:02.640 --> 00:15:09.759
So you can run them with the action key.

00:15:09.760 --> 00:15:15.039
You can refresh the output and do things like that.

00:15:15.040 --> 00:15:17.559
So again, if I just hit Control-H-A,

00:15:17.560 --> 00:15:20.439
it'll tell me that it's in SmartOrg,

00:15:20.440 --> 00:15:24.359
and it'll give me all the different contexts that that operates within.

00:15:24.360 --> 00:15:26.559
So there's a lot that it does in here.

00:15:26.560 --> 00:15:30.479
And you can see it would point on the dir value of a code block definition

00:15:30.480 --> 00:15:33.559
that will actually display a summary

00:15:33.560 --> 00:15:35.199
and all sorts of functionality.

00:15:35.200 --> 00:15:37.439
So the integration is quite tight.

00:15:37.440 --> 00:15:39.679
And one of the things we do

00:15:39.680 --> 00:15:41.799
since made return is used in org,

00:15:41.800 --> 00:15:44.719
we have a customization setting, C even O.

00:15:44.720 --> 00:15:48.239
And you have these three settings where you can say,

00:15:48.240 --> 00:15:53.359
I want me to return to, I want hyperbole to control that

00:15:53.360 --> 00:15:57.279
and everything that the action key does I want to happen.

00:15:57.280 --> 00:16:00.479
Or I only want hyperbole to control

00:16:00.480 --> 00:16:03.239
when I'm over a hyperbole implicit explicit button.

00:16:03.240 --> 00:16:09.159
Or I want org to control that key and never use hyperbole.

00:16:09.160 --> 00:16:10.799
So you just set that once,

00:16:10.800 --> 00:16:13.919
it's persistent across sessions and you're good to go.

00:16:13.920 --> 00:16:16.399
And again, it's built right into the menus.

00:16:16.400 --> 00:16:23.919
So but even following that we've the latest addition to hyperbole is Something

00:16:23.920 --> 00:16:25.799
and this is the first time

00:16:25.800 --> 00:16:29.799
we're really showing it publicly is the high wiki

00:16:29.800 --> 00:16:33.559
Which is a new subsystem as we call it

00:16:33.560 --> 00:16:44.719
and this is I think the best wiki capability in Emacs now what it does is it automatically highlights

00:16:44.720 --> 00:16:48.119
let me turn it on I have to turn on high wiki mode

00:16:48.120 --> 00:16:54.679
and you see those wiki words now got highlighted so any any wiki word

00:16:54.680 --> 00:16:58.839
which is the capitalized alpha word you know

00:16:58.840 --> 00:17:01.439
so you can have multiple capitals in there

00:17:01.440 --> 00:17:06.039
and I'll get recognized can be used as a wiki word

00:17:06.040 --> 00:17:09.519
so for example when I just type hi wiki here

00:17:09.520 --> 00:17:11.559
it automatically recognizes it,

00:17:11.560 --> 00:17:14.239
and you see it turned it into a hyperlink button,

00:17:14.240 --> 00:17:18.159
which again, Control-H-A will tell me exactly what it does there.

00:17:18.160 --> 00:17:23.119
But I can just hit the action key, made a return,

00:17:23.120 --> 00:17:26.879
and it'll display my hiwiki.org file.

00:17:26.880 --> 00:17:30.559
All wiki pages are org files.

00:17:30.560 --> 00:17:35.679
So we're using that for the wikis, and you have

00:17:35.680 --> 00:17:40.359
You can export an entire wiki

00:17:40.360 --> 00:17:43.159
using essentially the org export capability

00:17:43.160 --> 00:17:48.599
With a little extra set of features that we've added in

00:17:48.600 --> 00:17:51.199
but let's say even better you see

00:17:51.200 --> 00:17:54.119
I have this heading here so let me just change this

00:17:54.120 --> 00:17:59.239
you go back here and I'll say go to heading

00:17:59.240 --> 00:18:01.039
so you just put a pound on it

00:18:01.040 --> 00:18:05.679
and now that whole thing is a reference to a specific org section.

00:18:05.680 --> 00:18:08.439
Notice there's no org IDs here.

00:18:08.440 --> 00:18:11.639
There's nothing other than the text that you're seeing.

00:18:11.640 --> 00:18:13.439
There's not even a delimiter.

00:18:13.440 --> 00:18:17.839
So we have automatic implicit hyper buttons

00:18:17.840 --> 00:18:20.679
being added in any buffer.

00:18:20.680 --> 00:18:23.959
Could be a comment in a programming buffer with all you

00:18:23.960 --> 00:18:26.599
You don't have to add anything.

00:18:26.600 --> 00:18:31.999
I'll show you how to create a new page in a minute.

00:18:32.000 --> 00:18:35.959
But you see I can link to any org section without any IDs.

00:18:35.960 --> 00:18:38.799
And then I can also do like org-roam does,

00:18:38.800 --> 00:18:42.039
but without the indexing or database that it requires.

00:18:42.040 --> 00:18:46.839
I can scan over all of my wiki files and headings.

00:18:46.840 --> 00:18:48.759
find a match really quickly.

00:18:48.760 --> 00:18:53.279
So we can get into some of that a little later as well.

00:18:53.280 --> 00:18:55.759
But, you know, very convenient.

00:18:55.760 --> 00:18:58.439
There's nothing that you change on org to do this.

00:18:58.440 --> 00:19:00.879
So how do I create a wiki word?

00:19:00.880 --> 00:19:07.359
Well, let's say I wanted, you know, wiki word for me.

00:19:07.360 --> 00:19:09.999
So that's already, that was a wiki word,

00:19:10.000 --> 00:19:12.959
but now this is a new one. So you see it doesn't highlight

00:19:12.960 --> 00:19:16.559
because I haven't created a wiki page yet.

00:19:16.560 --> 00:19:20.319
So all I hit is the action key, and boom.

00:19:20.320 --> 00:19:23.519
Now it created it as a new wiki word.

00:19:23.520 --> 00:19:24.879
It created the .org file.

00:19:24.880 --> 00:19:28.279
If I don't edit this file, it won't save it,

00:19:28.280 --> 00:19:32.359
and it'll not become a word in case you made an accident.

00:19:32.360 --> 00:19:34.319
But let's just say I want to say it.

00:19:34.320 --> 00:19:39.159
So, you know, heading. That's it. I'm just in org mode.

00:19:39.160 --> 00:19:42.879
Now anytime that high wiki mode is active,

00:19:42.880 --> 00:19:46.239
in any buffer essentially,

00:19:46.240 --> 00:19:50.279
I can type that out and it'll recognize it.

00:19:50.280 --> 00:19:53.039
Notice so that's not a wiki word.

00:19:53.040 --> 00:19:55.279
So it's highlighting and it's unhighlighting

00:19:55.280 --> 00:19:56.599
right as I type.

00:19:56.600 --> 00:20:03.199
So, again, you can embed these as org links in org.

00:20:03.200 --> 00:20:09.439
There's a special format like this, HiWiki word

00:20:09.440 --> 00:20:11.239
that you can make an org link

00:20:11.240 --> 00:20:13.479
if I was in org mode, just like that.

00:20:13.480 --> 00:20:16.599
So there's all sorts of compatibility,

00:20:16.600 --> 00:20:18.319
but basically it's just words,

00:20:18.320 --> 00:20:21.119
and HiWiki takes care of the rest for you.

00:20:21.120 --> 00:20:26.679
So there's a directory where all these, it's HiWiki,

00:20:26.680 --> 00:20:28.879
hi wiki tilde slash

00:20:28.880 --> 00:20:32.719
hi wiki is the default place where all these would be found

00:20:32.720 --> 00:20:36.359
and there's a menu now in hyperbole for hi wiki h

00:20:36.360 --> 00:20:40.639
and you can see it has a lot of capabilities

00:20:40.640 --> 00:20:44.359
but i can say b go into the directory of all the files

00:20:44.360 --> 00:20:47.799
just pull them up and any of these you'll see

00:20:47.800 --> 00:20:59.959
let me give you one like this me okay so you can see the other wiki words being highlighted in here

00:20:59.960 --> 00:21:04.039
so it's very fast to this there's almost no delay for anything

00:21:04.040 --> 00:21:14.679
and yet very flexible and you have this ability you know where you could type emacs section dash 1 dash 2

00:21:14.680 --> 00:21:16.759
and If you didn't have delimiters around it,

00:21:16.760 --> 00:21:18.479
but you can put any delimiters

00:21:18.480 --> 00:21:20.839
like double quotes or parentheses,

00:21:20.840 --> 00:21:25.159
and then it'll match without you having to change the header at all

00:21:25.160 --> 00:21:28.439
with the spaces included and all of those.

00:21:28.440 --> 00:21:31.919
know will get recognized.

00:21:31.920 --> 00:21:35.599
I don't know if this if the section exists right there.

00:21:35.600 --> 00:21:41.959
So anyway a lot of capability you can see that here where I did the high

00:21:41.960 --> 00:21:45.519
it actually highlights as an org link

00:21:45.520 --> 00:21:46.839
because it is an org link

00:21:46.840 --> 00:21:50.319
and it'll operate just like any other org link

00:21:50.320 --> 00:21:54.279
even though it's a high wiki word link as well.

00:21:54.280 --> 00:21:55.759
So very powerful stuff

00:21:55.760 --> 00:22:00.959
and totally integrated with Org Mode throughout.

00:22:00.960 --> 00:22:06.439
Great. There's another question.

00:22:06.440 --> 00:22:09.039
Are there any talks from this year's Emacs Conf

00:22:09.040 --> 00:22:12.599
that discuss things that would work well with Hyperbole?

00:22:12.600 --> 00:22:19.279
No. Unfortunately, I had to work yesterday, so I haven't...

00:22:19.280 --> 00:22:22.639
been following the conference as much as I do.

00:22:22.640 --> 00:22:25.559
Maybe somebody else could comment on that.

00:22:25.560 --> 00:22:29.519
But I think, you know, again,

00:22:29.520 --> 00:22:31.879
it's like pick your favorite mode,

00:22:31.880 --> 00:22:34.719
pick your favorite type of information.

00:22:34.720 --> 00:22:36.839
Can I hyperbole work with that?

00:22:36.840 --> 00:22:39.999
You know, the answer is almost always yes.

00:22:40.000 --> 00:22:44.959
So, you know, if I show you just a little bit,

00:22:44.960 --> 00:22:48.679
if I show you some of these implicit button types,

00:22:48.680 --> 00:22:53.359
just so you know the amount of code

00:22:53.360 --> 00:22:56.279
involved to create a type.

00:22:56.280 --> 00:22:59.679
So here's like a male, recognizing

00:22:59.680 --> 00:23:01.639
an email address as a button.

00:23:01.640 --> 00:23:05.519
It's a little long so that it creates a lot of things

00:23:05.520 --> 00:23:09.199
but you know it's less than 15 lines of code for that.

00:23:09.200 --> 00:23:12.199
Path names are complicated so that's a longer one

00:23:12.200 --> 00:23:18.799
but let's look at so here's one recognizing a bibliography entry.

00:23:18.800 --> 00:23:24.879
So it can be between two and 20 lines of code

00:23:24.880 --> 00:23:27.519
to create an entirely new button type.

00:23:27.520 --> 00:23:32.159
And you create it once, and you just add it to the set of types,

00:23:32.160 --> 00:23:35.479
just like at the fun, except it's done with this macro

00:23:35.480 --> 00:23:39.479
called def, implicit button type, and defib.

00:23:39.480 --> 00:23:45.559
And it's part of your hyperlinking system forever then.

00:23:45.560 --> 00:23:49.799
So say you got dumped with 5,000 documents

00:23:49.800 --> 00:23:51.519
that were in this weird text format,

00:23:51.520 --> 00:23:54.119
and they all had cross-references among them,

00:23:54.120 --> 00:23:56.792
but it was, again, using a weird format.

00:23:56.760 --> 00:23:59.919
You could just write your own little type for that,

00:23:59.920 --> 00:24:04.319
and then those 5,000 documents are hyperlinked for you

00:24:04.320 --> 00:24:08.759
every time you're browsing them in Emacs automatically.

00:24:08.760 --> 00:24:11.959
So we do that all the time, create small things,

00:24:11.960 --> 00:24:15.159
but all of these are built into Hyperbole.

00:24:15.160 --> 00:24:20.199
Markdown links, tech info links, all of that's automatic.

00:24:20.200 --> 00:24:26.199
I could even be in a shell mode, and I just say ls,

00:24:26.200 --> 00:24:30.519
and these are hyperlinks that Hyperbole understands, right?

00:24:30.520 --> 00:24:31.759
It just jumps right to the file.

00:24:31.760 --> 00:24:36.999
So grep-n, You know, looking at any line numbers,

00:24:37.000 --> 00:24:39.839
you don't have to remember

00:24:39.840 --> 00:24:41.959
all these different commands anymore.

00:24:41.960 --> 00:24:44.319
You just hit made a return,

00:24:44.320 --> 00:24:46.599
and Hyperbole does the right thing

00:24:46.600 --> 00:24:48.359
in all these different contexts,

00:24:48.360 --> 00:24:52.639
including following cross-references in code.

00:24:52.640 --> 00:24:56.079
So I would say that's your answer.

00:24:56.080 --> 00:24:58.399
Most things that people are talking about,

00:24:58.400 --> 00:25:02.199
we've already probably integrated with Hyperbole

00:25:02.200 --> 00:25:04.639
or with a little bit of custom coding.

00:25:04.640 --> 00:25:11.199
You can do it. I think that's the end of the etherpad questions for now,

00:25:11.200 --> 00:25:12.919
but I see a number of people in the room,

00:25:12.920 --> 00:25:15.439
so you can continue the conversation.

00:25:15.440 --> 00:25:18.719
We'll be on the stream for another five minutes or so,

00:25:18.720 --> 00:25:22.319
but yes, please go ahead. Great. Yeah.

00:25:22.320 --> 00:25:27.639
I mean, people, does everybody have, can talk on the conference?

00:25:27.640 --> 00:25:31.439
I was expecting to just talk with people here.

00:25:31.440 --> 00:25:40.799
Let's see. Yeah. Can anybody say anything here?

00:25:40.800 --> 00:25:52.039
Hi, Bob. I can say something. Hey, Matt. Hi. Yeah.

00:25:52.040 --> 00:25:55.199
Maybe you want to bring up a topic.

00:25:55.200 --> 00:25:56.839
I think I... Yes. Sorry, Bob.

00:25:56.840 --> 00:26:05.839
I think I saw a question here on IOC. It was like this.

00:26:05.840 --> 00:26:08.599
Interesting, but the many different link formats

00:26:08.600 --> 00:26:11.279
makes reading and analyzing my notes

00:26:11.280 --> 00:26:14.959
much harder and less usable outside Emacs.

00:26:14.960 --> 00:26:18.759
I don't know if you have some comment on that.

00:26:18.760 --> 00:26:22.319
Well, I mean, the different formats that you're saying,

00:26:22.320 --> 00:26:24.839
like angle brackets or curly braces,

00:26:24.840 --> 00:26:31.319
are just so that you can utilize many different types.

00:26:31.320 --> 00:26:35.599
of buttons, but if you just want to use key sequences,

00:26:35.600 --> 00:26:37.759
there's only one markup format.

00:26:37.760 --> 00:26:41.599
With org, you've got the square brackets,

00:26:41.600 --> 00:26:44.919
which are consistent, but in order to have different types,

00:26:44.920 --> 00:26:47.279
you have to type a prefix name,

00:26:47.280 --> 00:26:53.279
like you see the HY for the High Wiki buttons in org mode.

00:26:53.280 --> 00:26:56.999
So I think the trade-off is pretty much the same,

00:26:57.000 --> 00:27:02.239
but Hyperbole always, always works

00:27:02.240 --> 00:27:04.559
to minimize the amount of markup.

00:27:04.560 --> 00:27:07.439
Markdown is pretty simple. A lot of people like that.

00:27:07.440 --> 00:27:10.759
But I think you'll find in hyperbole texts,

00:27:10.760 --> 00:27:15.479
they read just like regular language.

00:27:15.480 --> 00:27:19.599
I mean, the delimiters are fairly invisible.

00:27:19.600 --> 00:27:23.039
So I'm not sure what the issue is there.

00:27:23.040 --> 00:27:24.919
And again, you can choose your own.

00:27:24.920 --> 00:27:27.639
You can make your own types with your own delimiters.

00:27:27.640 --> 00:27:31.359
There's even a custom macro

00:27:31.360 --> 00:27:33.399
that instead of using that defib

00:27:33.400 --> 00:27:35.559
where you have to type out list code,

00:27:35.560 --> 00:27:37.519
you can use regular expressions.

00:27:37.520 --> 00:27:41.239
And in one line, you can define your own type of button

00:27:41.240 --> 00:27:42.919
with its own delimiters.

00:27:42.920 --> 00:27:47.879
So, you know, depending on what works well for your eyes,

00:27:47.880 --> 00:27:51.359
you can make Hyperbole adapt quite well to that.

00:27:51.360 --> 00:27:54.319
And again, if you start using the HiWiki,

00:27:54.320 --> 00:27:57.479
there's literally zero markup on that.

00:27:57.480 --> 00:27:59.599
So you're just reading text,

00:27:59.600 --> 00:28:01.759
and when you want something hyperlinked,

00:28:01.760 --> 00:28:04.599
it's like a glossary or a dictionary entry.

00:28:04.600 --> 00:28:09.599
It's just there, and it's just highlighted in the text.

00:28:09.600 --> 00:28:17.479
So I don't see much barrier to using it with many different types of documents.

00:28:17.480 --> 00:28:23.319
Let me go back to the Emacs here.

00:28:23.320 --> 00:28:27.039
If there are any other questions.

00:28:27.040 --> 00:28:36.639
Let me see. Let me go back to that. This K outline here.

00:28:36.640 --> 00:28:38.719
So we covered HiWiki.

00:28:38.720 --> 00:28:42.999
We're in the, I'll just show you some things

00:28:43.000 --> 00:28:44.039
that we wanted to highlight

00:28:44.040 --> 00:28:46.279
if people didn't have specific questions.

00:28:46.280 --> 00:28:48.879
But feel free to jump in anytime

00:28:48.880 --> 00:28:51.399
if you want to ask something.

00:28:51.400 --> 00:28:57.039
So what we're looking at here is a K Outliner document.

00:28:57.040 --> 00:29:00.399
There's, you know, hyperbole is pretty well documented.

00:29:00.400 --> 00:29:04.719
There's a large manual. There's interactive.

00:29:04.720 --> 00:29:09.319
demos of it and there are videos as well

00:29:09.320 --> 00:29:12.079
but the K Outliner is unique in Emacs

00:29:12.080 --> 00:29:17.439
because it it can do like full legal auto numbering you

00:29:17.440 --> 00:29:21.399
just say I want to create a new headline

00:29:21.400 --> 00:29:23.919
and you can see or I could create four

00:29:23.920 --> 00:29:26.679
I could say I want to create three more of these

00:29:26.680 --> 00:29:29.239
and I can do it all at once with one key

00:29:29.240 --> 00:29:33.679
I can then just tab to make sublevels here

00:29:33.680 --> 00:29:40.319
and you see this is using a specific outline format that we have

00:29:40.320 --> 00:29:43.919
but if we do dot in the view specs here

00:29:43.920 --> 00:29:48.239
it changes to legal outlining so it's really that simple

00:29:48.240 --> 00:29:51.399
and all of these numbers are automatically maintained

00:29:51.400 --> 00:29:56.639
as I move stuff around I can use like org mode alt arrow keys

00:29:56.640 --> 00:30:00.119
to like move things up and down, right?

00:30:00.120 --> 00:30:00.839
And just move them around.

00:30:00.840 --> 00:30:04.719
And when I run out, you know, when it can't go any higher,

00:30:04.720 --> 00:30:06.039
it gives me an error.

00:30:06.040 --> 00:30:11.079
And then it's just free form typing here with auto-wrapping.

00:30:11.080 --> 00:30:13.759
The nice thing is that there's,

00:30:13.760 --> 00:30:17.359
there's actually these hidden,

00:30:17.360 --> 00:30:22.519
let's get, hidden what are called ID stamps.

00:30:22.520 --> 00:30:24.919
So these are permanent hyperlink anchors

00:30:24.920 --> 00:30:26.719
that are assigned to each cell.

00:30:26.720 --> 00:30:29.679
So as this cell moves in the outline,

00:30:29.680 --> 00:30:32.679
you notice that this 29 didn't change.

00:30:32.680 --> 00:30:37.439
So you can move and all those other auto numbers shift

00:30:37.440 --> 00:30:40.359
to represent the actual outline structure.

00:30:40.360 --> 00:30:44.079
But this ID stamp of 29 stays the same.

00:30:44.080 --> 00:30:47.679
So you can embed that in links and say,

00:30:47.680 --> 00:30:51.719
I want to link to cell 29.

00:30:51.720 --> 00:30:55.999
If I go, let me just go to the K Outliner example.

00:30:56.000 --> 00:30:59.039
And I'll show you one of those, which is really cool.

00:30:59.040 --> 00:31:02.599
Because what you can do is say, I want to link

00:31:02.600 --> 00:31:06.999
Let me find that. It's down here somewhere.

00:31:07.000 --> 00:31:12.199
I think there's 3A. Where was it? Yeah, okay.

00:31:12.200 --> 00:31:16.479
So see right here, this is an internal link

00:31:16.480 --> 00:31:21.200
with just the pound and then the relative ID, as we call it, 3B.

00:31:21.200 --> 00:31:25.719
But of course, somebody may have moved 3B in the outline.

00:31:25.720 --> 00:31:27.919
So when Hyperbole inserts a link,

00:31:27.920 --> 00:31:32.039
it puts this equal with the ID stamp in it automatically.

00:31:32.040 --> 00:31:35.839
So if what'll happen is when I reference this,

00:31:35.840 --> 00:31:37.639
okay, it's still the same.

00:31:37.640 --> 00:31:40.959
But if it had changed, it would update this link

00:31:40.960 --> 00:31:44.759
and would change the 3B to say it was 3D now

00:31:44.760 --> 00:31:50.519
based on this permalink, the 08 that's hidden away in here.

00:31:50.520 --> 00:31:52.439
So you don't have to do anything.

00:31:52.440 --> 00:31:56.599
It's just that you have these automatic hyperlink anchors

00:31:56.600 --> 00:31:58.959
that are embedded in your outlines again.

00:31:58.960 --> 00:32:04.519
sort of like org IDs, but you have to manually place those in org.

00:32:04.520 --> 00:32:09.039
And it just makes linking much simpler.

00:32:09.040 --> 00:32:10.359
And you can reference this.

00:32:10.360 --> 00:32:13.799
You can reference the file and the cell number.

00:32:13.800 --> 00:32:15.999
And again, you don't put this hyperbole.

00:32:16.000 --> 00:32:17.679
You don't put this in.

00:32:17.680 --> 00:32:20.719
And then you can even have these view specs, which say,

00:32:20.720 --> 00:32:25.919
I want to clip the display to one line,

00:32:25.920 --> 00:32:27.399
and I want to delete. ellipses.

00:32:27.400 --> 00:32:31.079
So here we see a view over the same outline

00:32:31.080 --> 00:32:37.319
that's all in one mode. So it's just incredibly capable.

00:32:37.320 --> 00:32:40.079
So here we've said, you know,

00:32:40.080 --> 00:32:42.879
there's no blank lines between cells.

00:32:42.880 --> 00:32:46.719
now I change the view spec and put a blank line in there

00:32:46.720 --> 00:32:51.879
and it's all changed so lots of consistency that you get

00:32:51.880 --> 00:32:55.599
when you when you change a node in the outline

00:32:55.600 --> 00:32:58.799
the whole tree shifts and all of this is maintained

00:32:58.800 --> 00:33:02.839
all of the structure is maintained automatically by hyperbole

00:33:02.840 --> 00:33:09.479
and you can embed or Tables in here as well.

00:33:09.480 --> 00:33:17.079
So if I just press made a return action key again on this or Disabled.

00:33:17.080 --> 00:33:21.799
Okay. So now I enabled org mode here

00:33:21.800 --> 00:33:31.719
and where you see like tab here shifts a cell when I'm inside a The table tab just operates like normal org tables.

00:33:31.720 --> 00:33:33.519
So I can do all of the things

00:33:33.520 --> 00:33:40.839
that I can do in org table mode as well within this k-outline.

00:33:40.840 --> 00:33:43.399
So it seems pretty useful to me,

00:33:43.400 --> 00:33:48.519
but of course, I helped write it.

00:33:48.520 --> 00:33:51.279
But I think you see some of the benefits

00:33:51.280 --> 00:33:53.959
that can accrue by using that format.

00:33:53.960 --> 00:33:57.839
But this is just this is just one piece of hyperbole,

00:33:57.840 --> 00:34:01.559
a major mode that you can choose to use or ignore entirely,

00:34:01.560 --> 00:34:04.039
you know, dependent on your needs.

00:34:04.040 --> 00:34:06.399
If you're writing requirements, documents,

00:34:06.400 --> 00:34:08.879
or anything that needs structure,

00:34:08.880 --> 00:34:12.079
I think that's where this is really ideal.

00:34:12.080 --> 00:34:14.279
You can write a legal document,

00:34:14.280 --> 00:34:16.159
and you've got auto-numbering,

00:34:16.160 --> 00:34:18.679
which is always, if you've ever used Word

00:34:18.680 --> 00:34:21.039
or any of those word processors,

00:34:21.040 --> 00:34:26.479
it's really a pain to maintain those hierarchies in those compared to here.

00:34:26.480 --> 00:34:32.239
Okay, so that was just showing you the KL liner.

00:34:32.240 --> 00:34:35.279
Does anybody have any questions

00:34:35.280 --> 00:34:43.279
or I'll just continue down a bit?

00:34:43.280 --> 00:34:47.999
Okay, so some other capabilities

00:34:48.000 --> 00:34:49.959
that we've fairly recently put in.

00:34:49.960 --> 00:34:52.799
Well, this has been here for a long time.

00:34:52.800 --> 00:34:58.719
You can, I think the binding I use is Control-C-M.

00:34:58.720 --> 00:35:00.159
I forget what it is.

00:35:00.160 --> 00:35:07.159
No, sorry, that's Control-C, Control-M.

00:35:07.160 --> 00:35:14.319
Now let's CTRL C, forward slash.

00:35:14.320 --> 00:35:21.719
Okay, so what I wanted to show you here is that the action key

00:35:21.720 --> 00:35:26.679
on any double quote, single quote, usually,

00:35:26.680 --> 00:35:30.079
or paired delimiters will select that whole thing.

00:35:30.080 --> 00:35:33.239
There is this capability, and I probably just select bigger

00:35:33.240 --> 00:35:35.119
and bigger chunks of text,

00:35:35.120 --> 00:35:39.319
but this is really nice that you can just go anywhere

00:35:39.320 --> 00:35:42.479
in pretty much any mode and hit made a return.

00:35:42.480 --> 00:35:46.559
And so in Lisp, you can be on the trailing paren

00:35:46.560 --> 00:35:50.599
and it will select the whole expression or the opening

00:35:50.600 --> 00:35:52.879
and it'll select just that piece

00:35:52.880 --> 00:35:56.159
but even better when you're copying pasting

00:35:56.160 --> 00:36:02.039
I can now if there's no region selected control W made a W

00:36:02.040 --> 00:36:05.679
will act on the structured entity

00:36:05.680 --> 00:36:09.359
that you're at the beginning or ending delimiter for

00:36:09.360 --> 00:36:12.199
without you having to highlight the region

00:36:12.200 --> 00:36:14.719
So if I hit made a return, it would highlight it,

00:36:14.720 --> 00:36:19.839
but let's just do made a W to cut that and then I'll yank it here.

00:36:19.840 --> 00:36:23.599
And you see it grabbed the whole expression

00:36:23.600 --> 00:36:25.599
and just let you yank it.

00:36:25.600 --> 00:36:29.679
So it's a nice add on to the basic Emacs commands

00:36:29.680 --> 00:36:33.159
that just let you operate a lot more efficiently.

00:36:33.160 --> 00:36:35.359
You can do something similar in C mode.

00:36:35.360 --> 00:36:39.439
You know, on the braces, you can select the whole function

00:36:39.440 --> 00:36:40.439
with one key press,

00:36:40.440 --> 00:36:43.079
made a return, and then copy it somewhere.

00:36:43.080 --> 00:36:50.559
And Hyperbole integrates with Ace Window if you use that.

00:36:50.560 --> 00:36:56.799
So let me split this a few ways. And let's do it over here.

00:36:56.800 --> 00:37:06.799
We'll just go to scratch. Okay. And then I can go,

00:37:06.800 --> 00:37:08.119
it's sort of interesting,

00:37:08.120 --> 00:37:11.120
it works with the, with Dired as well.

00:37:11.120 --> 00:37:16.519
So I can go here and say, I want to So if I do Meta O,

00:37:16.520 --> 00:37:22.159
ACE window will show me the labels to use, A, D, or S, to do something.

00:37:22.160 --> 00:37:24.559
Like I can move to any of those windows.

00:37:24.560 --> 00:37:27.959
But what Hyperbole lets you do

00:37:27.960 --> 00:37:30.759
is say I want to throw with T,

00:37:30.760 --> 00:37:36.399
like this glass.org file over to the bottom window.

00:37:36.400 --> 00:37:42.479
So I go MetaO to invoke it. I say I want a T to throw it.

00:37:42.480 --> 00:37:46.399
then where do I want to throw it to s the window and

00:37:46.400 --> 00:37:49.879
Then you see it's now displaying glass org

00:37:49.880 --> 00:37:56.679
so I can do that with files I can do it with regions of text you can

00:37:56.680 --> 00:37:58.719
Replace things in a buffer

00:37:58.720 --> 00:38:01.199
or throw the whole thing to the window

00:38:01.200 --> 00:38:02.759
so a couple extra commands

00:38:02.760 --> 00:38:06.519
that it extends ace window with you

00:38:06.520 --> 00:38:12.159
can even I think, well, we also have this command,

00:38:12.160 --> 00:38:16.799
I think it's Control-C, yeah.

00:38:16.800 --> 00:38:21.719
So what it did there was it just selected the files

00:38:21.720 --> 00:38:22.799
that I had marked in Dura,

00:38:22.800 --> 00:38:26.839
it selected and created a window grid out of all of them.

00:38:26.840 --> 00:38:29.559
you know, so I hit like three keystrokes.

00:38:29.560 --> 00:38:35.159
That's kind of convenient if you want to see

00:38:35.160 --> 00:38:38.159
a lot of information all at once.

00:38:38.160 --> 00:38:42.239
And so we covered all that. I won't go into it too much,

00:38:42.240 --> 00:38:46.639
but there's a whole nother window and frame control system

00:38:46.640 --> 00:38:50.799
under the screen menu here if you type control HHS.

00:38:50.800 --> 00:38:54.479
then you can select either controlling windows or frames.

00:38:54.480 --> 00:38:56.119
Let's do windows.

00:38:56.120 --> 00:39:00.479
And it has this menu where it's just sort of showing you.

00:39:00.480 --> 00:39:07.839
I can like split my windows vertically or horizontally.

00:39:07.840 --> 00:39:13.759
I can widen by a pixel or I can say, or character.

00:39:13.760 --> 00:39:18.319
I can say, use my prefix argument to change that to 10.

00:39:18.320 --> 00:39:22.479
And then when I shrink it, shrinks it up by 10

00:39:22.480 --> 00:39:27.319
or it narrows it width by 10 or it widens it by 10.

00:39:27.320 --> 00:39:33.679
So it has this concept of prefix arguments that persist

00:39:33.680 --> 00:39:35.719
and you just type in the number

00:39:35.720 --> 00:39:38.359
and then you can issue any number of the commands.

00:39:38.360 --> 00:39:41.679
So you could move windows or frames

00:39:41.680 --> 00:39:44.919
or create them, delete them, cycle through them,

00:39:44.920 --> 00:39:48.279
all sorts of things, including relative to movement,

00:39:48.280 --> 00:39:50.719
relative to the edges of your screens.

00:39:50.720 --> 00:39:52.559
So if you have multiple screens

00:39:52.560 --> 00:39:54.479
and many frames that you use,

00:39:54.480 --> 00:39:59.639
it just makes management very convenient.

00:39:59.640 --> 00:40:02.439
And then you just cue to quit out of there

00:40:02.440 --> 00:40:04.959
and you're back wherever you were.

00:40:04.960 --> 00:40:10.439
So, Finally, we have a lot of documentation.

00:40:10.440 --> 00:40:12.599
This is just a link to the videos,

00:40:12.600 --> 00:40:16.239
which is in the readme and in the manuals.

00:40:16.240 --> 00:40:21.399
There's two demos or tutorials. One to get you started.

00:40:21.400 --> 00:40:24.719
Notice I'm using these implicit buttons, so keystrokes,

00:40:24.720 --> 00:40:26.879
and I can just made a return on that.

00:40:26.880 --> 00:40:30.519
And that takes me to, here's all the videos.

00:40:30.520 --> 00:40:34.239
And you can get started with that

00:40:34.240 --> 00:40:38.279
or just interact with this demo that we have.

00:40:38.280 --> 00:40:41.519
And there's one for the K Outliner as well.

00:40:41.520 --> 00:40:45.399
One of the things that If you're into videos

00:40:45.400 --> 00:40:46.919
and you need to link to them,

00:40:46.920 --> 00:40:50.519
notice what you're seeing here. This is a hyperbole feature

00:40:50.520 --> 00:40:54.919
which is very difficult to achieve any other way that I've seen

00:40:54.920 --> 00:40:59.279
where you want a specific start and stop time

00:40:59.280 --> 00:41:01.039
in a video that you want to play.

00:41:01.040 --> 00:41:05.639
Hyperbole has a built-in link type for that.

00:41:05.640 --> 00:41:08.760
as you see here. So this is the name of the link

00:41:08.760 --> 00:41:10.919
that you can reference it by,

00:41:10.920 --> 00:41:14.279
and then this is the actual link expression.

00:41:14.280 --> 00:41:17.479
So I could just go and play a video right here,

00:41:17.480 --> 00:41:22.079
and this is from one long intro to hyperbole that we did.

00:41:22.080 --> 00:41:25.759
So it's just linking to the specific sections.

00:41:25.760 --> 00:41:27.439
But that's something, again,

00:41:27.440 --> 00:41:29.519
this could be embedded anywhere.

00:41:29.520 --> 00:41:33.759
in any file and it would start to play.

00:41:33.760 --> 00:41:36.559
Uh, I guess I could try YouTube.

00:41:36.560 --> 00:41:43.239
Well, I don't want to. Yeah. Okay. It's on my other screen.

00:41:43.240 --> 00:41:48.199
So, but it did, it did, uh, link to it.

00:41:48.200 --> 00:41:53.319
So, um, yeah, just, you know, tremendous capability

00:41:53.320 --> 00:41:56.919
to interlink your information that way.

00:41:56.920 --> 00:42:00.359
And, uh, You know, again, you learn it bit by bit.

00:42:00.360 --> 00:42:04.279
You can study one particular section right here.

00:42:04.280 --> 00:42:09.039
Just jump directly to that if you want to know about it.

00:42:09.040 --> 00:42:13.319
The manual is interlinked, has an extensive glossary,

00:42:13.320 --> 00:42:16.119
cross-references of sections.

00:42:16.120 --> 00:42:23.119
And if you go in there, this is the hyperlinked manual.

00:42:23.120 --> 00:42:25.119
So this is the structure of it

00:42:25.120 --> 00:42:27.799
with all the subsystems documented.

00:42:27.800 --> 00:42:31.519
But one of the sections we've added

00:42:31.520 --> 00:42:33.559
is developing with hyperbole.

00:42:33.560 --> 00:42:37.319
So if you are or you want to create your own button types,

00:42:37.320 --> 00:42:38.919
this explains how to do it.

00:42:38.920 --> 00:42:42.959
Creating types, you can create your own action

00:42:42.960 --> 00:42:44.999
and implicit button types.

00:42:45.000 --> 00:42:48.359
And if you look in here, there are three ways

00:42:48.360 --> 00:42:55.039
to create implicit button types from simpler to harder.

00:42:55.040 --> 00:42:59.079
So like, here's an example

00:42:59.080 --> 00:43:03.679
where the do pressing control X after this expression

00:43:03.680 --> 00:43:07.199
defines a new action button link type called pilot.

00:43:07.200 --> 00:43:13.359
So let's say, I don't know if I have this set up, but we can try it.

00:43:13.360 --> 00:43:21.999
Yeah, I don't have the variable setup,

00:43:22.000 --> 00:43:25.759
but basically, you know, it can get you.

00:43:25.760 --> 00:43:31.359
This is a one line definition of a new action type.

00:43:31.360 --> 00:43:36.399
that can get you to a Python file

00:43:36.400 --> 00:43:39.639
based on whatever your Python path is set to

00:43:39.640 --> 00:43:42.919
with this simple syntax right here.

00:43:42.920 --> 00:43:45.199
And here we're going to the file.

00:43:45.200 --> 00:43:48.399
So we have no idea where this is on the file system.

00:43:48.400 --> 00:43:54.959
And the same way like if you use man path, Python path,

00:43:54.960 --> 00:44:08.599
you can embed buttons. Let's just go to scratch buffer.

00:44:08.600 --> 00:44:17.919
My first read-only. It doesn't want me to go.

00:44:17.920 --> 00:44:24.999
It must be kind of strange.

00:44:25.000 --> 00:44:34.799
Something with this key window that I have over here.

00:44:34.800 --> 00:44:41.039
Let me just move off there. Look at that.

00:44:41.040 --> 00:44:46.519
Maybe it's just activating that.

00:44:46.520 --> 00:44:53.319
Yeah, it keeps jumping back there.

00:44:53.320 --> 00:44:55.919
I don't know. I have to get this straight.

00:44:55.920 --> 00:45:02.199
Yeah, it's not letting me type the buttons.

00:45:02.200 --> 00:45:15.839
Let me see if I can turn off the key casting.

00:45:15.840 --> 00:45:23.519
Yeah, maybe that'll help. just gonna exit out of here.

00:45:23.520 --> 00:45:32.960
Does anybody have any questions they want to cover?

00:45:33.000 --> 00:45:39.079
I was just gonna show you yeah a little more on type definitions

00:45:39.080 --> 00:45:53.119
if there was any interest OK, there's nobody piping up.

00:45:53.120 --> 00:45:56.999
Let me see if there's any other questions.

00:45:57.000 --> 00:46:04.439
Hi, Bob. I haven't seen any more questions.

00:46:04.440 --> 00:46:10.839
Yeah, so maybe it's you, me, and someone called Max is here in the channel.

00:46:10.840 --> 00:46:19.479
OK. Okay, so if Max doesn't have any questions

00:46:19.480 --> 00:46:24.839
and there aren't other people, we can just end it there.

00:46:24.840 --> 00:46:34.479
I don't want to have an audience of zero or talk to that.

00:46:34.480 --> 00:46:37.919
So, but I think that was a good overview, Max, right?

00:46:37.920 --> 00:46:45.479
Yes, definitely covered a lot in a short time.

00:46:45.480 --> 00:46:48.639
And hopefully, you know, just try it out.

00:46:48.640 --> 00:46:52.399
At the top here, it shows you how to install it.

00:46:52.400 --> 00:46:56.559
It's pretty simple, basic package and installation.

00:46:56.560 --> 00:47:02.719
And we're happy to help anybody get started if they need to.

00:47:02.720 --> 00:47:05.199
So thanks, everyone.

00:47:05.200 --> 00:47:09.279
And we'll answer any further questions on the Etherpad after this.