summaryrefslogtreecommitdiffstats
path: root/2021/emacsconf-pentabarf.xml
blob: 979fbcfe5e10dea9bb7c106364aae2160593b68a (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
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
<schedule><generator name="EmacsConf" version="0.1"></generator><version>20211027122420</version><conference><acronym>emacsconf2021</acronym><title>EmacsConf 2021</title><start>2021-11-27</start><end>2021-11-28</end><time_zone_name>America/Toronto</time_zone_name><base_url>https://emacsconf.org/2021</base_url></conference><day date="2021-10-27" start="2021-10-27T16:24:20Z" end="2021-10-27T16:24:20Z"><room name="Main"><event id="01" guid="dc07efcd-6d79-cfd4-fed3-59c885fe2922"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-day1-open</slug><duration>19:00</duration><title>Opening remarks</title><abstract># Opening remarks</abstract><description>Times are approximate and will probably change.

# Opening remarks</description><url>https://emacsconf.org/2021/talks/day1-open</url><persons><person>EmacsConf</person></persons></event><event id="02" guid="393ba3c2-b2a6-6a84-44eb-872aa333d08d"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-news</slug><duration>19:00</duration><title>Emacs News Highlights</title><abstract># Emacs News Highlights
Sacha Chua <mailto:sacha@sachachua.com> - pronouns: she/her

Quick overview of Emacs community highlights since the last conference

<https://github.com/sachac/emacsconf-2021-emacs-news-highlights></abstract><description>Times are approximate and will probably change.

# Emacs News Highlights
Sacha Chua &lt;mailto:sacha@sachachua.com&gt; - pronouns: she/her

Quick overview of Emacs community highlights since the last conference

&lt;https://github.com/sachac/emacsconf-2021-emacs-news-highlights&gt;</description><url>https://emacsconf.org/2021/talks/news</url><persons><person>Sacha Chua</person></persons></event><event id="03" guid="06df8309-bd04-eb24-d443-a780c56adc0a"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-frownies</slug><duration>19:00</duration><title>The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability</title><abstract># The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability
Case Duckworth

Emacs is well-known for being extremely flexible, programmable, and
extensible; in fact, that's probably the biggest reason it's still
being used after 40+ years of existence, and even has enough clout to
generate an entire conference in its name.  In this medium-length
presentation, I will add another point to the data set proving Emacs's
abilities, by narrating the latest package I made, \`frowny.el\`, from
its conception to its current, nearly-completed state.

I wrote frowny.el to scratch someone else's itch as a joke on IRC, but
it has been called "pretty useful, for a joke package."  I feel like
that encapsulates the spirit of Emacs and that's why I want to present
on this topic.

Along the way, I'll discuss just a little of my own history of Emacs,
and why I feel it's a great tool for non-technical users to sink their
teeth into.</abstract><description>Times are approximate and will probably change.

# The True Frownies are the Friends We Made Along the Way: An Anecdote of Emacs's Malleability
Case Duckworth

Emacs is well-known for being extremely flexible, programmable, and
extensible; in fact, that's probably the biggest reason it's still
being used after 40+ years of existence, and even has enough clout to
generate an entire conference in its name.  In this medium-length
presentation, I will add another point to the data set proving Emacs's
abilities, by narrating the latest package I made, \`frowny.el\`, from
its conception to its current, nearly-completed state.

I wrote frowny.el to scratch someone else's itch as a joke on IRC, but
it has been called "pretty useful, for a joke package."  I feel like
that encapsulates the spirit of Emacs and that's why I want to present
on this topic.

Along the way, I'll discuss just a little of my own history of Emacs,
and why I feel it's a great tool for non-technical users to sink their
teeth into.</description><url>https://emacsconf.org/2021/talks/frownies</url><persons><person>Case Duckworth</person></persons></event><event id="51" guid="fe959e43-441b-ed34-854b-87f6f481f55a"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-adventure</slug><duration>19:00</duration><title>Choose Your Own (Technology-Enhanced Learning) Adventure</title><abstract># Choose Your Own (Technology-Enhanced Learning) Adventure
Greta Goetz

This presentation will move through Emacs artifacts: first illustrating possible paths for beginners and then mapping out the significance of the enhanced learning potential of Emacs (Caillet in Andler & Guerry, Engelbart, Markauskaite & Goodyear). The technology-enhanced learning (TEL) that Emacs affords includes a systems view of 'many, many features' (Stallman) which surpass the confines of a pre-fabricated environment (Stiegler). This affords diverse possibilities for individuals to interact creatively and autonomously to satisfy their own needs (Ill
ich). Its adaptability will be shown to be an asset in supporting the learning trends identified by the latest pedagogical research (Guo). 

# Intro

The 'many, many features' (Stallman 2002: 4) of Emacs do not limit imaginable types of interactivity, supporting both formal and informal learning (cf. Caillet in Andler & Guerry 2008). Emacs can function as a scaffold for development (cf. Vygotsky 1979: 86), promoting the creative and autonomous ability of individuals to interact with their digital environment and others who share the use of this tool (Illich 1973). Individuals can use Emacs as often or seldom as they want to express their needs and meaning in action, with no obligation to use it (cf. Illich 1973).

The formal learning involved pertains to Emacs programs and documentation (the 'temple') while related discussion and smaller task-based problem solving represents examples of informal learning (the 'forum') (cf. Caillet in Andler & Guerry 2008). As a context-rich environment (Trocmé-Fabre 1999), Emacs fulfills the promise of general computing: not boxing users into personas (cf. Stiegler 2018) but allowing users at all levels to organize and assemble multiple knowledge domains (Markauskaite & Goodyear 2017) and programs so that they are 'just right'. People wanting to create tailored learning environments who feel alienated or unsupported by pre-fabricated text and programming environments will find their way with Emacs. 

1.  What if we are beginners overwhelmed by formal Emacs documentation? Two potential learning paths:

    - a. Build on a needs-basis. Make your own artifacts: no use-case is too small; leave your trace. 
    - b. Study others' inits and use-cases; Read Planet EmacsLife; Consult programmer or power user use-cases; Map out workflows. 

2. Emacs as personal, creative, autonomous:

    - a. Emacs allows for organic ongoing changes to the organization of knowledge, imagination, and experience (cf. Guerry & Gaume 2009) . This is important as not all learners have the same spatial/visual needs and because these needs and knowledge can change over time (Vygotsky 1979; Gardner 1983; Wang 2020).
    - b. Emacs allows us to control our tools and tasks (Illich 1973). By contrast, care-less use of pre-fabricated apps can lead to loss of know-how in life (Stiegler 2018).
   - c. The art of collecting traces (digital or not) is timeless - and important to survival.

3.  Emacs as systems design for technology-enhanced learning (TEL):

    - a. Good TEL design performance should also educate the designer (Goodyear & Retalis 2010). Further, good design focuses on 'frameworks', which are systems 'that can be customized, specialized, or extended to provide more specific, more appropriate, or slightly different capabilities' (Alexander 1993 in Gabriel 1996), assembling epistemic domains (Markauskaite & Goodyear 2017). This pedagogical approach is supported by Emacs artifacts (packages, documentation, forums, etc.).
    - b.  The 'wise' use of programming (Crichton 1983) actively manages and organizes workflow. This permits iterative development. Elementary use-case: a workflow that relies on PPT and Zoom vs. already having a more modular viewpoint supported by diverse Emacs packages. The latter adaptability is supported by the latest educational research (Guo). Further: Emacs allows movement from user to contributor (Stiegler 2018; Stavrou).
    - c. Wise programming can include fun programming - 'there are people who want to put a stop to that' (Crichton 1983; Gaffney 2019).
    - d. Extending this systems/design view, Emacs is developed and maintained by a community dedicated to supporting this freedom of use in these multiple contexts (cf. Illich 1973).
    - e. One perspective is less likely to override others in such a heterogeneous environment (Morin 2004).

# Conclusion

Emacs does not limit any imaginable type of interactivity and promotes a diversity of related content, further supporting the pursuit of more advanced TEL (viz. Guo). This was illustrated through an elementary use-case that compared being limited to PPT as opposed to having basic familiarity with Emacs, which permits manageable, continuous exploration of knowledge, workflows, and tools (cf. Alexander in Gabriel; Goodyear & Retalis) and movement from consumer to creator (Stiegler; Stavrou). Using Emacs means being able to use a sophisticated digital tool, thanks to the contributions of heterogeneous maintainers, developers, and community members whose artifacts comprise a meta picture. It is possible, through using Emacs, to learn about the design of digital learning and learning in general as access to knowledge is not walled off by prefabricated design(cf. Illich; Stiegler). We can choose our own adventure.


# References

## General workflow and fun:
-   Bin, C. (2020). Mastering Emacs in one year. <https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants>. Accessed 25 October 2021.
-   Gaffney, N. (2019). Oblique strategies.  <https://github.com/zzkt/oblique-strategies>. Accessed 25 October 2021.
-   Goetz, G. (2021). Additional references: A back-to-school/GTD Emacs journey. <https://gretzuni.com/articles/a-back-to-school-gtd-emacs-journey>. Accessed 25 October 2021.
-   Guerry, B. (2020). Org-mode features you may not know. <https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know/>. Accessed 25 October 2021.
-   Kaiser, K. (2017). Writing a technical book in Emacs and Org-mode. <https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/>. Accessed 25 October 2021.
-   Planet Emacs Life. <https://planet.emacslife.com/>. Accessed 25 October 2021.
-   Stavrou, P. My packages for GNU Emacs. <https://protesilaos.com/emacs/>. Accessed 25 October 2021.
-   Wellons, C. Emacs articles. <https://nullprogram.com/tags/emacs/>. Accessed 25 October 2021. 

##  On TEL design:
-   Caillet, E. (2008). L’exposition, le musée: L’éducation informelle comme école de l’éducation formelle. In Andler, D. & Guerry, B. (Eds.). *Apprendre demain: Sciences cognitives et éducation à l’ère numérique*, 137-154. Paris: Hatier.
-   Crichton, M. (1983). *Electronic life*. New York: Knopf.
-   De Bono, E. (2009). *Think! Before it's too late*. London: Random House.
-   Engelbart, D. (1962). *Augmenting human intellect: A conceptual framework*. Menlo Park: Stanford Research Institute.
-   Drosos, I. & Guo, P. (2021). Streamers teaching programming, art, and gaming: Cognitive apprenticeship, serendipitous teachable moments, and tacit expert knowledge. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2021. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.
-   Gabriel, R. (1996). *Patterns of software*. New York, Oxford: Oxford University Press.
-   Goodyear, P. & Retalis, S. (2010). Learning, technology and design. In Goodyear, P. & Retalis, S. (Eds.). *Technology-enhanced learning: Design patterns and pattern languages*, 1-27. Rotterdam, Boston: Sense Publishers.
-   Guerry, B. & Gaume, N. (2008). Ce que les jeux vidéo nous apprennent. In Andler, D. & Guerry, B. (Eds.). *Apprendre Demain: Sciences cognitives et éducation à l’ère numérique*, 155-159. Paris: Hatier.
-   Guo, P. (2018). Students, systems, and interactions: Synthesizing the first
four years of Learning@Scale and charting the future. L@S 2018, June 2628, 2018, London, United Kingdom. DOI: https://doi.org/10.1145/3231644.3231662. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.
-   Guo, P., Kim, J. & Rubin, R. (2014). How video production affects student engagement: An empirical study of MOOC videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.
-   Illich, I. (1973). *Tools of conviviality*. New York: Harper & Row.
-   Kim, J., Guo, P., Seaton, D., Mitros, P., Gajos, K. & Miller, R. (2014). Understanding in-video dropouts and interaction peaks in online lecture videos. ACM Conference on Learning at Scale. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.
-   Markauskaite, L. & Goodyear, P. (2017). *Epistemic fluency and professional education: innovation, knowledgeable action and actionable knowledge*. Dordrecht: Springer.
-   Markel, J. & Guo, P. (2020). Designing the future of experiential learning environments for a post-COVID world: A preliminary case study. NFW ’20 (Symposium on the New Future of Work), August 35, 2020, Virtual Event. <https://pg.ucsd.edu/pubs.htm>. Accessed 25 October 2021.
-   Morin, E. ([2004] 2008). *La Méthode - tome 6: Éthique*. Éditions du Seuil: Paris.
-   Stallman, R. (2002). *Free software, free society*. GNU Press, Free Software Foundation.
-   Stiegler, B. (2018). *The neganthropocene*. Open Humanities Press.
-   Trocmé-Fabre, H. (1999). *Réinventer le métier d’apprendre*. Paris: Éditions d’organisation.
-   Vygotsky, L. (1979). *Mind in society: The development of higher psychological processes*. Cambridge and London: Harvard University Press.
-   Wang, S. (2020). Open knowledge. Hope in Source. <https://hopeinsource.com/open-knowledge/#open-source-knowledge-proof-of-work>. Accessed 25 October 2021.


# Availability and preferred Q&A approach

Due to the pandemic situation, my teaching schedule fluctuates so I
will not know my availability until much closer to the
date. Therefore, I can only guarantee delayed answer response
(whatever you request), but if available, will join live.
May I please note that I will be pre-recording my video if this submission is accepted.


# Speaker release

By submitting this proposal, I agree that my presentation at
EmacsConf 2021 is subject to the following terms and conditions:

The EmacsConf organizers may capture audio and video (a "Recording")
of my presentation and any associated materials, which may include
slides, notes, transcripts, and prerecording(s) of my presentation
that I provide to the EmacsConf organizers.

I authorize the EmacsConf organizers to distribute, reproduce,
publicly display, and prepare derivative works of the Recording and
any derivative works of the Recording (the "Licensed Materials")
under the terms of the Creative Commons Attribution-ShareAlike 4.0
International (CC BY-SA 4.0) license.

I grant to the EmacsConf organizers permission to use my name,
likeness, and biographic information in association with their use
of the Licensed Materials under the above license.

I represent that I have the authority to grant the above license to
the EmacsConf organizers. If my presentation incorporates any
material owned by third parties, I represent that the material is
sublicensable to the EmacsConf organizers or that my use of them is
fair use.</abstract><description>Times are approximate and will probably change.

# Choose Your Own (Technology-Enhanced Learning) Adventure
Greta Goetz

This presentation will move through Emacs artifacts: first illustrating possible paths for beginners and then mapping out the significance of the enhanced learning potential of Emacs (Caillet in Andler &amp; Guerry, Engelbart, Markauskaite &amp; Goodyear). The technology-enhanced learning (TEL) that Emacs affords includes a systems view of 'many, many features' (Stallman) which surpass the confines of a pre-fabricated environment (Stiegler). This affords diverse possibilities for individuals to interact creatively and autonomously to satisfy their own needs (Ill
ich). Its adaptability will be shown to be an asset in supporting the learning trends identified by the latest pedagogical research (Guo). 

# Intro

The 'many, many features' (Stallman 2002: 4) of Emacs do not limit imaginable types of interactivity, supporting both formal and informal learning (cf. Caillet in Andler &amp; Guerry 2008). Emacs can function as a scaffold for development (cf. Vygotsky 1979: 86), promoting the creative and autonomous ability of individuals to interact with their digital environment and others who share the use of this tool (Illich 1973). Individuals can use Emacs as often or seldom as they want to express their needs and meaning in action, with no obligation to use it (cf. Illich 1973).

The formal learning involved pertains to Emacs programs and documentation (the 'temple') while related discussion and smaller task-based problem solving represents examples of informal learning (the 'forum') (cf. Caillet in Andler &amp; Guerry 2008). As a context-rich environment (Trocm&#233;-Fabre 1999), Emacs fulfills the promise of general computing: not boxing users into personas (cf. Stiegler 2018) but allowing users at all levels to organize and assemble multiple knowledge domains (Markauskaite &amp; Goodyear 2017) and programs so that they are 'just right'. People wanting to create tailored learning environments who feel alienated or unsupported by pre-fabricated text and programming environments will find their way with Emacs. 

1.  What if we are beginners overwhelmed by formal Emacs documentation? Two potential learning paths:

    - a. Build on a needs-basis. Make your own artifacts: no use-case is too small; leave your trace. 
    - b. Study others' inits and use-cases; Read Planet EmacsLife; Consult programmer or power user use-cases; Map out workflows. 

2. Emacs as personal, creative, autonomous:

    - a. Emacs allows for organic ongoing changes to the organization of knowledge, imagination, and experience (cf. Guerry &amp; Gaume 2009) . This is important as not all learners have the same spatial/visual needs and because these needs and knowledge can change over time (Vygotsky 1979; Gardner 1983; Wang 2020).
    - b. Emacs allows us to control our tools and tasks (Illich 1973). By contrast, care-less use of pre-fabricated apps can lead to loss of know-how in life (Stiegler 2018).
   - c. The art of collecting traces (digital or not) is timeless - and important to survival.

3.  Emacs as systems design for technology-enhanced learning (TEL):

    - a. Good TEL design performance should also educate the designer (Goodyear &amp; Retalis 2010). Further, good design focuses on 'frameworks', which are systems 'that can be customized, specialized, or extended to provide more specific, more appropriate, or slightly different capabilities' (Alexander 1993 in Gabriel 1996), assembling epistemic domains (Markauskaite &amp; Goodyear 2017). This pedagogical approach is supported by Emacs artifacts (packages, documentation, forums, etc.).
    - b.  The 'wise' use of programming (Crichton 1983) actively manages and organizes workflow. This permits iterative development. Elementary use-case: a workflow that relies on PPT and Zoom vs. already having a more modular viewpoint supported by diverse Emacs packages. The latter adaptability is supported by the latest educational research (Guo). Further: Emacs allows movement from user to contributor (Stiegler 2018; Stavrou).
    - c. Wise programming can include fun programming - 'there are people who want to put a stop to that' (Crichton 1983; Gaffney 2019).
    - d. Extending this systems/design view, Emacs is developed and maintained by a community dedicated to supporting this freedom of use in these multiple contexts (cf. Illich 1973).
    - e. One perspective is less likely to override others in such a heterogeneous environment (Morin 2004).

# Conclusion

Emacs does not limit any imaginable type of interactivity and promotes a diversity of related content, further supporting the pursuit of more advanced TEL (viz. Guo). This was illustrated through an elementary use-case that compared being limited to PPT as opposed to having basic familiarity with Emacs, which permits manageable, continuous exploration of knowledge, workflows, and tools (cf. Alexander in Gabriel; Goodyear &amp; Retalis) and movement from consumer to creator (Stiegler; Stavrou). Using Emacs means being able to use a sophisticated digital tool, thanks to the contributions of heterogeneous maintainers, developers, and community members whose artifacts comprise a meta picture. It is possible, through using Emacs, to learn about the design of digital learning and learning in general as access to knowledge is not walled off by prefabricated design(cf. Illich; Stiegler). We can choose our own adventure.


# References

## General workflow and fun:
-   Bin, C. (2020). Mastering Emacs in one year. &lt;https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org#on-the-shoulders-of-giants&gt;. Accessed 25 October 2021.
-   Gaffney, N. (2019). Oblique strategies.  &lt;https://github.com/zzkt/oblique-strategies&gt;. Accessed 25 October 2021.
-   Goetz, G. (2021). Additional references: A back-to-school/GTD Emacs journey. &lt;https://gretzuni.com/articles/a-back-to-school-gtd-emacs-journey&gt;. Accessed 25 October 2021.
-   Guerry, B. (2020). Org-mode features you may not know. &lt;https://bzg.fr/en/some-emacs-org-mode-features-you-may-not-know/&gt;. Accessed 25 October 2021.
-   Kaiser, K. (2017). Writing a technical book in Emacs and Org-mode. &lt;https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/&gt;. Accessed 25 October 2021.
-   Planet Emacs Life. &lt;https://planet.emacslife.com/&gt;. Accessed 25 October 2021.
-   Stavrou, P. My packages for GNU Emacs. &lt;https://protesilaos.com/emacs/&gt;. Accessed 25 October 2021.
-   Wellons, C. Emacs articles. &lt;https://nullprogram.com/tags/emacs/&gt;. Accessed 25 October 2021. 

##  On TEL design:
-   Caillet, E. (2008). L&#8217;exposition, le mus&#233;e: L&#8217;&#233;ducation informelle comme &#233;cole de l&#8217;&#233;ducation formelle. In Andler, D. &amp; Guerry, B. (Eds.). *Apprendre demain: Sciences cognitives et &#233;ducation &#224; l&#8217;&#232;re num&#233;rique*, 137-154. Paris: Hatier.
-   Crichton, M. (1983). *Electronic life*. New York: Knopf.
-   De Bono, E. (2009). *Think! Before it's too late*. London: Random House.
-   Engelbart, D. (1962). *Augmenting human intellect: A conceptual framework*. Menlo Park: Stanford Research Institute.
-   Drosos, I. &amp; Guo, P. (2021). Streamers teaching programming, art, and gaming: Cognitive apprenticeship, serendipitous teachable moments, and tacit expert knowledge. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), short paper, 2021. &lt;https://pg.ucsd.edu/pubs.htm&gt;. Accessed 25 October 2021.
-   Gabriel, R. (1996). *Patterns of software*. New York, Oxford: Oxford University Press.
-   Goodyear, P. &amp; Retalis, S. (2010). Learning, technology and design. In Goodyear, P. &amp; Retalis, S. (Eds.). *Technology-enhanced learning: Design patterns and pattern languages*, 1-27. Rotterdam, Boston: Sense Publishers.
-   Guerry, B. &amp; Gaume, N. (2008). Ce que les jeux vid&#233;o nous apprennent. In Andler, D. &amp; Guerry, B. (Eds.). *Apprendre Demain: Sciences cognitives et &#233;ducation &#224; l&#8217;&#232;re num&#233;rique*, 155-159. Paris: Hatier.
-   Guo, P. (2018). Students, systems, and interactions: Synthesizing the first
four years of Learning@Scale and charting the future. L@S 2018, June 26&#8211;28, 2018, London, United Kingdom. DOI: https://doi.org/10.1145/3231644.3231662. &lt;https://pg.ucsd.edu/pubs.htm&gt;. Accessed 25 October 2021.
-   Guo, P., Kim, J. &amp; Rubin, R. (2014). How video production affects student engagement: An empirical study of MOOC videos. ACM Conference on Learning at Scale. &lt;https://pg.ucsd.edu/pubs.htm&gt;. Accessed 25 October 2021.
-   Illich, I. (1973). *Tools of conviviality*. New York: Harper &amp; Row.
-   Kim, J., Guo, P., Seaton, D., Mitros, P., Gajos, K. &amp; Miller, R. (2014). Understanding in-video dropouts and interaction peaks in online lecture videos. ACM Conference on Learning at Scale. &lt;https://pg.ucsd.edu/pubs.htm&gt;. Accessed 25 October 2021.
-   Markauskaite, L. &amp; Goodyear, P. (2017). *Epistemic fluency and professional education: innovation, knowledgeable action and actionable knowledge*. Dordrecht: Springer.
-   Markel, J. &amp; Guo, P. (2020). Designing the future of experiential learning environments for a post-COVID world: A preliminary case study. NFW &#8217;20 (Symposium on the New Future of Work), August 3&#8211;5, 2020, Virtual Event. &lt;https://pg.ucsd.edu/pubs.htm&gt;. Accessed 25 October 2021.
-   Morin, E. ([2004] 2008). *La M&#233;thode - tome 6: &#201;thique*. &#201;ditions du Seuil: Paris.
-   Stallman, R. (2002). *Free software, free society*. GNU Press, Free Software Foundation.
-   Stiegler, B. (2018). *The neganthropocene*. Open Humanities Press.
-   Trocm&#233;-Fabre, H. (1999). *R&#233;inventer le m&#233;tier d&#8217;apprendre*. Paris: &#201;ditions d&#8217;organisation.
-   Vygotsky, L. (1979). *Mind in society: The development of higher psychological processes*. Cambridge and London: Harvard University Press.
-   Wang, S. (2020). Open knowledge. Hope in Source. &lt;https://hopeinsource.com/open-knowledge/#open-source-knowledge-proof-of-work&gt;. Accessed 25 October 2021.


# Availability and preferred Q&amp;A approach

Due to the pandemic situation, my teaching schedule fluctuates so I
will not know my availability until much closer to the
date. Therefore, I can only guarantee delayed answer response
(whatever you request), but if available, will join live.
May I please note that I will be pre-recording my video if this submission is accepted.


# Speaker release

By submitting this proposal, I agree that my presentation at
EmacsConf 2021 is subject to the following terms and conditions:

The EmacsConf organizers may capture audio and video (a "Recording")
of my presentation and any associated materials, which may include
slides, notes, transcripts, and prerecording(s) of my presentation
that I provide to the EmacsConf organizers.

I authorize the EmacsConf organizers to distribute, reproduce,
publicly display, and prepare derivative works of the Recording and
any derivative works of the Recording (the "Licensed Materials")
under the terms of the Creative Commons Attribution-ShareAlike 4.0
International (CC BY-SA 4.0) license.

I grant to the EmacsConf organizers permission to use my name,
likeness, and biographic information in association with their use
of the Licensed Materials under the above license.

I represent that I have the authority to grant the above license to
the EmacsConf organizers. If my presentation incorporates any
material owned by third parties, I represent that the material is
sublicensable to the EmacsConf organizers or that my use of them is
fair use.</description><url>https://emacsconf.org/2021/talks/adventure</url><persons><person>Greta Goetz</person></persons></event><event id="11" guid="ea5bab3c-f31e-68a4-fa23-81ca67fa1990"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-unix</slug><duration>19:00</duration><title>"GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer"</title><abstract># GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer
Daniel Rose

The talk targets users who are curious about computational philosophies,
or those who might not know how to best utilise Emacs conceptually. The
talk will cover what the UNIX philosophy is, the GNU Free Software
principles, a typical (Neo)Vi(m) user's approach, and then how one might
accomplish this in Emacs combining the aformentioned ideals. The
listeners will learn how they can approach Emacs ideologically, and how
blocking themselves into one philosophy or the other will limit their
efficiency. Although you may be a veteran GNU/Linux and Emacs user,
understanding how to use both philosophies together will still allow you
to be more performant than without.



# Outline

-   5-10 minutes:
    Cut out the portions of explaining the whole UNIX and GNU philosophies
    and instead talk about concrete examples:
    -   How can one limit their usage of CLI tools while still maintaining
        the ideals of both.
    -   How using CLI tools can still perfectly flow into Emacs.
    -   How having all programs in Emacs and unified keybindings is akin
        to a terminal user.</abstract><description>Times are approximate and will probably change.

# GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer
Daniel Rose

The talk targets users who are curious about computational philosophies,
or those who might not know how to best utilise Emacs conceptually. The
talk will cover what the UNIX philosophy is, the GNU Free Software
principles, a typical (Neo)Vi(m) user's approach, and then how one might
accomplish this in Emacs combining the aformentioned ideals. The
listeners will learn how they can approach Emacs ideologically, and how
blocking themselves into one philosophy or the other will limit their
efficiency. Although you may be a veteran GNU/Linux and Emacs user,
understanding how to use both philosophies together will still allow you
to be more performant than without.



# Outline

-   5-10 minutes:
    Cut out the portions of explaining the whole UNIX and GNU philosophies
    and instead talk about concrete examples:
    -   How can one limit their usage of CLI tools while still maintaining
        the ideals of both.
    -   How using CLI tools can still perfectly flow into Emacs.
    -   How having all programs in Emacs and unified keybindings is akin
        to a terminal user.</description><url>https://emacsconf.org/2021/talks/unix</url><persons><person>Daniel Rose</person></persons></event><event id="04" guid="db4ccb28-867f-df24-c073-eaca6edad438"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-omegat</slug><duration>19:00</duration><title>Emacs manuals translation and OmegaT</title><abstract># Emacs manuals translation and OmegaT
Jean-Christophe Helary

Even if it is generally agreed that software localization is a good thing, Emacs is lacking in that respect for a number of technical reasons. Nonetheless, the free software using public could greatly benefit from Emacs manuals translations, even if the interface were to remain in English.

OmegaT is a multiplatform GPL3+ "computer aided translation" (CAT) tool running on OpenJDK 8. CATs are roughly equivalent for translators to what IDEs are for code writers. Casual translators can benefit from their features but professionals or commited amateurs are the most likely to make the most use of such tools.

When OmegaT, free software based forges and Emacs meet, we have a free multi-user translation environment that can easily sustain the (close to) 2 million words load that comprise the manuals distributed with Emacs, along with powerful features like arbitrary string protection for easy typing and QA (quality assurance), automatic legacy translation handling, glossary management, history based or predictive autocompletion, etc.

The current trial project for French is hosted on 2 different forges:

1.  sr.ht hosts the source files
    <https://sr.ht/~brandelune/documentation_emacs/>
2.  chapril hosts the OmegaT team project architecture
    <https://sr.ht/~brandelune/documentation_emacs/>

The sources are regularly updated with a po4a based shell script.

# Outline

- Duration: 10 minutes
- Software used during the presentation
  - [po4a](https://po4a.org) a tool to convert documentation formats to and from the commonly used `gettext` **PO** format.
    po4a supports the `texinfo` format along with many others.
  - [OmegaT](https://omegat.org) a "computer aided translation" tool used by translators to efficiently combine translation ressources (legacy translations, glossaries, etc.) so as to produce more consistent translations.

During the presentation, I will show:

- How to use po4a to convert the texi files to the PO format (the org.org file is also converted)
- What are the specificities of the Emacs manuals and what difficulties they present to the tanslator
- How to address those specificities in OmegaT, with regular expressions
- How to use OmegaT features such as arbitrary string protection, legacy translation handling, glossaries, autocompletion, QA, etc.
- How to use OmegaT with a team of 2 (or more) translators working at the same time
- How to solve translation conflicts

I will *not* show:

- How to create an OmegaT project
- How to setup an OmegaT team project
- How to use OmegaT from the command line to work in localization pipelines
- How to use machine translation and MT "post-edit"
- How to convert back the translated files to texi format
- How to install translated texi files for use in Emacs</abstract><description>Times are approximate and will probably change.

# Emacs manuals translation and OmegaT
Jean-Christophe Helary

Even if it is generally agreed that software localization is a good thing, Emacs is lacking in that respect for a number of technical reasons. Nonetheless, the free software using public could greatly benefit from Emacs manuals translations, even if the interface were to remain in English.

OmegaT is a multiplatform GPL3+ "computer aided translation" (CAT) tool running on OpenJDK 8. CATs are roughly equivalent for translators to what IDEs are for code writers. Casual translators can benefit from their features but professionals or commited amateurs are the most likely to make the most use of such tools.

When OmegaT, free software based forges and Emacs meet, we have a free multi-user translation environment that can easily sustain the (close to) 2 million words load that comprise the manuals distributed with Emacs, along with powerful features like arbitrary string protection for easy typing and QA (quality assurance), automatic legacy translation handling, glossary management, history based or predictive autocompletion, etc.

The current trial project for French is hosted on 2 different forges:

1.  sr.ht hosts the source files
    &lt;https://sr.ht/~brandelune/documentation_emacs/&gt;
2.  chapril hosts the OmegaT team project architecture
    &lt;https://sr.ht/~brandelune/documentation_emacs/&gt;

The sources are regularly updated with a po4a based shell script.

# Outline

- Duration: 10 minutes
- Software used during the presentation
  - [po4a](https://po4a.org) a tool to convert documentation formats to and from the commonly used `gettext` **PO** format.
    po4a supports the `texinfo` format along with many others.
  - [OmegaT](https://omegat.org) a "computer aided translation" tool used by translators to efficiently combine translation ressources (legacy translations, glossaries, etc.) so as to produce more consistent translations.

During the presentation, I will show:

- How to use po4a to convert the texi files to the PO format (the org.org file is also converted)
- What are the specificities of the Emacs manuals and what difficulties they present to the tanslator
- How to address those specificities in OmegaT, with regular expressions
- How to use OmegaT features such as arbitrary string protection, legacy translation handling, glossaries, autocompletion, QA, etc.
- How to use OmegaT with a team of 2 (or more) translators working at the same time
- How to solve translation conflicts

I will *not* show:

- How to create an OmegaT project
- How to setup an OmegaT team project
- How to use OmegaT from the command line to work in localization pipelines
- How to use machine translation and MT "post-edit"
- How to convert back the translated files to texi format
- How to install translated texi files for use in Emacs</description><url>https://emacsconf.org/2021/talks/omegat</url><persons><person>Jean-Christophe Helary</person></persons></event><event id="05" guid="525d972d-1e34-bcb4-e9c3-861942549357"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-nongnu</slug><duration>19:00</duration><title>NonGNU ELPA Update</title><abstract># NonGNU ELPA Update
Kaluđerčić, Philip

NonGNU ELPA was announced last year, as a package repository
that will be enabled by default in Emacs, but doesn't require
any copyright assignment. This means that a lot of popular
packages can now be installed easier, without any additional
configuration.

In this talk I would like the give a reminder of what NonGNU
ELPA is and how it works, update the participants on what has
happened since last year and what maintainers have to do if they
want their packages to be added to the repository.</abstract><description>Times are approximate and will probably change.

# NonGNU ELPA Update
Kalu&#273;er&#269;i&#263;, Philip

NonGNU ELPA was announced last year, as a package repository
that will be enabled by default in Emacs, but doesn't require
any copyright assignment. This means that a lot of popular
packages can now be installed easier, without any additional
configuration.

In this talk I would like the give a reminder of what NonGNU
ELPA is and how it works, update the participants on what has
happened since last year and what maintainers have to do if they
want their packages to be added to the repository.</description><url>https://emacsconf.org/2021/talks/nongnu</url><persons><person>Kaluđerčić</person><person>Philip</person></persons></event><event id="06" guid="245a575a-965a-caa4-8d3b-75f8519c2f3e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-borg</slug><duration>19:00</duration><title>Manual Package Management in The Era of Repositories - Why and How</title><abstract># Manual Package Management in The Era of Repositories - Why and How
Dhavan (codingquark)

Emacs now has many package repositories - enought to have conflicts
and arguments about. The packages are becoming big, they depend on many
other packages and it is not easy to keep track of what all is being
installed in our Emacsen. An aggressive way out of this is to use Yet
Another Package and install all elisp code manually - with borg[1].

[1]: <https://github.com/emacscollective/borg>



# Outline

-   5-10 minutes: (brief description/outline)
    1.  What are we trying to solve?
    2.  What is borg?
    3.  How to use it?
    4.  Assimilate a package for demo</abstract><description>Times are approximate and will probably change.

# Manual Package Management in The Era of Repositories - Why and How
Dhavan (codingquark)

Emacs now has many package repositories - enought to have conflicts
and arguments about. The packages are becoming big, they depend on many
other packages and it is not easy to keep track of what all is being
installed in our Emacsen. An aggressive way out of this is to use Yet
Another Package and install all elisp code manually - with borg[1].

[1]: &lt;https://github.com/emacscollective/borg&gt;



# Outline

-   5-10 minutes: (brief description/outline)
    1.  What are we trying to solve?
    2.  What is borg?
    3.  How to use it?
    4.  Assimilate a package for demo</description><url>https://emacsconf.org/2021/talks/borg</url><persons><person>Dhavan (codingquark)</person></persons></event><event id="07" guid="86158391-53a2-7cb4-d7d3-020afbf6d8d9"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-telega</slug><duration>19:00</duration><title>telega.el and the Emacs community on Telegram</title><abstract># telega.el and the Emacs community on Telegram
Gabriele Bozzola and Evgeny Zajcev

Telegram is a cross-platform instant messaging system. The large number of
features and the widespread adoption make it a good choice for both private
conversations with friends and for large online communities. In this talk, I
am going to present the Emacs community on Telegram and its initiatives. I
am also going to discuss telega.el, the Emacs client for Telegram. telega.el
is a high-quality package that perfectly integrates in Emacs. It supports
the vast majority of the features supported by the official clients, while
adding several unique ones. In the talk, I will present the package and
highlight some of the most important features.</abstract><description>Times are approximate and will probably change.

# telega.el and the Emacs community on Telegram
Gabriele Bozzola and Evgeny Zajcev

Telegram is a cross-platform instant messaging system. The large number of
features and the widespread adoption make it a good choice for both private
conversations with friends and for large online communities. In this talk, I
am going to present the Emacs community on Telegram and its initiatives. I
am also going to discuss telega.el, the Emacs client for Telegram. telega.el
is a high-quality package that perfectly integrates in Emacs. It supports
the vast majority of the features supported by the official clients, while
adding several unique ones. In the talk, I will present the package and
highlight some of the most important features.</description><url>https://emacsconf.org/2021/talks/telega</url><persons><person>Gabriele Bozzola and Evgeny Zajcev</person></persons></event><event id="08" guid="e4bdc2c1-e4b6-67e4-aafb-87ec9aaf846b"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-nangulator</slug><duration>19:00</duration><title>Introducing N-Angulator</title><abstract># Introducing N-Angulator
Kevin Haddock

The Unix file system is essentially an N-dimentional sparse array that
currently lacks a decent editor and browser which
can effectively leverage the logical tri-angulation (or, more properly
"n-angulation") of atoms/blobs within it.

N-Angulator is the genesis, to wit, the "Model-T," of such a program.

(see google drive link below for a very old uncirculated prototype
video demo.   Be sure and turn the volume UP!)

na.intro.flv
<https://drive.google.com/file/d/1EZN0Xs8eGlEbSIYFml2lp3GCNnmLQa98/view?usp=drive_web>



# Outline

-   5-10 minutes: (brief description/outline)

The reconceptualization of the Unix file system as the N-Dimensional
sparse array will be discussed.

A simple pre-existing database will be queried.

If time, questions will be entertained by video/audio and/or IRC.</abstract><description>Times are approximate and will probably change.

# Introducing N-Angulator
Kevin Haddock

The Unix file system is essentially an N-dimentional sparse array that
currently lacks a decent editor and browser which
can effectively leverage the logical tri-angulation (or, more properly
"n-angulation") of atoms/blobs within it.

N-Angulator is the genesis, to wit, the "Model-T," of such a program.

(see google drive link below for a very old uncirculated prototype
video demo.   Be sure and turn the volume UP!)

na.intro.flv
&lt;https://drive.google.com/file/d/1EZN0Xs8eGlEbSIYFml2lp3GCNnmLQa98/view?usp=drive_web&gt;



# Outline

-   5-10 minutes: (brief description/outline)

The reconceptualization of the Unix file system as the N-Dimensional
sparse array will be discussed.

A simple pre-existing database will be queried.

If time, questions will be entertained by video/audio and/or IRC.</description><url>https://emacsconf.org/2021/talks/nangulator</url><persons><person>Kevin Haddock</person></persons></event><event id="09" guid="14ab7a54-d75d-45e4-85ab-8fd2e391ea41"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-janitor</slug><duration>19:00</duration><title>A day in the life of a janitor</title><abstract># A day in the life of a janitor
Stefan Monnier

Because of a reckless former Emacs maintainer that shall
  better stay unnamed, ELisp has seen a fair bit of churn in the last 10
  years, making it necessary to clean up "old" code [in order to open up
  the road for yet more recklessness? ].
  In this documentary we will follow a famous janitor in his every day job
  dealing with the aftermath of the cl-lib / lexical-binding party.

-   ~20 minutes
    Here really, I'm not sure how much time this will take.  I put 20
    minutes because I think I might be able to fill that and I think more
    than that could turn too boring.  I intend to make it a "live coding"
    kind of thing, without anything like an outline: it's basically "make"
    followed by fixing the warnings.</abstract><description>Times are approximate and will probably change.

# A day in the life of a janitor
Stefan Monnier

Because of a reckless former Emacs maintainer that shall
  better stay unnamed, ELisp has seen a fair bit of churn in the last 10
  years, making it necessary to clean up "old" code [in order to open up
  the road for yet more recklessness? ].
  In this documentary we will follow a famous janitor in his every day job
  dealing with the aftermath of the cl-lib / lexical-binding party.

-   ~20 minutes
    Here really, I'm not sure how much time this will take.  I put 20
    minutes because I think I might be able to fill that and I think more
    than that could turn too boring.  I intend to make it a "live coding"
    kind of thing, without anything like an outline: it's basically "make"
    followed by fixing the warnings.</description><url>https://emacsconf.org/2021/talks/janitor</url><persons><person>Stefan Monnier</person></persons></event><event id="10" guid="51c360e6-188f-9a34-05bb-0a8d2eb09cdc"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-maintainers</slug><duration>19:00</duration><title>How to help Emacs maintainers?</title><abstract># How to help Emacs maintainers?
Bastien Guerry

After 11 years of helping as the Org maintainer, I would
like to share a few lessons learned.  My goal is help everyone take
care of Emacs maintainance by taking care of Emacs maintainers.



# Outline

-   5-10 minutes</abstract><description>Times are approximate and will probably change.

# How to help Emacs maintainers?
Bastien Guerry

After 11 years of helping as the Org maintainer, I would
like to share a few lessons learned.  My goal is help everyone take
care of Emacs maintainance by taking care of Emacs maintainers.



# Outline

-   5-10 minutes</description><url>https://emacsconf.org/2021/talks/maintainers</url><persons><person>Bastien Guerry</person></persons></event><event id="12" guid="716d913f-de8b-91a4-5f33-e04ba0905fa5"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-gregorian</slug><duration>19:00</duration><title>Typesetting Gregorian Chant with Emacs</title><abstract># Typesetting Gregorian Chant with Emacs
Spencer King

There are a variety of methods for typesetting gregorian
chant scores and outputting high-quality sheet music. One of these is
a tool called Gregorio, which integrates with LaTeX allowing scores to
be cleanly inserted into other documents. All Gregorio files are plain
text, allowing them to easily be shared with other users and managed
with a version control system. In this talk, I will give a brief
overview of the Gregorio tool and then show how it can be used in
Emacs by typesetting a simple score. All code and examples will be
made available to help new users get started with typesetting their
own scores.



# Outline

-   5-10 minutes: (brief description/outline)
    1.  Introduction to chant music
    2.  Introduction to Gregorio
    3.  Example of typesetting a score in Emacs
    4.  Code and example availability</abstract><description>Times are approximate and will probably change.

# Typesetting Gregorian Chant with Emacs
Spencer King

There are a variety of methods for typesetting gregorian
chant scores and outputting high-quality sheet music. One of these is
a tool called Gregorio, which integrates with LaTeX allowing scores to
be cleanly inserted into other documents. All Gregorio files are plain
text, allowing them to easily be shared with other users and managed
with a version control system. In this talk, I will give a brief
overview of the Gregorio tool and then show how it can be used in
Emacs by typesetting a simple score. All code and examples will be
made available to help new users get started with typesetting their
own scores.



# Outline

-   5-10 minutes: (brief description/outline)
    1.  Introduction to chant music
    2.  Introduction to Gregorio
    3.  Example of typesetting a score in Emacs
    4.  Code and example availability</description><url>https://emacsconf.org/2021/talks/gregorian</url><persons><person>Spencer King</person></persons></event><event id="29" guid="6fccae45-04b5-5524-662b-fdba87754d06"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-montessori</slug><duration>19:00</duration><title>Emacs and Montessori Philosophy</title><abstract># Emacs and Montessori Philosophy


As a former Montessori guide and now parent, I often think about the
relationship of this particular educational philosophy and how it manifests
in my work with software, Emacs in particular. This talk introduces the
concept of Emacs as an educational environment and how it expresses elements of
Montessori psychology regarding "Human Tendencies". Human tendencies are innate
drives present in everybody that allow us to explore and make sense of our world.



# Outline

-   5-10 minutes: (brief description/outline)
    Quick overview of a Montessori classroom environment:
    
    -   the adults or guides primarily observe and present material
    -   the children are free to explore materials as they choose (within limits)
    -   the environment itself is prepared specifically to foster engagement
    
    Enumerate the "Human Tendencies":
    
    -   Abstraction
    -   Activity
    -   Communication
    -   Exactness
    -   Exploration
    -   Manipulation (of the environment)
    -   Order
    -   Orientation
    -   Repetition
    -   Self-Perfection
    -   Work (also described as "purposeful activity")
    
    How does Emacs express these things?
    
    -   in the short version, pose the question, and perhaps give one example.
    -   Emacs is an environment that provides facilities for individuals to
        find their way to proficiency through their Human Tendencies.
    -   We are all both learners and guides, Emacs is our classroom</abstract><description>Times are approximate and will probably change.

# Emacs and Montessori Philosophy


As a former Montessori guide and now parent, I often think about the
relationship of this particular educational philosophy and how it manifests
in my work with software, Emacs in particular. This talk introduces the
concept of Emacs as an educational environment and how it expresses elements of
Montessori psychology regarding "Human Tendencies". Human tendencies are innate
drives present in everybody that allow us to explore and make sense of our world.



# Outline

-   5-10 minutes: (brief description/outline)
    Quick overview of a Montessori classroom environment:
    
    -   the adults or guides primarily observe and present material
    -   the children are free to explore materials as they choose (within limits)
    -   the environment itself is prepared specifically to foster engagement
    
    Enumerate the "Human Tendencies":
    
    -   Abstraction
    -   Activity
    -   Communication
    -   Exactness
    -   Exploration
    -   Manipulation (of the environment)
    -   Order
    -   Orientation
    -   Repetition
    -   Self-Perfection
    -   Work (also described as "purposeful activity")
    
    How does Emacs express these things?
    
    -   in the short version, pose the question, and perhaps give one example.
    -   Emacs is an environment that provides facilities for individuals to
        find their way to proficiency through their Human Tendencies.
    -   We are all both learners and guides, Emacs is our classroom</description><url>https://emacsconf.org/2021/talks/montessori</url><persons><person>Grant Shangreaux</person></persons></event><event id="52" guid="9cee7e43-bcb1-7f64-c40b-5f9ea938d11a"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-erg</slug><duration>19:00</duration><title>Emacs Research Group, Season Zero: What we did together with Emacs in 2 hours a week for a year</title><abstract># Emacs Research Group, Season Zero: What we did together with Emacs in 2 hours a week for a year
Noorah Alhasan, Joe Corneli, Raymond Puzio, Leo Vivier

The four of us met at EmacsConf 2020, and joined together around a
common interest in Emacs and research.  Since then, we have convened as
the Emacs Research Group for weekly meetings.  During these meetings, we
took notes collaboratively, using a ‘conflict-free replicated data type’
package (crdt.el); at the end of each session, we debriefed using a
template that we call a Project Action Review (PAR).  As as a
meta-review of our sessions, every six weeks we prepared a Causal
Layered Analysis (CLA), which gave us a different perspective on what we
had done.  We reflected further on our experiences and methods, linking
our CLA to plans and design patterns.  As a formal research output, we
contributed a write-up of these matters to a joint paper which we
presented at the Pattern Languages of Programs Conference (PLoP 2021).
The paper included an interactive workshop, in which we explored roles
in real-time problem solving and collaboration.

In our short talk we share information about these methods, making a
case for other people getting together and creating their own small
research communities similar to ours.</abstract><description>Times are approximate and will probably change.

# Emacs Research Group, Season Zero: What we did together with Emacs in 2 hours a week for a year
Noorah Alhasan, Joe Corneli, Raymond Puzio, Leo Vivier

The four of us met at EmacsConf 2020, and joined together around a
common interest in Emacs and research.  Since then, we have convened as
the Emacs Research Group for weekly meetings.  During these meetings, we
took notes collaboratively, using a &#8216;conflict-free replicated data type&#8217;
package (crdt.el); at the end of each session, we debriefed using a
template that we call a Project Action Review (PAR).  As as a
meta-review of our sessions, every six weeks we prepared a Causal
Layered Analysis (CLA), which gave us a different perspective on what we
had done.  We reflected further on our experiences and methods, linking
our CLA to plans and design patterns.  As a formal research output, we
contributed a write-up of these matters to a joint paper which we
presented at the Pattern Languages of Programs Conference (PLoP 2021).
The paper included an interactive workshop, in which we explored roles
in real-time problem solving and collaboration.

In our short talk we share information about these methods, making a
case for other people getting together and creating their own small
research communities similar to ours.</description><url>https://emacsconf.org/2021/talks/erg</url><persons><person>Noorah Alhasan</person><person>Joe Corneli</person><person>Raymond Puzio</person><person>Leo Vivier</person></persons></event><event id="13" guid="0f98a5bb-53ce-fb74-1003-0b1f320d414e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-cs</slug><duration>19:00</duration><title>One effective CS grad student workflow</title><abstract># One effective CS grad student workflow
Greg Coladonato

When I was an undergrad, I learned many things, most of
which I forgot. In the time since then, I've discovered Org Mode, Org
Roam, Org Noter, Org Ref. PDF Tools, and Anki. I would like to share
my approach for capturing all the information that comes my way as a
MS CS student at Georgia Tech, in the hopes that I can both get
feedback on ways to improve the system I use, as well as hopefully
inspire others to build workflows that make them more productive.



# Outline

-   5-10 minutes: Go through some typical workflows associated with being a grad student, using the packages mentioned in the abstract.</abstract><description>Times are approximate and will probably change.

# One effective CS grad student workflow
Greg Coladonato

When I was an undergrad, I learned many things, most of
which I forgot. In the time since then, I've discovered Org Mode, Org
Roam, Org Noter, Org Ref. PDF Tools, and Anki. I would like to share
my approach for capturing all the information that comes my way as a
MS CS student at Georgia Tech, in the hopes that I can both get
feedback on ways to improve the system I use, as well as hopefully
inspire others to build workflows that make them more productive.



# Outline

-   5-10 minutes: Go through some typical workflows associated with being a grad student, using the packages mentioned in the abstract.</description><url>https://emacsconf.org/2021/talks/cs</url><persons><person>Greg Coladonato</person></persons></event><event id="16" guid="43cc5db4-e26f-fb44-9aeb-b16c38d8cef3"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-professional</slug><duration>19:00</duration><title>Using Org-Mode For Recording Continuous Professional Development</title><abstract># Using Org-Mode For Recording Continuous Professional Development
Philip Beadling

I recently had the pleasure of being audited for my CPD record with one
of the large engineering professional bodies.  I decided to harness
org-mode's TODO lists to record CPD items and my progress against them
completely within Emacs.  I also wanted the ability to export the data
in a well presented, compact format for auditing submission.

The project was a success (I passed the audit) and the resulting system
integrates really well into my wider daily Emacs workflow, making future
CPD recording seamless.

The talk will explain how I tweaked and extended org-mode to get it to
record the data I wanted, followed by a demo.

A basic demo org file with embedded elisp can be seen here:
<https://raw.githubusercontent.com/falloutphil/Misc/master/cpd.org>

A basic generated PDF from the basic demo is here:
![img](https://preview.redd.it/nvdpmityhuw51.png?width=1169&format=png&auto=webp&s=e0c5080560c877aa02933a40c224e52b8a1fed3b)

I have a much more involved example I could also use for the demo.

The template contains a few examples.  Examples are Goals that are split
up into Activities. All Activities must have a Goal, and within a Goal
all activities must be complete for the Goal to be automatically set to
complete.

It's basically leveraging Org Capture Templates to create custom Goals
and Activities.

On save or update these are then rendered into a table using Column View.

Activities are sorted by date they were completed on.

The Column View is pre-configured to be exported to PDF in a condensed
but readable format for submission. It stays fairly readable even when
the pages get busy.

The elisp required is all under the "Config" bullet and Emacs will ask
to execute it on opening the Org file. The elisp concerns itself with
nice custom org capture functions and a few functions to ensure nice
formatting on export, etc.



# Outline

-   5-10 minutes:

A quick walkthrough of the setup and functions, followed by a demo of how
to add CPD items, and update them.  Finally show generation of a PDF
containing all the items tabulated and ready for audit review.  I
estimate this at approx 10 minutes.</abstract><description>Times are approximate and will probably change.

# Using Org-Mode For Recording Continuous Professional Development
Philip Beadling

I recently had the pleasure of being audited for my CPD record with one
of the large engineering professional bodies.  I decided to harness
org-mode's TODO lists to record CPD items and my progress against them
completely within Emacs.  I also wanted the ability to export the data
in a well presented, compact format for auditing submission.

The project was a success (I passed the audit) and the resulting system
integrates really well into my wider daily Emacs workflow, making future
CPD recording seamless.

The talk will explain how I tweaked and extended org-mode to get it to
record the data I wanted, followed by a demo.

A basic demo org file with embedded elisp can be seen here:
&lt;https://raw.githubusercontent.com/falloutphil/Misc/master/cpd.org&gt;

A basic generated PDF from the basic demo is here:
![img](https://preview.redd.it/nvdpmityhuw51.png?width=1169&amp;format=png&amp;auto=webp&amp;s=e0c5080560c877aa02933a40c224e52b8a1fed3b)

I have a much more involved example I could also use for the demo.

The template contains a few examples.  Examples are Goals that are split
up into Activities. All Activities must have a Goal, and within a Goal
all activities must be complete for the Goal to be automatically set to
complete.

It's basically leveraging Org Capture Templates to create custom Goals
and Activities.

On save or update these are then rendered into a table using Column View.

Activities are sorted by date they were completed on.

The Column View is pre-configured to be exported to PDF in a condensed
but readable format for submission. It stays fairly readable even when
the pages get busy.

The elisp required is all under the "Config" bullet and Emacs will ask
to execute it on opening the Org file. The elisp concerns itself with
nice custom org capture functions and a few functions to ensure nice
formatting on export, etc.



# Outline

-   5-10 minutes:

A quick walkthrough of the setup and functions, followed by a demo of how
to add CPD items, and update them.  Finally show generation of a PDF
containing all the items tabulated and ready for audit review.  I
estimate this at approx 10 minutes.</description><url>https://emacsconf.org/2021/talks/professional</url><persons><person>Philip Beadling</person></persons></event><event id="23" guid="a10ce62e-6454-d784-21bb-f6a0488e883c"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-tech</slug><duration>19:00</duration><title>Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide</title><abstract># Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide
Jan Ypma

The emacs org-babel package is often mentioned in conjunction with
literate programming. The ability to mix code segments with prose
indeed offers an intuitive way to augment semantic code pieces with
textual descriptions.

In recent projects, I've started to turn to org-mode as the primary
format to maintain technical documentation, as well as slides for a
technical language course. By using org-babel to pull in "live" code
for REST requests, language examples, and shell scripts, one can be
sure that the documentation and slides are never out of date.

The session will show how leverage org-babel, restclient and
org-treeslide to write and present technical documentation with style.


# Outline

- Introduction
- Demo: Developer guide
- Demo: REST API guide
- Demo: Presentations
- Used packages and configuration</abstract><description>Times are approximate and will probably change.

# Creating technical API documentation and presentations using org-babel, restclient, and org-treeslide
Jan Ypma

The emacs org-babel package is often mentioned in conjunction with
literate programming. The ability to mix code segments with prose
indeed offers an intuitive way to augment semantic code pieces with
textual descriptions.

In recent projects, I've started to turn to org-mode as the primary
format to maintain technical documentation, as well as slides for a
technical language course. By using org-babel to pull in "live" code
for REST requests, language examples, and shell scripts, one can be
sure that the documentation and slides are never out of date.

The session will show how leverage org-babel, restclient and
org-treeslide to write and present technical documentation with style.


# Outline

- Introduction
- Demo: Developer guide
- Demo: REST API guide
- Demo: Presentations
- Used packages and configuration</description><url>https://emacsconf.org/2021/talks/tech</url><persons><person>Jan Ypma</person></persons></event><event id="18" guid="b092bc88-e74c-a9c4-611b-d47c99ef578c"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-exec</slug><duration>19:00</duration><title>Org as an executable format</title><abstract># Org as an executable format
Tom Gillespie

Org mode is known for its flexibility, power, and staggeringly diverse
number of workflows, users, and use cases.

This talk explores just how far we can push the boundaries of the sane
and sensible with regard to Org workflows.

In particular it will discuss shebang blocks, and elvs: two parts of a
complete system for creating executable Org files.

Org syntax does not support shebang lines. However, it turns out that
Org syntax enables something even better &#x2014; shebang blocks.

Org is also (supposedly) not an executable file format.  However, by
combining a shebang block with a Org babel source block, and eval
local variables (elvs) Org becomes a multi-language executable format.

In this talk we introduce shebang blocks and elvs as a two part system
that transforms Org files into executable documents that can run on any
recent version of Emacs.

These ideas are implemented in
<https://github.com/tgbugs/orgstrap/blob/master/README.org> and
<https://github.com/tgbugs/orgstrap/blob/master/shebang.org>, and
orgstrap.el is available as a package on MELPA and can be installed
via M-x install-package orgstrap.

The talk will open with a demo of how to create an executable Org file
using the orgstrap machinery.

We then discuss security considerations, and show example use cases.

Finally the talk will cover the details and development of the
portable shebang block for Org mode that works on a wide variety of
systems and shells, and on the development of a formal specification
and a reference implementation for using Org source blocks to
transform Org files from plain text documents with a bit of markup
into self describing computational documents, or interactive
applications.



# Outline

-   5-10 minutes:

A demo of adding the orgstrap block and elvs,
adding a shebang block, and then running an org file.</abstract><description>Times are approximate and will probably change.

# Org as an executable format
Tom Gillespie

Org mode is known for its flexibility, power, and staggeringly diverse
number of workflows, users, and use cases.

This talk explores just how far we can push the boundaries of the sane
and sensible with regard to Org workflows.

In particular it will discuss shebang blocks, and elvs: two parts of a
complete system for creating executable Org files.

Org syntax does not support shebang lines. However, it turns out that
Org syntax enables something even better &amp;#x2014; shebang blocks.

Org is also (supposedly) not an executable file format.  However, by
combining a shebang block with a Org babel source block, and eval
local variables (elvs) Org becomes a multi-language executable format.

In this talk we introduce shebang blocks and elvs as a two part system
that transforms Org files into executable documents that can run on any
recent version of Emacs.

These ideas are implemented in
&lt;https://github.com/tgbugs/orgstrap/blob/master/README.org&gt; and
&lt;https://github.com/tgbugs/orgstrap/blob/master/shebang.org&gt;, and
orgstrap.el is available as a package on MELPA and can be installed
via M-x install-package orgstrap.

The talk will open with a demo of how to create an executable Org file
using the orgstrap machinery.

We then discuss security considerations, and show example use cases.

Finally the talk will cover the details and development of the
portable shebang block for Org mode that works on a wide variety of
systems and shells, and on the development of a formal specification
and a reference implementation for using Org source blocks to
transform Org files from plain text documents with a bit of markup
into self describing computational documents, or interactive
applications.



# Outline

-   5-10 minutes:

A demo of adding the orgstrap block and elvs,
adding a shebang block, and then running an org file.</description><url>https://emacsconf.org/2021/talks/exec</url><persons><person>Tom Gillespie</person></persons></event><event id="17" guid="69763d57-be4e-7e74-509b-92e48a0e7ba6"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-org-outside</slug><duration>19:00</duration><title>The use of Org mode syntax outside of GNU/Emacs</title><abstract># The use of Org mode syntax outside of GNU/Emacs
Karl Voit

With the rising interest in Org mode, the GNU/Emacs community gained
much momentum in the last decade. Being a nicely designed lightweight
markup language, Org mode does not only benefit users of GNU/Emacs.
There are many tools and services supporting Org mode syntax documents
that do have no direct connection to GNU/Emacs. I would like to
elaborate on the advantages on using Org mode syntax for arbitrary
text outside of GNU/Emacs for better typing usability and
collaboration tasks.



# Outline

-   5-10 minutes: (brief description/outline)

This can only be a short teaser for the use of Org mode syntax without
much comparison to other lightweight markup languages. For this
audience, I do think that this would be too short because most
attendees might already have heard the rumors that Org mode is great
or they have adapted Org mode in their workflows already.</abstract><description>Times are approximate and will probably change.

# The use of Org mode syntax outside of GNU/Emacs
Karl Voit

With the rising interest in Org mode, the GNU/Emacs community gained
much momentum in the last decade. Being a nicely designed lightweight
markup language, Org mode does not only benefit users of GNU/Emacs.
There are many tools and services supporting Org mode syntax documents
that do have no direct connection to GNU/Emacs. I would like to
elaborate on the advantages on using Org mode syntax for arbitrary
text outside of GNU/Emacs for better typing usability and
collaboration tasks.



# Outline

-   5-10 minutes: (brief description/outline)

This can only be a short teaser for the use of Org mode syntax without
much comparison to other lightweight markup languages. For this
audience, I do think that this would be too short because most
attendees might already have heard the rumors that Org mode is great
or they have adapted Org mode in their workflows already.</description><url>https://emacsconf.org/2021/talks/org-outside</url><persons><person>Karl Voit</person></persons></event><event id="22" guid="aed5e190-66a0-3dd4-e5eb-be09be94e6c3"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-teach</slug><duration>19:00</duration><title>Using Org-mode to teach programming</title><abstract># Using Org-mode to teach programming
Daniel German

In this presentation I will explain how to use org-mode effectively to
prepare teaching materials, and how to present them.

For the last 5 years I have been using org-mode to teach programming
in different languages: C++, SQL, Ruby, Python, SML
and Scheme. Org-mode has three key advantages:

1.  it supports most programming languages with a common interface,
2.  it is an interactive medium for delivering teaching materials; and
3.  it is an always-up-to-date format that does not need to be exported in order to be published.

I explain how I use org-mode in my courses and how I combine org-mode
notes other tools such as github org-mode to get
always up-to-date teaching materials that one can use for both
teaching and studying (see
<https://github.com/dmgerman/csc116ModernCplusplus/blob/master/lectures/l-01-1-intro/01_1_intro.org>
for an example).

Finally, I will discuss some important aspects to consider when using
org-mode for this purpose.



# Outline

20 minutes:

-   Introduction
-   Quick demonstration
-   Workflow
-   Emacs configuration
-   Important considerations
-   How to get started

Oh, I made a small mistake. I meant to propose a 40 minutes presentation.
But I can give a quicker 20 minutes too.</abstract><description>Times are approximate and will probably change.

# Using Org-mode to teach programming
Daniel German

In this presentation I will explain how to use org-mode effectively to
prepare teaching materials, and how to present them.

For the last 5 years I have been using org-mode to teach programming
in different languages: C++, SQL, Ruby, Python, SML
and Scheme. Org-mode has three key advantages:

1.  it supports most programming languages with a common interface,
2.  it is an interactive medium for delivering teaching materials; and
3.  it is an always-up-to-date format that does not need to be exported in order to be published.

I explain how I use org-mode in my courses and how I combine org-mode
notes other tools such as github org-mode to get
always up-to-date teaching materials that one can use for both
teaching and studying (see
&lt;https://github.com/dmgerman/csc116ModernCplusplus/blob/master/lectures/l-01-1-intro/01_1_intro.org&gt;
for an example).

Finally, I will discuss some important aspects to consider when using
org-mode for this purpose.



# Outline

20 minutes:

-   Introduction
-   Quick demonstration
-   Workflow
-   Emacs configuration
-   Important considerations
-   How to get started

Oh, I made a small mistake. I meant to propose a 40 minutes presentation.
But I can give a quicker 20 minutes too.</description><url>https://emacsconf.org/2021/talks/teach</url><persons><person>Daniel German</person></persons></event><event id="20" guid="fd246cee-b5d6-7cc4-2b63-20e87bb7d750"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-research</slug><duration>19:00</duration><title>Managing a research workflow (bibliographies, note-taking, and arXiv)</title><abstract># Managing a research workflow (bibliographies, note-taking, and arXiv)
Ahmed Khaled

Researchers and knowledge workers have to read and discover new papers,
ask questions about what they read, write notes and scratchwork, and store
much of this information for use in writing papers and/or code. Emacs allows
us to do all of this (and more) using simple text interfaces that integrate
well together. In this talk I will talk about the following:

a. Using elfeed and elfeed-score to read new papers from arXiv.
b. Using org-ref to import arXiv papers of interest into a local
bibliography.
c. Using Emacs hooks with biber and rebiber in order to keep the local
   bibliography clean and up-to-date with conference versions of papers.
d. Using org-roam and org-roam-bibtex to take linked, searchable notes in
org on research papers.

This text-based workflow allows for keeping everything accessible under
version
control and avoids the platform lock-in of binary formats (e.g. Mendeley). I
will share my Doom Emacs configuration for this workflow, but it is not
limited
to Doom.



# Outline

-   5-10 minutes: I will demo the packages I use in 5 minutes.</abstract><description>Times are approximate and will probably change.

# Managing a research workflow (bibliographies, note-taking, and arXiv)
Ahmed Khaled

Researchers and knowledge workers have to read and discover new papers,
ask questions about what they read, write notes and scratchwork, and store
much of this information for use in writing papers and/or code. Emacs allows
us to do all of this (and more) using simple text interfaces that integrate
well together. In this talk I will talk about the following:

a. Using elfeed and elfeed-score to read new papers from arXiv.
b. Using org-ref to import arXiv papers of interest into a local
bibliography.
c. Using Emacs hooks with biber and rebiber in order to keep the local
   bibliography clean and up-to-date with conference versions of papers.
d. Using org-roam and org-roam-bibtex to take linked, searchable notes in
org on research papers.

This text-based workflow allows for keeping everything accessible under
version
control and avoids the platform lock-in of binary formats (e.g. Mendeley). I
will share my Doom Emacs configuration for this workflow, but it is not
limited
to Doom.



# Outline

-   5-10 minutes: I will demo the packages I use in 5 minutes.</description><url>https://emacsconf.org/2021/talks/research</url><persons><person>Ahmed Khaled</person></persons></event><event id="19" guid="db5821ed-fef4-4934-8fb3-87a0282714de"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-babel</slug><duration>19:00</duration><title>Babel for academics</title><abstract># Babel for academics
Asilata Bapat

Plain org-mode is already an extremely powerful and
customisable tool for task and time management, note-taking, calendar
and agenda management, and much more. Babel takes org a step further
by letting you write, evaluate, and export code in different languages
from within a single file. In this talk, I will highlight some
features of babel that I find exciting and extremely useful,
particularly for an academic workflow.

Getting started with babel can be intimidating, but it's hard to stop
using it once you start. As an academic, I typically don't manage
large coding projects. My primary purpose is writing lecture notes,
assignments, and papers, and managing related admin. Typically, I want
to try and automate the boring portions of my workflow without extra
overhead. I also tend to find various tasks easier in some programming
languages and harder in others, and prefer to mix and match languages
as the task dictates. Babel makes this process seamless.

A basic use case is writing a document in org-mode and exporting it to
LaTeX or HTML. Org-mode even lets you write multiple documents in a
single org file, which can be convenient. Babel lets you add all sorts
of enhancements to the same file. For example, suppose we have a
single org document with all the problem sets for a course. Within
this single file, we could now:

-   draw pictures in ditaa, graphviz, or python instead of LaTeX,
-   use python to do complex calculations and then output the result as LaTeX,
-   define skeletons to quickly draw up assignment templates,
-   toggle exporting of assignments with or without solutions based on tags,
-   locally change export settings or run a post-export hook,
-   automatically export to LaTeX after saving,
-   tangle code blocks from some or all of the languages to external files.

I will try to showcase features of babel that academics could find
helpful, by presenting some ways in which I have tried to use babel. I
would also like to be inspired by other people's babel workflows!



# Outline

-   5-10 minutes: (brief description/outline)

For a 5-10 minute presentation I will give a brief intro and present one or two example files that heavily use babel. I will use these
examples to highlight some of the features mentioned in the abstract.</abstract><description>Times are approximate and will probably change.

# Babel for academics
Asilata Bapat

Plain org-mode is already an extremely powerful and
customisable tool for task and time management, note-taking, calendar
and agenda management, and much more. Babel takes org a step further
by letting you write, evaluate, and export code in different languages
from within a single file. In this talk, I will highlight some
features of babel that I find exciting and extremely useful,
particularly for an academic workflow.

Getting started with babel can be intimidating, but it's hard to stop
using it once you start. As an academic, I typically don't manage
large coding projects. My primary purpose is writing lecture notes,
assignments, and papers, and managing related admin. Typically, I want
to try and automate the boring portions of my workflow without extra
overhead. I also tend to find various tasks easier in some programming
languages and harder in others, and prefer to mix and match languages
as the task dictates. Babel makes this process seamless.

A basic use case is writing a document in org-mode and exporting it to
LaTeX or HTML. Org-mode even lets you write multiple documents in a
single org file, which can be convenient. Babel lets you add all sorts
of enhancements to the same file. For example, suppose we have a
single org document with all the problem sets for a course. Within
this single file, we could now:

-   draw pictures in ditaa, graphviz, or python instead of LaTeX,
-   use python to do complex calculations and then output the result as LaTeX,
-   define skeletons to quickly draw up assignment templates,
-   toggle exporting of assignments with or without solutions based on tags,
-   locally change export settings or run a post-export hook,
-   automatically export to LaTeX after saving,
-   tangle code blocks from some or all of the languages to external files.

I will try to showcase features of babel that academics could find
helpful, by presenting some ways in which I have tried to use babel. I
would also like to be inspired by other people's babel workflows!



# Outline

-   5-10 minutes: (brief description/outline)

For a 5-10 minute presentation I will give a brief intro and present one or two example files that heavily use babel. I will use these
examples to highlight some of the features mentioned in the abstract.</description><url>https://emacsconf.org/2021/talks/babel</url><persons><person>Asilata Bapat</person></persons></event><event id="21" guid="1fc4917c-aab4-1924-2983-e78f8bca6af9"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-molecular</slug><duration>19:00</duration><title>Reproducible molecular graphics with Org-mode</title><abstract># Reproducible molecular graphics with Org-mode
Blaine Mooers

Research papers in structural biology should include the code used to make 
the images of molecules in the article in the supplemental materials. 
Some structural bioinformaticists have started to include
their computer code in the supplemental materials to allow readers
to reproduce their analyses. However, authors of papers reporting new
molecular structures often overlook the inclusion of the code that makes 
the images of the molecules reported in their articles. Nonetheless, 
this aspect of reproducible research needs to become the standard practice 
to improve the rigor of the science.

In a literate programming document, the author interleaves between blocks 
of prose the code that makes the images of molecules. The document allows 
the reader to reproduce the images in the manuscript by running the code. 
The reader can also explore the effect of altering the parameters in the 
code. Org files are one alternative for making such literate programming 
documents.

We developed a yasnippet snippet library called orgpymolpysnips for 
structural biologists (<https://github.com/MooersLab/orgpymolpysnips>). 
This library facilitates the assembly of literate programming documents
with molecular images made by PyMOL. PyMOL is the most popular
molecular graphics program for creating images for publication; it has
over 100,000 users, which is a lot of users in molecular biology. PyMOL 
has been used to make many of the images of biological molecules found 
on the covers of many Cell, Nature, and Science issues. 

We used the `jupyter' language in org-babel to send commands from 
code blocks in Org files to PyMOL's Python API. PyMOL returns the 
molecular image to the output block below the code block. An Emacs 
user can convert the Org file into a PDF, `tangle' the code blocks 
into a script file, and submit these for non-Emacs users. We describe 
the content of the library and provide examples of the running PyMOL 
from Org-mode documents. 


# Outline

-   5-10 minutes: (brief description/outline)
    -   Title slide
    -   Structural Biolog Workflow in the Mooers Lab
    -   Cover images made with PyMOL
    
    -   Why develop a snippet library for your field?
    -   PyMOL in Org: kernel specification
    -   Creating a conda env and installing PyMOL
    -   Example code block in Org to make DSSR block model of tRNA
    -   Resulting image
    -   Summary
    -   Acknowledgements</abstract><description>Times are approximate and will probably change.

# Reproducible molecular graphics with Org-mode
Blaine Mooers

Research papers in structural biology should include the code used to make 
the images of molecules in the article in the supplemental materials. 
Some structural bioinformaticists have started to include
their computer code in the supplemental materials to allow readers
to reproduce their analyses. However, authors of papers reporting new
molecular structures often overlook the inclusion of the code that makes 
the images of the molecules reported in their articles. Nonetheless, 
this aspect of reproducible research needs to become the standard practice 
to improve the rigor of the science.

In a literate programming document, the author interleaves between blocks 
of prose the code that makes the images of molecules. The document allows 
the reader to reproduce the images in the manuscript by running the code. 
The reader can also explore the effect of altering the parameters in the 
code. Org files are one alternative for making such literate programming 
documents.

We developed a yasnippet snippet library called orgpymolpysnips for 
structural biologists (&lt;https://github.com/MooersLab/orgpymolpysnips&gt;). 
This library facilitates the assembly of literate programming documents
with molecular images made by PyMOL. PyMOL is the most popular
molecular graphics program for creating images for publication; it has
over 100,000 users, which is a lot of users in molecular biology. PyMOL 
has been used to make many of the images of biological molecules found 
on the covers of many Cell, Nature, and Science issues. 

We used the `jupyter' language in org-babel to send commands from 
code blocks in Org files to PyMOL's Python API. PyMOL returns the 
molecular image to the output block below the code block. An Emacs 
user can convert the Org file into a PDF, `tangle' the code blocks 
into a script file, and submit these for non-Emacs users. We describe 
the content of the library and provide examples of the running PyMOL 
from Org-mode documents. 


# Outline

-   5-10 minutes: (brief description/outline)
    -   Title slide
    -   Structural Biolog Workflow in the Mooers Lab
    -   Cover images made with PyMOL
    
    -   Why develop a snippet library for your field?
    -   PyMOL in Org: kernel specification
    -   Creating a conda env and installing PyMOL
    -   Example code block in Org to make DSSR block model of tRNA
    -   Resulting image
    -   Summary
    -   Acknowledgements</description><url>https://emacsconf.org/2021/talks/molecular</url><persons><person>Blaine Mooers</person></persons></event><event id="14" guid="c54c7930-51cc-5184-9dfb-5033e577b95e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-project</slug><duration>19:00</duration><title>Budgeting, Project Monitoring and Invoicing with Org Mode</title><abstract># Budgeting, Project Monitoring and Invoicing with Org Mode
Adolfo Villafiorita

In this talk I will present how we use Org Mode at Shair.Tech for
budgeting, project monitoring, and invoicing.

We are a small company and we are still tuning and improving the
process, but with a bit of Emacs Lisp, the functions Org Mode
provides, and reading here and there what other users do, we
implemented an effective workflow we have been using for nearly a
year, now, and with which we are very happy. Talk duration:

&#x2013;> 20 minutes seems to be right (15 talk + questions)
&#x2013;> I can also make in 10 minutes, by focusing the talk on
    budgeting (or monitoring)</abstract><description>Times are approximate and will probably change.

# Budgeting, Project Monitoring and Invoicing with Org Mode
Adolfo Villafiorita

In this talk I will present how we use Org Mode at Shair.Tech for
budgeting, project monitoring, and invoicing.

We are a small company and we are still tuning and improving the
process, but with a bit of Emacs Lisp, the functions Org Mode
provides, and reading here and there what other users do, we
implemented an effective workflow we have been using for nearly a
year, now, and with which we are very happy. Talk duration:

&amp;#x2013;&gt; 20 minutes seems to be right (15 talk + questions)
&amp;#x2013;&gt; I can also make in 10 minutes, by focusing the talk on
    budgeting (or monitoring)</description><url>https://emacsconf.org/2021/talks/project</url><persons><person>Adolfo Villafiorita</person></persons></event><event id="15" guid="c9870e10-2600-85a4-24fb-793dfc51164e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-invoice</slug><duration>19:00</duration><title>Find Your (In)voice: Emacs for Invoicing</title><abstract># Find Your (In)voice: Emacs for Invoicing
Bala Ramadurai

Ye Freelance warriors, please lend me your I/O devices for 5 minutes.

Your time is your money! Do you find it a pain to generate an invoice,
record the details into your accounting software and keep track of
taxes and payments? You are not alone, I found the whole invoice
thingy to be extremely painful.

But worry not, Emacs comes to our rescue.

My talk will give you a basic intro on how to use org mode, some embedded python code and file jugglery to generate stylistic and professional invoices.

What you will learn during the session:

-   How to track your freelance time using orgmode
-   How to create the basic infrastructure for invoice generation
-   How to generate the invoice
-   How to manage multiple clients
-   How to enter the finance details into your accounting software
-   How to track invoice payments

We will use the following packages:

-   Emacs+orgmode (duh?)
-   yasnippet
-   python layer (I use spacemacs, so whatever is the equivalent in your config)
-   Some unnecessary Shakespearean references</abstract><description>Times are approximate and will probably change.

# Find Your (In)voice: Emacs for Invoicing
Bala Ramadurai

Ye Freelance warriors, please lend me your I/O devices for 5 minutes.

Your time is your money! Do you find it a pain to generate an invoice,
record the details into your accounting software and keep track of
taxes and payments? You are not alone, I found the whole invoice
thingy to be extremely painful.

But worry not, Emacs comes to our rescue.

My talk will give you a basic intro on how to use org mode, some embedded python code and file jugglery to generate stylistic and professional invoices.

What you will learn during the session:

-   How to track your freelance time using orgmode
-   How to create the basic infrastructure for invoice generation
-   How to generate the invoice
-   How to manage multiple clients
-   How to enter the finance details into your accounting software
-   How to track invoice payments

We will use the following packages:

-   Emacs+orgmode (duh?)
-   yasnippet
-   python layer (I use spacemacs, so whatever is the equivalent in your config)
-   Some unnecessary Shakespearean references</description><url>https://emacsconf.org/2021/talks/invoice</url><persons><person>Bala Ramadurai</person></persons></event><event id="24" guid="e4e995c0-6e06-8544-a8c3-5f9a06c856fb"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-dashboard</slug><duration>19:00</duration><title>Productivity Dashboards with Emacs and Kindle</title><abstract># Productivity Dashboards with Emacs and Kindle
Mehmet Tekman

Since 2008, Amazon have released a new Kindle device every year,
supplanting each generation with a newer model that boasts highly
promoted incremental features which greatly devalues the price of
their older models. These forgotten models are sold on Ebay and
other secondhand websites at highly discount prices by owners who
do not see the true potential of these devices: Kindles are
excellent high contrast low-refresh display rate E-Ink devices,
with Wifi capability, that run embedded Linux in the
background. Depending on the model, an idle Kindle can last weeks
before needing a recharge. This makes them ideal as passive image
devices that can be configured easily using a few shell
scripts. Indeed, efforts have been made in dedicated hacker forums
to expose the Linux filesystem and to enable features such as
custom screensavers, SSH networking, and more. By exploiting these
features, and by carefully disabling the software/bloatware that
comes with the device, these Kindles have found new life as online
dashboard devices which can fetch and display information from the
internet at timely intervals.

Here we describe a tool to control multiple Kindle devices with a
single org-mode/shell-based tool, built initially to periodically
serve updated Emacs Org-Agenda views, but later expanded to produce
online local weather reports and work calendar, Emacs calendars
(calfw, org-gcal), daily dietary information (org-calories),
Org-Mode sparse TODO trees, miscellaneous image and text content
(via imagemagick), small messages, and much more.

In this talk, we show how to configure multiple Kindles with any
desired custom content, following any daily/weekly schedule, all
easily managed from Emacs within a single Org-Mode file.



# Outline

-   5-10 minutes:
    
    1-3 mins
          Talk about repurposing Kindles:
    
    -   Cheap second-hand wifi device, hackable
    -   Low-powered, long battery life, low refresh rate &#x2013; perfect
        for a dashboard
        -   Timely updated Org-Mode Agendas anyone?
    -   Reference to inspired projects (kindle-dashboard)
    
    2-3 mins
          Generate content
    
    -   A static text+picture image easily generated with imagemagick
        wrapper
    -   An image of a sparse tree of org-mode TODO file
    -   An image of another emacs view (e.g. Calfw, or org-calories)
    -   Show post-processing for optimizing image for Kindles
    
    1-2 mins
          Configuration in a single org-mode file
    
    -   Defining Machines
    -   Defining Commands to generate content
    -   Defining Schedules to run Commands on multiple Machines at
        specific points in the day
    
    1-2 mins
          Export and Run:
    
    -   Show exported shell configs and generated cronjobs
    -   Witness multiple Kindles producing desired content with wakeup
        timers</abstract><description>Times are approximate and will probably change.

# Productivity Dashboards with Emacs and Kindle
Mehmet Tekman

Since 2008, Amazon have released a new Kindle device every year,
supplanting each generation with a newer model that boasts highly
promoted incremental features which greatly devalues the price of
their older models. These forgotten models are sold on Ebay and
other secondhand websites at highly discount prices by owners who
do not see the true potential of these devices: Kindles are
excellent high contrast low-refresh display rate E-Ink devices,
with Wifi capability, that run embedded Linux in the
background. Depending on the model, an idle Kindle can last weeks
before needing a recharge. This makes them ideal as passive image
devices that can be configured easily using a few shell
scripts. Indeed, efforts have been made in dedicated hacker forums
to expose the Linux filesystem and to enable features such as
custom screensavers, SSH networking, and more. By exploiting these
features, and by carefully disabling the software/bloatware that
comes with the device, these Kindles have found new life as online
dashboard devices which can fetch and display information from the
internet at timely intervals.

Here we describe a tool to control multiple Kindle devices with a
single org-mode/shell-based tool, built initially to periodically
serve updated Emacs Org-Agenda views, but later expanded to produce
online local weather reports and work calendar, Emacs calendars
(calfw, org-gcal), daily dietary information (org-calories),
Org-Mode sparse TODO trees, miscellaneous image and text content
(via imagemagick), small messages, and much more.

In this talk, we show how to configure multiple Kindles with any
desired custom content, following any daily/weekly schedule, all
easily managed from Emacs within a single Org-Mode file.



# Outline

-   5-10 minutes:
    
    1-3 mins
          Talk about repurposing Kindles:
    
    -   Cheap second-hand wifi device, hackable
    -   Low-powered, long battery life, low refresh rate &amp;#x2013; perfect
        for a dashboard
        -   Timely updated Org-Mode Agendas anyone?
    -   Reference to inspired projects (kindle-dashboard)
    
    2-3 mins
          Generate content
    
    -   A static text+picture image easily generated with imagemagick
        wrapper
    -   An image of a sparse tree of org-mode TODO file
    -   An image of another emacs view (e.g. Calfw, or org-calories)
    -   Show post-processing for optimizing image for Kindles
    
    1-2 mins
          Configuration in a single org-mode file
    
    -   Defining Machines
    -   Defining Commands to generate content
    -   Defining Schedules to run Commands on multiple Machines at
        specific points in the day
    
    1-2 mins
          Export and Run:
    
    -   Show exported shell configs and generated cronjobs
    -   Witness multiple Kindles producing desired content with wakeup
        timers</description><url>https://emacsconf.org/2021/talks/dashboard</url><persons><person>Mehmet Tekman</person></persons></event><event id="25" guid="33776e08-e815-db94-971b-a151236e11be"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-nyxt</slug><duration>19:00</duration><title>Emacs with Nyxt: extend your editor with the power of a Lisp browser</title><abstract># Emacs with Nyxt: extend your editor with the power of a Lisp browser
Andrea

In 2021 browsers are essential if you use a computer. Even if Emacs
users love text as a format, they may need to shop and video call from
time to time (even more so in a pandemic!). Some of us modified their
browsers to at least have the same keybindings as our editor of
choice. What if I told you there is an Emacsy browser in the making?
What if you could "ace-jump" within a web page? What if you could run
a REPL to extend your browser while browsing? What if you could record
macros?! The browser exists: its name is Nyxt!

In this talk I will share why it has great potential, how you can
integrate it with Emacs, and how you can migrate your Emacs mastery to
the web!

If you were wishing for a Lispy and Emacsy browser, you should not
miss this talk!

You can learn more about this at: <https://github.com/ag91/emacs-with-nyxt>



# Outline

-   5-10 minutes: quick demo of running Nyxt from Emacs and a little explanation of the code necessary for integration</abstract><description>Times are approximate and will probably change.

# Emacs with Nyxt: extend your editor with the power of a Lisp browser
Andrea

In 2021 browsers are essential if you use a computer. Even if Emacs
users love text as a format, they may need to shop and video call from
time to time (even more so in a pandemic!). Some of us modified their
browsers to at least have the same keybindings as our editor of
choice. What if I told you there is an Emacsy browser in the making?
What if you could "ace-jump" within a web page? What if you could run
a REPL to extend your browser while browsing? What if you could record
macros?! The browser exists: its name is Nyxt!

In this talk I will share why it has great potential, how you can
integrate it with Emacs, and how you can migrate your Emacs mastery to
the web!

If you were wishing for a Lispy and Emacsy browser, you should not
miss this talk!

You can learn more about this at: &lt;https://github.com/ag91/emacs-with-nyxt&gt;



# Outline

-   5-10 minutes: quick demo of running Nyxt from Emacs and a little explanation of the code necessary for integration</description><url>https://emacsconf.org/2021/talks/nyxt</url><persons><person>Andrea</person></persons></event><event id="26" guid="86d4470a-8d19-7bd4-0c53-6aba1b49baef"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-design</slug><duration>19:00</duration><title>On the design of text editors</title><abstract># On the design of text editors
Nicolas P. Rougier

Text editors are written by and for developers. They  come
with a large set of default and implicit choices in terms of layout,
typography, colorization and interaction that hardly change from one
editor to the other. It is not clear if these implicit choices derive
from the ignorance of alternatives or if they derive from developers'
habits, reproducing what they are used to. Durint this talk, I will
characterize these implicit choices and illustrate what are some
alternatives using GNU Emacs.



# Outline


-   10 minutes alternative

Mostly a live demo of my environment with pointers to the different
packages</abstract><description>Times are approximate and will probably change.

# On the design of text editors
Nicolas P. Rougier

Text editors are written by and for developers. They  come
with a large set of default and implicit choices in terms of layout,
typography, colorization and interaction that hardly change from one
editor to the other. It is not clear if these implicit choices derive
from the ignorance of alternatives or if they derive from developers'
habits, reproducing what they are used to. Durint this talk, I will
characterize these implicit choices and illustrate what are some
alternatives using GNU Emacs.



# Outline


-   10 minutes alternative

Mostly a live demo of my environment with pointers to the different
packages</description><url>https://emacsconf.org/2021/talks/design</url><persons><person>Nicolas P. Rougier</person></persons></event><event id="27" guid="48a8580f-52ce-cc84-6a23-1eddf720ae02"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-freedom</slug><duration>19:00</duration><title>How Emacs made me appreciate software freedom</title><abstract># How Emacs made me appreciate software freedom
Protesilaos Stavrou

The theme will be "how Emacs empowered my software freedom".
I will outline the key moments in my transition to a GNU/Linux operating
system and mark those which eventually contributed towards me becoming
an Emacs user, maintainer of a&#x2014;dare I say&#x2014;popular package, and
contributor to upstream Emacs (among others).  By alluding to personal
experiences, I will draw generalisable insights and connect them to what
I believe are irreducible qualities of Emacs qua software and Emacs as a
community of like-minded people.  The talk will be theoretical in
nature: there won't be any code-related demonstration nor technical
references that only people with a background in computer science would
likely recognise.  Personal anecdotes shall be tangential to the point
and considered as ancillary to the thesis of what Emacs represents from
the standpoint of software freedom and user empowerment.  The
presentation is intended for a general audience that is interested in
GNU software in general and Emacs in particular.  My formal educational
background as a social scientist (i.e. not a programmer) and later as a
philosopher informs my approach to this topic.

The presentation shall be 40 minutes long.  Its text will be in essay
form and shall be supplied as complementary material to the video.  The
notation will be in Org mode.  I cannot provide an outline in advance,
as it will most likely not be consistent with the actual presentation.
If, however, this is absolutely required for administrative purposes I
shall furnish one regardless with the proviso that I am in no way bound
by it and thus reserve the right to modify it ahead of the main event.</abstract><description>Times are approximate and will probably change.

# How Emacs made me appreciate software freedom
Protesilaos Stavrou

The theme will be "how Emacs empowered my software freedom".
I will outline the key moments in my transition to a GNU/Linux operating
system and mark those which eventually contributed towards me becoming
an Emacs user, maintainer of a&amp;#x2014;dare I say&amp;#x2014;popular package, and
contributor to upstream Emacs (among others).  By alluding to personal
experiences, I will draw generalisable insights and connect them to what
I believe are irreducible qualities of Emacs qua software and Emacs as a
community of like-minded people.  The talk will be theoretical in
nature: there won't be any code-related demonstration nor technical
references that only people with a background in computer science would
likely recognise.  Personal anecdotes shall be tangential to the point
and considered as ancillary to the thesis of what Emacs represents from
the standpoint of software freedom and user empowerment.  The
presentation is intended for a general audience that is interested in
GNU software in general and Emacs in particular.  My formal educational
background as a social scientist (i.e. not a programmer) and later as a
philosopher informs my approach to this topic.

The presentation shall be 40 minutes long.  Its text will be in essay
form and shall be supplied as complementary material to the video.  The
notation will be in Org mode.  I cannot provide an outline in advance,
as it will most likely not be consistent with the actual presentation.
If, however, this is absolutely required for administrative purposes I
shall furnish one regardless with the proviso that I am in no way bound
by it and thus reserve the right to modify it ahead of the main event.</description><url>https://emacsconf.org/2021/talks/freedom</url><persons><person>Protesilaos Stavrou</person></persons></event><event id="28" guid="5287b003-f368-36c4-4f9b-8135734cad39"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-day1-close</slug><duration>19:00</duration><title>Closing remarks day 1</title><abstract># Closing remarks day 1</abstract><description>Times are approximate and will probably change.

# Closing remarks day 1</description><url>https://emacsconf.org/2021/talks/day1-close</url><persons><person>EmacsConf</person></persons></event><event id="30" guid="d877a57a-14cf-a194-99c3-a344ecb24acc"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-day2-open</slug><duration>19:00</duration><title>Opening remarks day 2</title><abstract># Opening remarks day 2</abstract><description>Times are approximate and will probably change.

# Opening remarks day 2</description><url>https://emacsconf.org/2021/talks/day2-open</url><persons><person>EmacsConf</person></persons></event><event id="31" guid="35d1d9e4-dfdf-f254-6aab-7a466fbfaf09"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-faster</slug><duration>19:00</duration><title>How to write faster Emacs Lisp</title><abstract># How to write faster Emacs Lisp
Dmitry Gutov

-   Before optimizing, benchmark first.
-   Different benchmarking approaches.
-   Live evaluation, step-debugging, measuring from a debugger breakpoint.
-   How to determine if a function is expensive. How to pick one from
    competing alternatives (cl-lib, seq, dash, lean core).
-   Print-benchmarking.
-   Byte-compiled code can give a very different picture, changing where
    the bottleneck is. How to quickly load a byte-compiled version.
-   Steps taken to speed up the Xref package recently.</abstract><description>Times are approximate and will probably change.

# How to write faster Emacs Lisp
Dmitry Gutov

-   Before optimizing, benchmark first.
-   Different benchmarking approaches.
-   Live evaluation, step-debugging, measuring from a debugger breakpoint.
-   How to determine if a function is expensive. How to pick one from
    competing alternatives (cl-lib, seq, dash, lean core).
-   Print-benchmarking.
-   Byte-compiled code can give a very different picture, changing where
    the bottleneck is. How to quickly load a byte-compiled version.
-   Steps taken to speed up the Xref package recently.</description><url>https://emacsconf.org/2021/talks/faster</url><persons><person>Dmitry Gutov</person></persons></event><event id="33" guid="599ef3fa-4c73-6c94-4953-75bbc7830681"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-structural</slug><duration>19:00</duration><title>Tree-edit: Structural editing for Java, Python, C, and beyond!</title><abstract># Tree-edit: Structural editing for Java, Python, C, and beyond! 
Ethan Leba

In this talk, I'll discuss a vision for how writing code could be, where the
editing operations map directly to the primitives of the language itself -- and
my humble attempt of implementing this vision. _tree-edit_ seeks to provides a
structural editing plugin supporting conceivably any language with a tree-sitter
parser.

**Structural editing does not have to be relegated to lisps or niche DSLs.**

I liken the state of code editing today to writing assembly. The reason why
people like Python more than assembly is that for most purposes, the building
blocks of the language are mismatched with our thought process. We don't think
in terms of registers and addresses, we think in terms of variables, functions,
etc. So when we write and edit code, why do we edit in terms of deleting,
inserting, replacing characters &#x2013; not wrapping, inserting, raising,
deleting expressions and statements?

I'll also discuss the implementation of tree-edit, which uses a novel
combination of the fantastic
[tree-sitter](https://github.com/emacs-tree-sitter/elisp-tree-sitter) parser
with an embedded logic programming DSL ([miniKanren](http://minikanren.org/),
using elisp port [reazon](https://github.com/nickdrozd/reazon)) to power it's
syntax tree generation.

Check out the GitHub repo [here](https://github.com/ethan-leba/tree-edit)!

# Outline

-   Discuss motivation                          (Why should I care?)
-   Demonstrate tree-edit                       (Live-coding with tree-edit)
-   Demonstrate tree-edit syntax tree generator (Elevator pitch on miniKanren)</abstract><description>Times are approximate and will probably change.

# Tree-edit: Structural editing for Java, Python, C, and beyond! 
Ethan Leba

In this talk, I'll discuss a vision for how writing code could be, where the
editing operations map directly to the primitives of the language itself -- and
my humble attempt of implementing this vision. _tree-edit_ seeks to provides a
structural editing plugin supporting conceivably any language with a tree-sitter
parser.

**Structural editing does not have to be relegated to lisps or niche DSLs.**

I liken the state of code editing today to writing assembly. The reason why
people like Python more than assembly is that for most purposes, the building
blocks of the language are mismatched with our thought process. We don't think
in terms of registers and addresses, we think in terms of variables, functions,
etc. So when we write and edit code, why do we edit in terms of deleting,
inserting, replacing characters &amp;#x2013; not wrapping, inserting, raising,
deleting expressions and statements?

I'll also discuss the implementation of tree-edit, which uses a novel
combination of the fantastic
[tree-sitter](https://github.com/emacs-tree-sitter/elisp-tree-sitter) parser
with an embedded logic programming DSL ([miniKanren](http://minikanren.org/),
using elisp port [reazon](https://github.com/nickdrozd/reazon)) to power it's
syntax tree generation.

Check out the GitHub repo [here](https://github.com/ethan-leba/tree-edit)!

# Outline

-   Discuss motivation                          (Why should I care?)
-   Demonstrate tree-edit                       (Live-coding with tree-edit)
-   Demonstrate tree-edit syntax tree generator (Elevator pitch on miniKanren)</description><url>https://emacsconf.org/2021/talks/structural</url><persons><person>Ethan Leba</person></persons></event><event id="32" guid="29d45a6f-9425-f5a4-bd23-297292e4ab7a"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-dsl</slug><duration>19:00</duration><title>Self-Describing Smart DSL's: The Next Magits</title><abstract># Self-Describing Smart DSL's: The Next Magits
Psionic

When we begin programming, the promise is to automate away repetitive
tasks in life.  As those program's capability grows, we begin to need
configuration UI's.  We can start with a CLI, but as any CLI grows, we
run into the following issues:

-   As options pile up, the intuition of simplicity is lost in helps and
manpages

-   Stateless operation has no idea what to do next and loses terseness
- Frequent dispatch of commands to interrogate state required for the
operator to decide what action to perform

-   Composition compounds with all of these issues

Magit has the UI trifecta of being terse, intuitive, and intelligent.
Magit's UI input library, Transient, is a standalone package for
developing more killer UI's, and not just for CLI applications, but
also for server applications, Emacs applications, and Emacs itself.

While Transient's potential is to create the most highly productive
UI's short of thought control, going beyond simple command dispatchers
requires a deeper dive.  When we think like constructing a DSL for the
task and using transient to input that DSL, we get an intelligent,
self-describing modal programming system.


# Outline

-  Updates to Transient documentation and demos of API examples
-  Wrapping a custom CLI tool in Transient</abstract><description>Times are approximate and will probably change.

# Self-Describing Smart DSL's: The Next Magits
Psionic

When we begin programming, the promise is to automate away repetitive
tasks in life.  As those program's capability grows, we begin to need
configuration UI's.  We can start with a CLI, but as any CLI grows, we
run into the following issues:

-   As options pile up, the intuition of simplicity is lost in helps and
manpages

-   Stateless operation has no idea what to do next and loses terseness
- Frequent dispatch of commands to interrogate state required for the
operator to decide what action to perform

-   Composition compounds with all of these issues

Magit has the UI trifecta of being terse, intuitive, and intelligent.
Magit's UI input library, Transient, is a standalone package for
developing more killer UI's, and not just for CLI applications, but
also for server applications, Emacs applications, and Emacs itself.

While Transient's potential is to create the most highly productive
UI's short of thought control, going beyond simple command dispatchers
requires a deeper dive.  When we think like constructing a DSL for the
task and using transient to input that DSL, we get an intelligent,
self-describing modal programming system.


# Outline

-  Updates to Transient documentation and demos of API examples
-  Wrapping a custom CLI tool in Transient</description><url>https://emacsconf.org/2021/talks/dsl</url><persons><person>Psionic</person></persons></event><event id="34" guid="8f62e571-91da-bd14-e7c3-b445c7b19d23"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-ui</slug><duration>19:00</duration><title>"Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")</title><abstract># "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")
Erik Anderson

Tui.el is a textual User Interface (UI) framework for Emacs Lisp
modeled after the popular JavaScript 'React' framework.  This package
implements React Component API's with the goal of simplifying
development of interactive UI's for all Emacs users- regardless of
their prior experience with React or web programming.  Components
provide a useful functional unit for constructing complex interfaces
declaratively and also eliminate much of the burden associated with
updating textual content as application state changes.  This talk will
cover use of the tui.el API and its operation in a textual environment
by implementing some basic UI's.



# Outline

-   5-10 minutes:
    -   Problem space: UI implementation complexity.
    -   API introduction: Displaying content, Components.
    -   Visual taste of dashboards and applications built with tui.</abstract><description>Times are approximate and will probably change.

# "Yak-shaving to a UI framework" (/"Help! I accidentally yak-shaved my way to writing a UI framework because overlays were slow")
Erik Anderson

Tui.el is a textual User Interface (UI) framework for Emacs Lisp
modeled after the popular JavaScript 'React' framework.  This package
implements React Component API's with the goal of simplifying
development of interactive UI's for all Emacs users- regardless of
their prior experience with React or web programming.  Components
provide a useful functional unit for constructing complex interfaces
declaratively and also eliminate much of the burden associated with
updating textual content as application state changes.  This talk will
cover use of the tui.el API and its operation in a textual environment
by implementing some basic UI's.



# Outline

-   5-10 minutes:
    -   Problem space: UI implementation complexity.
    -   API introduction: Displaying content, Components.
    -   Visual taste of dashboards and applications built with tui.</description><url>https://emacsconf.org/2021/talks/ui</url><persons><person>Erik Anderson</person></persons></event><event id="35" guid="b073d391-6c37-6bf4-7afb-47edc79631a9"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-rust</slug><duration>19:00</duration><title>Extending Emacs in Rust with Dynamic Modules</title><abstract># Extending Emacs in Rust with Dynamic Modules
Tuấn-Anh Nguyễn

Dynamic module support has been available since Emacs 25. It can be
used to extend Emacs with native libraries, for performance,
OS-specific features, or other functionalities that would take a lot
of time to re-implement in Lisp. The officially supported language is
C, which is tedious and error-prone to use. This talk discusses a
**safe** alternative that is also a lot **more convenient**: writing these
dynamic modules in Rust.



# Outline

-  Walking through creating **a simple dynamic module** in
    Rust, including setting up CI.
-  Going through and explaining the **available APIs**.</abstract><description>Times are approximate and will probably change.

# Extending Emacs in Rust with Dynamic Modules
Tu&#7845;n-Anh Nguy&#7877;n

Dynamic module support has been available since Emacs 25. It can be
used to extend Emacs with native libraries, for performance,
OS-specific features, or other functionalities that would take a lot
of time to re-implement in Lisp. The officially supported language is
C, which is tedious and error-prone to use. This talk discusses a
**safe** alternative that is also a lot **more convenient**: writing these
dynamic modules in Rust.



# Outline

-  Walking through creating **a simple dynamic module** in
    Rust, including setting up CI.
-  Going through and explaining the **available APIs**.</description><url>https://emacsconf.org/2021/talks/rust</url><persons><person>Tuấn-Anh Nguyễn</person></persons></event><event id="38" guid="e7981936-6d72-93d4-8783-5ac64a0ae5bb"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-eaf</slug><duration>19:00</duration><title>Emacs Application Framework: A 2021 Update</title><abstract># Emacs Application Framework: A 2021 Update
Matthew Zeng

Emacs Application Framework (EAF) is a customizable and extensible GUI
application framework that extends Emacs graphical capabilities using
PyQt5. There are many new but important updates since EmacsConf2020
last year, this talk will briefly go over them.



# Outline

-   5-10 minutes: (brief description/outline)</abstract><description>Times are approximate and will probably change.

# Emacs Application Framework: A 2021 Update
Matthew Zeng

Emacs Application Framework (EAF) is a customizable and extensible GUI
application framework that extends Emacs graphical capabilities using
PyQt5. There are many new but important updates since EmacsConf2020
last year, this talk will briefly go over them.



# Outline

-   5-10 minutes: (brief description/outline)</description><url>https://emacsconf.org/2021/talks/eaf</url><persons><person>Matthew Zeng</person></persons></event><event id="47" guid="5e1baaaf-56a3-b5b4-31cb-5437cf465cf9"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-model</slug><duration>19:00</duration><title>Extending the "model" of Emacs to other applications</title><abstract># Extending the "model" of Emacs to other applications
Laszlo Krajnikovszkij

Emacs is a great operating environment in a sense that it provides consistency
across different tools and applications within the Emacs ecosystem, as well as
external apps that can be integrated into it. It is also the most truly
malleable environment, each element of which can be adjusted or extended,
therefore providing the user with more power and freedom in personal computing.
Emacs definitely can be considered one of greatest software products in
existence.

As a non-programmer, having had the chance to stumble upon Emacs a couple of
years ago, the only regret to have is that it didn't happen earlier. The definite
killer feature of Emacs - Org-mode, is what draws many of the less technical
folks to join the party and gradually start to use Emacs for writing documents,
whether personal or work related, manage tasks, emails and potentially everything
else. The learning curve and difference in approach, however, leaves some
potential users too scared of the arcane interface even with all it's quirks and
features because it requires at least some technical skills to understand and
use properly, and does not have an easy way to connect with external tools that
most people are forced to use for work.

This talk proposes some ideas about how the model of Emacs, it's focus on
consistency, extensibility, as well as it's powerful interaction model can be
carried over to make modern interfaces, whether desktop or web applications,
that would be designed with a goal of reflecting the spirit of Emacs in terms of
the aforementioned features it possesses, and therefore enhance the capabilities
of the Emacs, while at the same time utilizing it as a backend for
text-processing and editing to a large extent. It would be really great to have
a personal web-interface for using modern task management tools, chats, emails
and such, but from a UI defined by the user. The goal is to use it on a desktop
or mobile, locally or self-hosted on a server, with support for touch and
gesture-based workflows, while preserving the Emacs philosophy and allowing to
seamlessly switch between Emacs and its web extension

The proposed solution is to integrate more of the modern tools with Emacs,
utilize Org-mode as a way to define application-specific parameters for these
tools through Org properties, and then utilize these parameters for making a
modern local frontend that would enhance Emacs UI while allowing to use external
tools in a more personal and freedom respecting way (making the originals
obsolete over time). The talk serves the purpose of inviting community members to
a discussion about how Emacs can become more modern, more approachable by people
who don't possess the neccessarry technical skills to adjust it themselves, but
are keen to learn it, and potentially how to attract more users to greater
productivity, computer literacy and the ideas of free software.



# Outline

-   5-10 minutes
    -   Introduction
    -   Issues with most modern tools for work
    -   Issues with Emacs as a tool for work
    -   In search for a hybrid approach
    -   User controlled web-apps
    -   Opinions encouraged
    -   Contacts</abstract><description>Times are approximate and will probably change.

# Extending the "model" of Emacs to other applications
Laszlo Krajnikovszkij

Emacs is a great operating environment in a sense that it provides consistency
across different tools and applications within the Emacs ecosystem, as well as
external apps that can be integrated into it. It is also the most truly
malleable environment, each element of which can be adjusted or extended,
therefore providing the user with more power and freedom in personal computing.
Emacs definitely can be considered one of greatest software products in
existence.

As a non-programmer, having had the chance to stumble upon Emacs a couple of
years ago, the only regret to have is that it didn't happen earlier. The definite
killer feature of Emacs - Org-mode, is what draws many of the less technical
folks to join the party and gradually start to use Emacs for writing documents,
whether personal or work related, manage tasks, emails and potentially everything
else. The learning curve and difference in approach, however, leaves some
potential users too scared of the arcane interface even with all it's quirks and
features because it requires at least some technical skills to understand and
use properly, and does not have an easy way to connect with external tools that
most people are forced to use for work.

This talk proposes some ideas about how the model of Emacs, it's focus on
consistency, extensibility, as well as it's powerful interaction model can be
carried over to make modern interfaces, whether desktop or web applications,
that would be designed with a goal of reflecting the spirit of Emacs in terms of
the aforementioned features it possesses, and therefore enhance the capabilities
of the Emacs, while at the same time utilizing it as a backend for
text-processing and editing to a large extent. It would be really great to have
a personal web-interface for using modern task management tools, chats, emails
and such, but from a UI defined by the user. The goal is to use it on a desktop
or mobile, locally or self-hosted on a server, with support for touch and
gesture-based workflows, while preserving the Emacs philosophy and allowing to
seamlessly switch between Emacs and its web extension

The proposed solution is to integrate more of the modern tools with Emacs,
utilize Org-mode as a way to define application-specific parameters for these
tools through Org properties, and then utilize these parameters for making a
modern local frontend that would enhance Emacs UI while allowing to use external
tools in a more personal and freedom respecting way (making the originals
obsolete over time). The talk serves the purpose of inviting community members to
a discussion about how Emacs can become more modern, more approachable by people
who don't possess the neccessarry technical skills to adjust it themselves, but
are keen to learn it, and potentially how to attract more users to greater
productivity, computer literacy and the ideas of free software.



# Outline

-   5-10 minutes
    -   Introduction
    -   Issues with most modern tools for work
    -   Issues with Emacs as a tool for work
    -   In search for a hybrid approach
    -   User controlled web-apps
    -   Opinions encouraged
    -   Contacts</description><url>https://emacsconf.org/2021/talks/model</url><persons><person>Laszlo Krajnikovszkij</person></persons></event><event id="50" guid="4cd6de26-cf48-95c4-9d3b-28895a43ec53"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-devel</slug><duration>19:00</duration><title>Don't write that package! or: How I learned to stop worrying and love emacs-devel</title><abstract># Don't write that package! or: How I learned to stop worrying and love emacs-devel
Stefan Kangas

Emacs' greatest strength is also its greatest weakness: it is **too** hackable.

We have a great community that experiment with new features that are still
lacking in Emacs core.  They write up a package and develop the living daylights
out of it, until it is basically amazing.  (I'm looking at you Magit.)

There are other examples such as helpful.el - great package, but why are those
features not in core?  What about projectile?  And so on.

Core demands copyright assignments (CLA).  This is a fact of life.  While I
mostly agree with the people saying it is not helful, they are there to protect
Emacs from copyright issues in the future.  So my suggestion here is simple:
just **sign the papers**.  It is just a formality, and you should only need to do
it once.

I suggest that any ambitious feature that we **might** want to see shipped in the
default Emacs distribution should by default go to GNU ELPA.  You don't need to
do this, of course, and I respect your decision, but I urge you to do it.

GNU ELPA does not have an exceptionally high standard, but we do try to give any
new package a proper code review.

MELPA is excellent.  We love MELPA.  They don't have a criterion for their
packages that is important to the FSF, which is to not recommend non-free
software.  Therefore, we could not recommend it by default, and had to build
NonGNU ELPA.

NonGNU ELPA will be used for packages that we don't have an assignment for but
would still like to distribute.  It should ideally only be for old packages
where getting a CLA is impractical.

It is sometimes perceived as hard to contribute to Emacs core.  This impression
is largely wrong.  If I can do it, you can too.

We do have a problem in that our tools and methods (mailing lists, the bug
tracker) are out-dated.  This is largely correct.  We want to migrate to
something else, and the best candidate is probably Sourcehut.  Please volunteer
to help!

We sometimes see people adding stuff to their Init file to fix this or that
annoyance, or even bug.  The more ambitious would go on to package up such fixes
in what I call "patch packages". "Hey, foo-mode doesn't have support for
'bookmark-set', let's write a package!"  I am here to suggest that you submit a
patch to Emacs instead.

Fixing an issue for one person is good, and fixing it for more people is even
better.  Fixing it for everyone?  Priceless.

emacs-devel is not that scary, nor is email.  We are really quite friendly and
easy going, but the communication we prefer (for reasons of efficiency - the
volume is very high) is often very brief and to the point.  We are trying our
best at communicating, but sometimes fail.

And we need more contributors.  We need a successful Emacs on this planet.

So should you really write a package, or should YOU become a core contributor?



# Outline

- I will urge people to consider contributing to Emacs instead of
  writing small packages, and explain GNU ELPA, MELPA, CLA.
- I will go into greater detail about emacs-devel, how it "works"
  (e.g. is Emacs conservative without reason?), how to get things
  done and the necessary mindset.</abstract><description>Times are approximate and will probably change.

# Don't write that package! or: How I learned to stop worrying and love emacs-devel
Stefan Kangas

Emacs' greatest strength is also its greatest weakness: it is **too** hackable.

We have a great community that experiment with new features that are still
lacking in Emacs core.  They write up a package and develop the living daylights
out of it, until it is basically amazing.  (I'm looking at you Magit.)

There are other examples such as helpful.el - great package, but why are those
features not in core?  What about projectile?  And so on.

Core demands copyright assignments (CLA).  This is a fact of life.  While I
mostly agree with the people saying it is not helful, they are there to protect
Emacs from copyright issues in the future.  So my suggestion here is simple:
just **sign the papers**.  It is just a formality, and you should only need to do
it once.

I suggest that any ambitious feature that we **might** want to see shipped in the
default Emacs distribution should by default go to GNU ELPA.  You don't need to
do this, of course, and I respect your decision, but I urge you to do it.

GNU ELPA does not have an exceptionally high standard, but we do try to give any
new package a proper code review.

MELPA is excellent.  We love MELPA.  They don't have a criterion for their
packages that is important to the FSF, which is to not recommend non-free
software.  Therefore, we could not recommend it by default, and had to build
NonGNU ELPA.

NonGNU ELPA will be used for packages that we don't have an assignment for but
would still like to distribute.  It should ideally only be for old packages
where getting a CLA is impractical.

It is sometimes perceived as hard to contribute to Emacs core.  This impression
is largely wrong.  If I can do it, you can too.

We do have a problem in that our tools and methods (mailing lists, the bug
tracker) are out-dated.  This is largely correct.  We want to migrate to
something else, and the best candidate is probably Sourcehut.  Please volunteer
to help!

We sometimes see people adding stuff to their Init file to fix this or that
annoyance, or even bug.  The more ambitious would go on to package up such fixes
in what I call "patch packages". "Hey, foo-mode doesn't have support for
'bookmark-set', let's write a package!"  I am here to suggest that you submit a
patch to Emacs instead.

Fixing an issue for one person is good, and fixing it for more people is even
better.  Fixing it for everyone?  Priceless.

emacs-devel is not that scary, nor is email.  We are really quite friendly and
easy going, but the communication we prefer (for reasons of efficiency - the
volume is very high) is often very brief and to the point.  We are trying our
best at communicating, but sometimes fail.

And we need more contributors.  We need a successful Emacs on this planet.

So should you really write a package, or should YOU become a core contributor?



# Outline

- I will urge people to consider contributing to Emacs instead of
  writing small packages, and explain GNU ELPA, MELPA, CLA.
- I will go into greater detail about emacs-devel, how it "works"
  (e.g. is Emacs conservative without reason?), how to get things
  done and the necessary mindset.</description><url>https://emacsconf.org/2021/talks/devel</url><persons><person>Stefan Kangas</person></persons></event><event id="36" guid="49a35f05-b71f-1d14-2343-a6638bec0d08"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-bindat</slug><duration>19:00</duration><title>Turbo Bindat</title><abstract># Turbo Bindat
Stefan Monnier


# Table of Contents



Bindat is an ELisp library to help manipulate binary data. This is a
niche library that is used by packages such as Websocket, EMMS, and
cpio-mode. Its implementation was repeatedly caught harassing hapless
kitten while at the same time providing poor service slowly. For
Emacs-28, Bindat was rewritten so as to make it more efficient and
flexible while respecting the kitten. In this presentation I intent to
show how we saved those. Not recommended for birds.

-   ~20 minutes:
    5 min: Intro and presentation of Bindat
    5 min: Showcase some of its problems
    5 min: Present the new design
    5 min: Examples of what can be done with it</abstract><description>Times are approximate and will probably change.

# Turbo Bindat
Stefan Monnier


# Table of Contents



Bindat is an ELisp library to help manipulate binary data. This is a
niche library that is used by packages such as Websocket, EMMS, and
cpio-mode. Its implementation was repeatedly caught harassing hapless
kitten while at the same time providing poor service slowly. For
Emacs-28, Bindat was rewritten so as to make it more efficient and
flexible while respecting the kitten. In this presentation I intent to
show how we saved those. Not recommended for birds.

-   ~20 minutes:
    5 min: Intro and presentation of Bindat
    5 min: Showcase some of its problems
    5 min: Present the new design
    5 min: Examples of what can be done with it</description><url>https://emacsconf.org/2021/talks/bindat</url><persons><person>Stefan Monnier</person></persons></event><event id="39" guid="1ddbe380-b4f3-2b84-3cc3-9e799536db8e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-native</slug><duration>19:00</duration><title>Emacs Lisp native compiler, current status and future developments</title><abstract># Emacs Lisp native compiler, current status and future developments
Andrea Corallo

Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor
family.  GNU Emacs is traditionally capable of executing Elisp code
either interpreted or byte-interpreted after it has been compiled to
byte-code.

In this talk I'll discuss the Emacs Lisp native compiler.  This feature
recently merged into the main Emacs development line allow for
automatically compiling and executing Elisp as native code.

During the presentation I'll touch on:

-   design goals
-   compiler and runtime design and implementation
-   performance implications
-   upstream process
-   area of improvements and future developments

Format: 40 minutes</abstract><description>Times are approximate and will probably change.

# Emacs Lisp native compiler, current status and future developments
Andrea Corallo

Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor
family.  GNU Emacs is traditionally capable of executing Elisp code
either interpreted or byte-interpreted after it has been compiled to
byte-code.

In this talk I'll discuss the Emacs Lisp native compiler.  This feature
recently merged into the main Emacs development line allow for
automatically compiling and executing Elisp as native code.

During the presentation I'll touch on:

-   design goals
-   compiler and runtime design and implementation
-   performance implications
-   upstream process
-   area of improvements and future developments

Format: 40 minutes</description><url>https://emacsconf.org/2021/talks/native</url><persons><person>Andrea Corallo</person></persons></event><event id="40" guid="5947c3e9-93c1-1014-7ffb-aa0e0097e3e4"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-form</slug><duration>19:00</duration><title>Old McCarthy Had a Form</title><abstract># Old McCarthy Had a Form
Ian Eure

Most practical languages are multi-paradigm, offering several
abstractions for the programmer.  But did you know that Emacs Lisp
comes with a powerful system for object-oriented programming? Join me
for a discussion of EIEIO, and learn how it can help you write more
modular, flexible Emacs Lisp.



# Outline

-   5-10 minutes: (brief description/outline)
    -   What is CLOS/EIEIO?
    -   Why would I want OOP in Emacs Lisp?
    -   How is the CLOS object model different from C++/Java/.NET?
    -   Further reading</abstract><description>Times are approximate and will probably change.

# Old McCarthy Had a Form
Ian Eure

Most practical languages are multi-paradigm, offering several
abstractions for the programmer.  But did you know that Emacs Lisp
comes with a powerful system for object-oriented programming? Join me
for a discussion of EIEIO, and learn how it can help you write more
modular, flexible Emacs Lisp.



# Outline

-   5-10 minutes: (brief description/outline)
    -   What is CLOS/EIEIO?
    -   Why would I want OOP in Emacs Lisp?
    -   How is the CLOS object model different from C++/Java/.NET?
    -   Further reading</description><url>https://emacsconf.org/2021/talks/form</url><persons><person>Ian Eure</person></persons></event><event id="37" guid="5e162d34-ea19-8544-b693-dd6da0e885cd"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-test</slug><duration>19:00</duration><title>Test blocks</title><abstract># Test blocks
Eduardo Ochs

In this presentation I will show an idea that feels completely obvious
once we see it, but that only occured to me after after using Emacs
and eev as my main interface to the computer for more than 20 years.
Take any interpreted language that supports multi-line comments, and
whose interpreter can be run in an Emacs buffer - for example Lua,
Haskell, Python, or Julia; let's say just "Lua" from here on for
simplicity. So: suppose that we have a Lua script that we wrote, that
is called "foo.lua" and that defines lots of functions and defines the
classes Bar and Bletch. We can put after the definition of the class
Bar a multi-line comment that contains an eepitch block that when
executed starts a Lua interpreter, loads the script foo.lua (by
running 'dofile "foo.lua"'), and then has several tests for that class
and its methods; and we can put another block with tests like that
after the class Bletch, and other blocks after some functions. Eepitch
allows sending these tests line by line to the Lua interpreter by
typing <f8\> on each line that we want to send, and this lets us create
tests that are very easy to understand even without writing comments;
this gives us a very quick way to document code by executable tests,
that is super-great for experimental code that is still going to
change a lot before running the risk of being read by other people.

These multi-line comments with eepitch blocks that run an interpreter
and make it load the current file are called "test blocks". The
command \`M-x eeit' inserts a test block at point, using the major mode
to decide the right syntax to use for the multi-line comments and for
the "dofile". We can configure the syntax of the test blocks for the
current major mode by running \`M-x find-eeit-links'; this can also be
used to add support for test blocks to more languages (or, more
precisely: to more major modes).

Eduardo Ochs <http://angg.twu.net/emacsconf2021.html></abstract><description>Times are approximate and will probably change.

# Test blocks
Eduardo Ochs

In this presentation I will show an idea that feels completely obvious
once we see it, but that only occured to me after after using Emacs
and eev as my main interface to the computer for more than 20 years.
Take any interpreted language that supports multi-line comments, and
whose interpreter can be run in an Emacs buffer - for example Lua,
Haskell, Python, or Julia; let's say just "Lua" from here on for
simplicity. So: suppose that we have a Lua script that we wrote, that
is called "foo.lua" and that defines lots of functions and defines the
classes Bar and Bletch. We can put after the definition of the class
Bar a multi-line comment that contains an eepitch block that when
executed starts a Lua interpreter, loads the script foo.lua (by
running 'dofile "foo.lua"'), and then has several tests for that class
and its methods; and we can put another block with tests like that
after the class Bletch, and other blocks after some functions. Eepitch
allows sending these tests line by line to the Lua interpreter by
typing &lt;f8\&gt; on each line that we want to send, and this lets us create
tests that are very easy to understand even without writing comments;
this gives us a very quick way to document code by executable tests,
that is super-great for experimental code that is still going to
change a lot before running the risk of being read by other people.

These multi-line comments with eepitch blocks that run an interpreter
and make it load the current file are called "test blocks". The
command \`M-x eeit' inserts a test block at point, using the major mode
to decide the right syntax to use for the multi-line comments and for
the "dofile". We can configure the syntax of the test blocks for the
current major mode by running \`M-x find-eeit-links'; this can also be
used to add support for test blocks to more languages (or, more
precisely: to more major modes).

Eduardo Ochs &lt;http://angg.twu.net/emacsconf2021.html&gt;</description><url>https://emacsconf.org/2021/talks/test</url><persons><person>Eduardo Ochs</person></persons></event><event id="41" guid="51023225-018f-cf24-9d73-3c267907c13e"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-bug</slug><duration>19:00</duration><title>Let's talk about bug trackers</title><abstract># Let's talk about bug trackers
Bastien Guerry

For 17 years, the Org developers didn't use a bug tracker,
shamelessly failing the Joel Spolsky test.  Why was it "good enough"?
Why was it wrong?  Why did we move to Woof!?  Why Woof! is not a bug
tracker?

-   20 minutes</abstract><description>Times are approximate and will probably change.

# Let's talk about bug trackers
Bastien Guerry

For 17 years, the Org developers didn't use a bug tracker,
shamelessly failing the Joel Spolsky test.  Why was it "good enough"?
Why was it wrong?  Why did we move to Woof!?  Why Woof! is not a bug
tracker?

-   20 minutes</description><url>https://emacsconf.org/2021/talks/bug</url><persons><person>Bastien Guerry</person></persons></event><event id="42" guid="1407591a-29fd-3f64-1beb-01dea6e9d7d2"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-bidi</slug><duration>19:00</duration><title>Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware</title><abstract># Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware
Mohsen BANAN


# Table of Contents



Starting with Emacs 24, full native bidi
(bidirectional) support became available.  For
many years prior to that Unicode support was
available and by around year 2000, reasonable
open-source shaping libraries were also available.

With these in place at around 2012, I developed
two Persian input methods for emacs. These input
methods or variations of them can also be used
Arabic and other persoarabic scripts.

With all of these in place, Emacs has now become
the ne plus ultra Halaal/Convivial usage
environment for persoarabic users.

Since emacs comes loaded with everything (Gnus
for email, Bbdb for address books, XeLaTeX modes
for typesetting, org-mode for organization, spell
checkers, completions, calendar, etc.), all basic
computing and communication needs of persoarabic
users can be addressed in one place and
cohesively.

In this talk I will demonstrate what a wonderful
environment that can be.

-   40 minutes: (brief description/outline)
    
    My talk will be in two parts.
    
    In Part 1, I cover persian input methods. With an
    emphasis on &lsquo ;Banan Multi-Character (Reverse)
    Transliteration Persian Input Method&rsquo;. The
    software is part of base emacs distribution.
    Full documentation is available at:
           Persian Input Methods
           For Emacs And More Broadly Speaking
           شیوه‌هایِ درج به فارسی‌
           <http://mohsen.1.banan.byname.net/PLPC/120036>
    
    In Part 2, I will cover the ramifications of bidi
    on existing emacs applications, including:
    
    -   Gnus:
        -   Persoarabic rich email sending in HTML.
        -   Ramifications of bidi on from, to and
            subject lines.
    
    -   Bbdb: Ramifications of bidi on display and
        completion.
    
    -   Calendar:
        -   Ramifications of bidi on display.
        -   Use of persian text for Persian (solar) calendar.
        -   Use of arabic text for Muslem (lunar)  calendar.
    
    -   AUCTeX: Persian typesetting with XeLaTeX</abstract><description>Times are approximate and will probably change.

# Perso-Arabic Input Methods And Making More Emacs Apps BIDI Aware
Mohsen BANAN


# Table of Contents



Starting with Emacs 24, full native bidi
(bidirectional) support became available.  For
many years prior to that Unicode support was
available and by around year 2000, reasonable
open-source shaping libraries were also available.

With these in place at around 2012, I developed
two Persian input methods for emacs. These input
methods or variations of them can also be used
Arabic and other persoarabic scripts.

With all of these in place, Emacs has now become
the ne plus ultra Halaal/Convivial usage
environment for persoarabic users.

Since emacs comes loaded with everything (Gnus
for email, Bbdb for address books, XeLaTeX modes
for typesetting, org-mode for organization, spell
checkers, completions, calendar, etc.), all basic
computing and communication needs of persoarabic
users can be addressed in one place and
cohesively.

In this talk I will demonstrate what a wonderful
environment that can be.

-   40 minutes: (brief description/outline)
    
    My talk will be in two parts.
    
    In Part 1, I cover persian input methods. With an
    emphasis on &amp;lsquo ;Banan Multi-Character (Reverse)
    Transliteration Persian Input Method&amp;rsquo;. The
    software is part of base emacs distribution.
    Full documentation is available at:
           Persian Input Methods
           For Emacs And More Broadly Speaking
           &#1588;&#1740;&#1608;&#1607;&#8204;&#1607;&#1575;&#1740;&#1616; &#1583;&#1585;&#1580; &#1576;&#1607; &#1601;&#1575;&#1585;&#1587;&#1740;&#8204;
           &lt;http://mohsen.1.banan.byname.net/PLPC/120036&gt;
    
    In Part 2, I will cover the ramifications of bidi
    on existing emacs applications, including:
    
    -   Gnus:
        -   Persoarabic rich email sending in HTML.
        -   Ramifications of bidi on from, to and
            subject lines.
    
    -   Bbdb: Ramifications of bidi on display and
        completion.
    
    -   Calendar:
        -   Ramifications of bidi on display.
        -   Use of persian text for Persian (solar) calendar.
        -   Use of arabic text for Muslem (lunar)  calendar.
    
    -   AUCTeX: Persian typesetting with XeLaTeX</description><url>https://emacsconf.org/2021/talks/bidi</url><persons><person>Mohsen BANAN</person></persons></event><event id="43" guid="3364aedb-a496-5c64-5383-b0080afa6d7b"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-mold</slug><duration>19:00</duration><title>Moldable Emacs, a step towards sustainable software</title><abstract># Moldable Emacs, a step towards sustainable software
Andrea

We could learn about things better. Mountains of knowledge hide in
places we cannot access or use. The more we write down, the more it
takes to find and understand things we find useful.

Knowledge (web, software, books) keeps growing faster and faster! This
is not sustainable: we cannot keep up with it! What if we repeat the
error of somebody else, only because it would take too much reading to
know? What if that knowledge is in some code we work with everyday?

Moldable development is a paradigm shift that attempts to solve this
problem. In a gist, the tool you use should let you create special tools
to learn smartly from what you have already.

Since we use Emacs, let's make our great editor moldable!

This talk shows my progress in making Emacs closer to such a tool. We
are going to see how we can mold structured (and maybe even natural)
text to learn better, how we can inject notes in our projects and how
self documenting this tool is!

I aim to inspire you to find a quicker way to learn from our digital
world!

You can learn more about this at: <https://github.com/ag91/moldable-emacs>



# Outline

-   5-10 minutes: quick demo of moldable-emacs</abstract><description>Times are approximate and will probably change.

# Moldable Emacs, a step towards sustainable software
Andrea

We could learn about things better. Mountains of knowledge hide in
places we cannot access or use. The more we write down, the more it
takes to find and understand things we find useful.

Knowledge (web, software, books) keeps growing faster and faster! This
is not sustainable: we cannot keep up with it! What if we repeat the
error of somebody else, only because it would take too much reading to
know? What if that knowledge is in some code we work with everyday?

Moldable development is a paradigm shift that attempts to solve this
problem. In a gist, the tool you use should let you create special tools
to learn smartly from what you have already.

Since we use Emacs, let's make our great editor moldable!

This talk shows my progress in making Emacs closer to such a tool. We
are going to see how we can mold structured (and maybe even natural)
text to learn better, how we can inject notes in our projects and how
self documenting this tool is!

I aim to inspire you to find a quicker way to learn from our digital
world!

You can learn more about this at: &lt;https://github.com/ag91/moldable-emacs&gt;



# Outline

-   5-10 minutes: quick demo of moldable-emacs</description><url>https://emacsconf.org/2021/talks/mold</url><persons><person>Andrea</person></persons></event><event id="44" guid="daf3570b-3df3-9db4-a1f3-ce98d9863717"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-clede</slug><duration>19:00</duration><title>CLEDE the Common Lisp Emacs Development Environment.</title><abstract># CLEDE the Common Lisp Emacs Development Environment.
Fermin MF

I've been developing a package that helps with the development of
Common Lisp's software,
it's uses the internal semantic framework, it has a custom reader
and integration for
common Emacs packages (like Sly and the internal inferior-lisp-mode).

The idea is to supply features that other language with and static
analyzer have,
like refactoring and code generation.

For more details: <https://gitlab.com/sasanidas/clede>

-   20 minutes:
    It seems like not too much people knows about semantic, so I can
    summarize some of it in 10 minutes
    and then  An explanation on how to use the package, how to extend it
    and the future of it.</abstract><description>Times are approximate and will probably change.

# CLEDE the Common Lisp Emacs Development Environment.
Fermin MF

I've been developing a package that helps with the development of
Common Lisp's software,
it's uses the internal semantic framework, it has a custom reader
and integration for
common Emacs packages (like Sly and the internal inferior-lisp-mode).

The idea is to supply features that other language with and static
analyzer have,
like refactoring and code generation.

For more details: &lt;https://gitlab.com/sasanidas/clede&gt;

-   20 minutes:
    It seems like not too much people knows about semantic, so I can
    summarize some of it in 10 minutes
    and then  An explanation on how to use the package, how to extend it
    and the future of it.</description><url>https://emacsconf.org/2021/talks/clede</url><persons><person>Fermin MF</person></persons></event><event id="45" guid="f03ae971-4d2b-ccc4-2643-4ae2391ce1ab"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-imaginary</slug><duration>19:00</duration><title>Imaginary Programming</title><abstract># Imaginary Programming
Shane Mulligan

Imaginary Programming (IP) is both methodology and paradigm. It is an
extension of literate programming and a way of creating software without
the use of imperative, functional or even declarative code. Yet IP employs
all disciplines to achieve the miraculous. The only contingency is on one
or more language models, known as foundation models. The real value of IP
is not found by abandoning sound logic altogether, but in weaving the real
with the imaginary. The future of imaginary programming is one in which
almost all of computing is inferred. I have built a suite of tools based on
emacs for interfacing real programming languages with imaginary ones; all
of this in order to demonstrate what I mean; a ‘complex’ terminal that lets
you imagine what happens no matter how nested you are within interpreters,
an example-oriented language, a file format that encodes the provenance of
text and a library for imaginary functional programming primitives called
iLambda. It is important to recognise IP because, for lack of a better
term, it has far-reaching implications for intellectual property and the
GPL. Please keep an open mind.



# Outline

-   5-10 minutes:
-   a 5 minute introduction to imaginary programming, followed by
    -   a demonstration of iLambda.
        -   iλ, a family of imaginary programming libraries
        <https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/>



IRC libertyprime at #emacs on libera

Shane Mulligan</abstract><description>Times are approximate and will probably change.

# Imaginary Programming
Shane Mulligan

Imaginary Programming (IP) is both methodology and paradigm. It is an
extension of literate programming and a way of creating software without
the use of imperative, functional or even declarative code. Yet IP employs
all disciplines to achieve the miraculous. The only contingency is on one
or more language models, known as foundation models. The real value of IP
is not found by abandoning sound logic altogether, but in weaving the real
with the imaginary. The future of imaginary programming is one in which
almost all of computing is inferred. I have built a suite of tools based on
emacs for interfacing real programming languages with imaginary ones; all
of this in order to demonstrate what I mean; a &#8216;complex&#8217; terminal that lets
you imagine what happens no matter how nested you are within interpreters,
an example-oriented language, a file format that encodes the provenance of
text and a library for imaginary functional programming primitives called
iLambda. It is important to recognise IP because, for lack of a better
term, it has far-reaching implications for intellectual property and the
GPL. Please keep an open mind.



# Outline

-   5-10 minutes:
-   a 5 minute introduction to imaginary programming, followed by
    -   a demonstration of iLambda.
        -   i&#955;, a family of imaginary programming libraries
        &lt;https://mullikine.github.io/posts/designing-an-imaginary-programming-ip-library-for-emacs/&gt;



IRC libertyprime at #emacs on libera

Shane Mulligan</description><url>https://emacsconf.org/2021/talks/imaginary</url><persons><person>Shane Mulligan</person></persons></event><event id="46" guid="27595637-b6b9-f764-805b-ff1b7f009006"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-build</slug><duration>19:00</duration><title>How to build an Emacs</title><abstract># How to build an Emacs
Fermin MF

This is a deep dive in the Emacs philosophical and technical
aspect on what makes our beloved GNU Emacs
what it it. It's also a talk about the early LISP machines and
fascinating were those days of experimentation and engineering.

It will continue with the Emacs benefits/trade-offs from an
user/developer stand points, what things can be improved and
what can be an hypothetical path on how to build a software that
can also be called Emacs.

As a last part, I'll talk about CEDAR, an Emacs that I've been
developing in Common Lisp, the project goals
and the challenges.

For more details about CEDAR: <https://gitlab.com/sasanidas/cedar>

-   40 minutes:
    A dive into the Emacs/Lisp machines history, what makes GNU Emacs
    an Emacs and how you can build an Emacs.</abstract><description>Times are approximate and will probably change.

# How to build an Emacs
Fermin MF

This is a deep dive in the Emacs philosophical and technical
aspect on what makes our beloved GNU Emacs
what it it. It's also a talk about the early LISP machines and
fascinating were those days of experimentation and engineering.

It will continue with the Emacs benefits/trade-offs from an
user/developer stand points, what things can be improved and
what can be an hypothetical path on how to build a software that
can also be called Emacs.

As a last part, I'll talk about CEDAR, an Emacs that I've been
developing in Common Lisp, the project goals
and the challenges.

For more details about CEDAR: &lt;https://gitlab.com/sasanidas/cedar&gt;

-   40 minutes:
    A dive into the Emacs/Lisp machines history, what makes GNU Emacs
    an Emacs and how you can build an Emacs.</description><url>https://emacsconf.org/2021/talks/build</url><persons><person>Fermin MF</person></persons></event><event id="48" guid="80d1ad02-5fe4-03b4-c573-17ea6cdb61aa"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-forever</slug><duration>19:00</duration><title>M-x Forever: Why Emacs will outlast text editor trends</title><abstract># M-x Forever: Why Emacs will outlast text editor trends
David Wilson

The computer software industry has seen many "popular" text editors come
and go, often due to the mercurial fashions of software development.  In
this talk, we'll take a look at why popular editors fade and the
specific aspects of Emacs that will ensure it remains relevant
regardless of mainstream popularity.



# Outline

- Discuss the core thesis, the features that make Emacs
  desirable for long-term use (extensibility, day-to-day 'life' features)

- Include more background on the text editor landscape and
  how the scope of various editors is more narrow and doesn't compare to Emacs.

- Talk about specific instances where editors were popular, fell out
  of popularity, and why (due to changing fashions, not usually
  better features).</abstract><description>Times are approximate and will probably change.

# M-x Forever: Why Emacs will outlast text editor trends
David Wilson

The computer software industry has seen many "popular" text editors come
and go, often due to the mercurial fashions of software development.  In
this talk, we'll take a look at why popular editors fade and the
specific aspects of Emacs that will ensure it remains relevant
regardless of mainstream popularity.



# Outline

- Discuss the core thesis, the features that make Emacs
  desirable for long-term use (extensibility, day-to-day 'life' features)

- Include more background on the text editor landscape and
  how the scope of various editors is more narrow and doesn't compare to Emacs.

- Talk about specific instances where editors were popular, fell out
  of popularity, and why (due to changing fashions, not usually
  better features).</description><url>https://emacsconf.org/2021/talks/forever</url><persons><person>David Wilson (System Crafters)</person></persons></event><event id="49" guid="828e7c62-8430-f1a4-431b-63c308d58688"><date>2021-10-27T16:24:20Z</date><start>12:24</start><language>en</language><room>Main</room><subtitle></subtitle><type>Talk</type><track>Main</track><slug>emacsconf-2021-day2-close</slug><duration>19:00</duration><title>Closing remarks day 2</title><abstract># Closing remarks day 2</abstract><description>Times are approximate and will probably change.

# Closing remarks day 2</description><url>https://emacsconf.org/2021/talks/day2-close</url><persons><person>EmacsConf</person></persons></event></room></day></schedule>