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
|
<!-- Automatically generated by emacsconf-publish-after-page -->
<div class="transcript transcript-mainVideo"><a name="emacs30-mainVideo-transcript"></a><h1>Transcript</h1>
<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Hello, and welcome to Emacs 30 Highlights at EmacsConf 2024.""" start="00:00:00.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Before I begin, I'd like to thank the organizers""" start="00:00:06.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and everyone involved for putting this all together.""" start="00:00:08.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""While this talk is being pre-recorded,""" start="00:00:11.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""my experience from the last few years""" start="00:00:13.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""assures me that it will be a great experience for everyone.""" start="00:00:15.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""My name is Philip Kaludercic.""" start="00:00:19.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I am a core contributor and ELPA co-maintainer.""" start="00:00:21.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I was honored when Sacha asked me""" start="00:00:24.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to take over the slot for this year.""" start="00:00:26.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""In the past few iterations,""" start="00:00:28.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""John Wiegley has filled a similar presentation""" start="00:00:29.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""focusing on more general Emacs development updates.""" start="00:00:32.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This year, I will specifically focus on""" start="00:00:35.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""highlight features from the upcoming Emacs 30 release,""" start="00:00:38.502" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which might or might not have been released""" start="00:00:41.933" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""by the time you are seeing this.""" start="00:00:44.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""As you can imagine, everything new about Emacs""" start="00:00:48.060" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""can always be found in the Emacs NEWS file.""" start="00:00:51.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Or, alternatively,""" start="00:00:55.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""if one doesn't want to read through the 3,000 lines here,""" start="00:00:57.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""one can also take a look at the Emacs FAQ""" start="00:01:01.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and then go to the what's new about""" start="00:01:05.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or what's different about Emacs 30 node.""" start="00:01:08.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Next to these two official options,""" start="00:01:12.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I also have a page on Emacs Wiki""" start="00:01:14.733" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""called EmacsThirtyHighlights,""" start="00:01:18.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""highlighting some of the interesting features""" start="00:01:21.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with some context and suggestions on how to try them out.""" start="00:01:24.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is more of a collaborative effort.""" start="00:01:28.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So if you see this and think something is missing,""" start="00:01:30.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""feel free to add it.""" start="00:01:32.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So without further ado,""" start="00:01:34.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""let's begin taking a look at new features in Emacs 30.""" start="00:01:36.866" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Android""" start="00:01:41.800" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""The biggest one, and the one I want to mention first,""" start="00:01:41.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is Android support, native Android support.""" start="00:01:44.733" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""As you can see here, Emacs has been ported""" start="00:01:49.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to the Android operating system.""" start="00:01:51.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""What this means is that from Emacs 30 onwards,""" start="00:01:53.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you can build Android to target Android devices natively""" start="00:01:56.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and using a graphical interface.""" start="00:02:01.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""While it has been possible to run Emacs""" start="00:02:06.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""inside of terminal emulators on Android for a while,""" start="00:02:08.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""this actually means that you can use Emacs""" start="00:02:11.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""on an Android device, a phone or a tablet,""" start="00:02:13.933" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and have all the usual advantages from GUI Emacs,""" start="00:02:17.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""such as the ability to bind all commands""" start="00:02:20.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""without having to worry about--""" start="00:02:23.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""all keys without having to worry""" start="00:02:25.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""about terminal compatibility issues,""" start="00:02:27.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""displaying images and multiple fonts""" start="00:02:29.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""on the same display of different sizes.""" start="00:02:32.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I should have a recording""" start="00:02:35.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""of that somewhere here--here we are--""" start="00:02:37.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which I made earlier on my phone,""" start="00:02:42.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""because I'm recording this on a laptop--""" start="00:02:44.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""where we can see how touch interaction works""" start="00:02:47.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""on an Android phone. I can switch between buffers.""" start="00:02:50.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Here I've connected an external keyboard,""" start="00:02:53.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""opening the Emacs website.""" start="00:02:56.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""We have images that we can interact with.""" start="00:02:57.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""We could resize them if we wanted to""" start="00:03:02.560" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with the image resizing commands.""" start="00:03:04.320" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Pinch-to-zoom works, so it""" start="00:03:07.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""does realize what touchscreen interactions are.""" start="00:03:10.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""With an external mouse, and for example,""" start="00:03:12.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""enabling context menu mode,""" start="00:03:15.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I can even pop up little interaction windows,""" start="00:03:17.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which one you would usually also know from GUI Emacs.""" start="00:03:23.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""TUI Emacs actually also supports them since a while now.""" start="00:03:28.140" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""And in this case, I'm demonstrating""" start="00:03:33.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""how even the touchscreen events""" start="00:03:34.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""can be inspected using the usual help system,""" start="00:03:36.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and how context-mode notices""" start="00:03:39.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""where we are and allows me to, for example,""" start="00:03:43.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""evaluate this specific region,""" start="00:03:45.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which I've highlighted down there,""" start="00:03:47.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""binding a command to touch-screen-scroll. Yeah.""" start="00:03:49.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""One should note that these additions,""" start="00:03:58.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for example touchscreen interaction,""" start="00:04:00.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""are not specific to Android,""" start="00:04:02.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but they also are supported in other operating systems,""" start="00:04:03.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""such as Wayland and Xorg, which are not operating systems,""" start="00:04:07.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and Windows, insofar as they have touchscreen,""" start="00:04:12.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and devices have touchscreen support.""" start="00:04:15.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""One should mention, or I want to mention,""" start="00:04:18.420" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""that the main developer behind this feature, Po Lu,""" start="00:04:21.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""should be complimented for the additional effort he put""" start="00:04:24.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""into making sure that Emacs for Android""" start="00:04:27.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""can be built using only a free software toolchain,""" start="00:04:31.020" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is certainly not something one has come to expect""" start="00:04:34.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""from working on Android applications,""" start="00:04:36.360" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""as usually you have to agree to some terms and conditions""" start="00:04:40.733" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for Google-specific software.""" start="00:04:43.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Final note is that if you try and look for this online,""" start="00:04:46.520" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""there are APKs you can find,""" start="00:04:49.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but some of them might be outdated.""" start="00:04:52.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""To the best of my knowledge, Po Lu has...""" start="00:04:54.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Emacs 30 Android Sourceforge...""" start="00:04:59.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""He has set up some system where here in Sourceforge,""" start="00:05:03.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""there are regular and updated""" start="00:05:06.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""APK files which you can download""" start="00:05:12.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to avoid having to build it yourself,""" start="00:05:14.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""testing out the newest version""" start="00:05:16.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in case there are some bugs which you'd like to report.""" start="00:05:18.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Which-key is a package which has now been moved""" start="00:05:24.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""from ELPA to the core.""" start="00:05:33.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If you haven't heard of which-key before, the idea is,""" start="00:05:35.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or the general pitch is that which-key""" start="00:05:39.180" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is a additional documentation interface for Emacs""" start="00:05:41.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for displaying various keys which you could input,""" start="00:05:45.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or various keys and key maps""" start="00:05:49.733" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""that have been partially inputted.""" start="00:05:53.440" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""A better way to demonstrate this""" start="00:05:54.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or to explain this is just to show it.""" start="00:05:57.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If we enable the which-key mode--it's a global minor mode--""" start="00:05:59.333" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then I can press, for example, C-x,""" start="00:06:03.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is a prefix for the C-x keymap.""" start="00:06:06.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Then down here in the buffer, in this window down here,""" start="00:06:08.733" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""we see various commands which we could invoke""" start="00:06:12.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and the keys to invoke them with.""" start="00:06:15.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""For example, if I wanted to say C-x i for insert-file,""" start="00:06:17.933" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then I just have to press i to highlight it once again.""" start="00:06:23.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It should be down here. Pressing i without having to repeat""" start="00:06:27.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the entire key code again,""" start="00:06:32.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the partial key code again, just works.""" start="00:06:34.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is different from the feature which Emacs has already,""" start="00:06:37.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is if you have input the partial keychord,""" start="00:06:41.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you can press C-h""" start="00:06:45.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and then a help buffer pops up with a listing""" start="00:06:47.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""of all keybindings that start with C-x.""" start="00:06:51.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The information is the same, the presentation is different,""" start="00:06:54.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""because now if I wanted to do C-x i,""" start="00:06:56.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I have to repeat the entire keychord again.""" start="00:06:59.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So it's a matter of personal preference, which you prefer.""" start="00:07:03.340" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is more of a traditional static approach""" start="00:07:09.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""because I get a help buffer which I can search""" start="00:07:10.960" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""using usual key commands,""" start="00:07:19.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""while which-key is more of a transient and modern.""" start="00:07:20.933" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Some might prefer that approach""" start="00:07:28.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to solving the same problem.""" start="00:07:31.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Also, don't forget to check out the customization group""" start="00:07:35.720" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for which-key which has a number of options""" start="00:07:39.133" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which you might or might not be interested in.""" start="00:07:41.966" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""EditorConfig""" start="00:07:45.720" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, Emacs 30 has built-in EditorConfig support.""" start="00:07:45.720" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If you have not heard of EditorConfig before,""" start="00:07:50.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I believe I've linked to it down here somewhere.""" start="00:07:53.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Ah, there it is, EditorConfig.""" start="00:07:56.640" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is a file format used to specify""" start="00:08:00.120" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""common formatting rules in an editor-agnostic way.""" start="00:08:09.420" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""You might compare it to .dir-locals.el files,""" start="00:08:12.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is a sort of an s-expression""" start="00:08:16.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for setting file-local variables in Emacs.""" start="00:08:19.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Of course, this is restricted to the common subset""" start="00:08:22.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""of what all editors should understand.""" start="00:08:27.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""For example, indentation styles,""" start="00:08:29.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""whether you prefer tabs or spaces,""" start="00:08:31.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""tab width, file encoding, and so on.""" start="00:08:35.120" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So it's nothing too advanced, but it's something...""" start="00:08:38.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It is a file format which one sees popping up more""" start="00:08:43.920" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and more often in lots of projects""" start="00:08:48.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which want to enforce a consistent indentation style""" start="00:08:50.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or formatting rules for all editors in a project.""" start="00:08:53.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Having this built in is certainly useful in Emacs.""" start="00:08:56.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Though one should note that it's not enabled by default.""" start="00:09:00.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""You still have to enable the global minor mode,""" start="00:09:03.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is simply turning on this one option.""" start="00:09:10.940" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Shouldn't be more than that,""" start="00:09:14.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and then Emacs will respect the rules.""" start="00:09:15.533" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If it finds a .editorconfig file in the project directory,""" start="00:09:18.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then it will respect those rules""" start="00:09:23.641" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""without having to do anything else.""" start="00:09:25.321" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""use-package integration with package-vc""" start="00:09:27.310" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, use-package integration with package-vc.""" start="00:09:27.310" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""For those not familiar with either of the two,""" start="00:09:33.568" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or at least one of the two,""" start="00:09:36.534" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""use-package is a popular configuration macro.""" start="00:09:37.534" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""What it does is it allows""" start="00:09:40.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""users to declaratively specify packages""" start="00:09:42.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""they would like to have installed and configured""" start="00:09:46.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in their configuration file,""" start="00:09:48.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so that, for example, if you copy your init.el""" start="00:09:51.660" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""from one system to another,""" start="00:09:54.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""it could bootstrap the entire configuration,""" start="00:09:55.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""downloading all the packages you want""" start="00:09:58.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""without having to manually do this""" start="00:10:00.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""on every system you'd like to use.""" start="00:10:02.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This allows configurations""" start="00:10:05.140" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to be self-encapsulated and portable.""" start="00:10:07.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""package-vc is an extension of package.el,""" start="00:10:10.860" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which allows installing packages from an alternative.""" start="00:10:15.060" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Instead of using the standard way to install packages,""" start="00:10:19.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which is just download tarball and unpack it,""" start="00:10:22.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""byte compile, and so on,""" start="00:10:26.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""it will fetch the files for a package""" start="00:10:27.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""directly from the source code repository""" start="00:10:32.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and initialize it in such a way""" start="00:10:35.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""that package.el can work with it.""" start="00:10:37.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So it's just a front-end for installing packages.""" start="00:10:38.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Even though these two were added to Emacs 29,""" start="00:10:44.240" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""we didn't have the time to work on the""" start="00:10:46.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""use-package integration of package-vc into use-package,""" start="00:10:48.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which has been changed now.""" start="00:10:52.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""What we have with Emacs 30 is that""" start="00:10:54.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""there is a :vc keyword for use-package""" start="00:11:00.140" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with which we can instruct use-package""" start="00:11:02.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to not download a package using tarball,""" start="00:11:05.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but instead to fetch the source code""" start="00:11:10.240" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""from a source code repository.""" start="00:11:12.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is useful if you, for example,""" start="00:11:13.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""have packages which you yourself work on""" start="00:11:15.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and know that you always want to have""" start="00:11:18.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the development version of the package""" start="00:11:19.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""where you can directly commit changes you've made""" start="00:11:21.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to the repository and push them upstream.""" start="00:11:26.820" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Or, if you know that you want to contribute to a package,""" start="00:11:29.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you can use package-vc to download the source code,""" start="00:11:32.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""have all the version control information,""" start="00:11:35.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""prepare a patch and send it upstream.""" start="00:11:37.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""In these examples here,""" start="00:11:41.740" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the first example Lisp instructs package-vc""" start="00:11:43.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to download the source code from a URL.""" start="00:11:49.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So this is a git URL where it will download""" start="00:11:52.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the source code from, and in this case,""" start="00:11:55.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""choose the newest checkout of the source code,""" start="00:11:57.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""not the latest release. Down here, we have another example.""" start="00:12:00.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I prefer to consider the following example here.""" start="00:12:04.940" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If we just had written this,""" start="00:12:08.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then package-vc would use the metadata""" start="00:12:10.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which an ELPA server provides""" start="00:12:13.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to fetch the URL from the official repository of,""" start="00:12:15.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in this case, BBDB, without having to...""" start="00:12:20.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It would be more or less the same like this up here,""" start="00:12:22.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with the simple difference that package-vc integration""" start="00:12:27.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""into use-package doesn't check out the latest commit,""" start="00:12:32.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but the latest release,""" start="00:12:36.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""just to keep configurations more deterministic by default.""" start="00:12:37.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Of course, if you prefer to use latest commit,""" start="00:12:44.980" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you can use a package-vc install command""" start="00:12:47.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or just update the package manually yourself,""" start="00:12:52.180" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which you can use using package-vc-upgrade.""" start="00:12:54.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Next, I'd like to focus on a few features""" start="00:13:01.780" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which one might not necessarily realize directly,""" start="00:13:04.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but will hopefully improve your experience with Emacs.""" start="00:13:07.033" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""JSON""" start="00:13:11.560" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""First up in this list is a new JSON parser.""" start="00:13:11.560" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Let's maybe show the source code for that one:""" start="00:13:15.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""not json.el, json.c. The history of JSON parsing in Emacs""" start="00:13:21.960" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""started with Emacs 23 with the addition of json.el.""" start="00:13:39.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This was the file which we had just opened a moment ago.""" start="00:13:43.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is a JSON parser in Emacs Lisp.""" start="00:13:46.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It's fine, it does the job, but it can get slow""" start="00:13:50.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""if we have a situation like where""" start="00:13:53.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Eglot uses a LSP server to communicate with""" start="00:13:55.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and the LSP server can get a bit chatty,""" start="00:14:00.320" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""sending a lot of JSON data,""" start="00:14:03.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which all has to be parsed and garbage collected,""" start="00:14:05.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which can slow down Emacs a bit.""" start="00:14:08.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The situation was improved upon in Emacs 29""" start="00:14:09.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""when JSON parsing was added to the core.""" start="00:14:13.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This was the json.c file, which we see on this side,""" start="00:14:18.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""the old version of the json.c file,""" start="00:14:21.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which employed the Jansson library (it's the C library)""" start="00:14:22.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for parsing and accelerating JSON parsing in Emacs.""" start="00:14:26.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This was good enough,""" start="00:14:31.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or it certainly improved the situation""" start="00:14:34.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for a lot of LSP clients.""" start="00:14:36.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""But in Emacs 30, the situation has been improved once more""" start="00:14:38.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with the addition of a JSON parser directly in Emacs.""" start="00:14:44.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So instead of using an external library,""" start="00:14:49.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""there's a custom JSON parser written in C in the Emacs core,""" start="00:14:53.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which directly generates Elisp objects.""" start="00:14:57.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The advantage to this approach""" start="00:15:01.540" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""compared to the Jansson approach""" start="00:15:05.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is that there's no intermediate format""" start="00:15:06.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which has to be allocated""" start="00:15:07.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and memory managed and freed again,""" start="00:15:09.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which of course incurs an additional performance overhead.""" start="00:15:11.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Next to this, there's also a custom serializer""" start="00:15:19.540" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""for JSON contents translating a JSON object into a string.""" start="00:15:22.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""... The consequence of this is that""" start="00:15:29.240" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""there is absolutely no dependency on Jansson anymore.""" start="00:15:30.641" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This in turn means that now all Emacs users""" start="00:15:35.520" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""from Emacs 30 onwards""" start="00:15:38.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""can take advantage of this new JSON parser""" start="00:15:39.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and don't have to worry about whether""" start="00:15:42.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or not they have Jansson, this JSON parsing library,""" start="00:15:44.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""installed on their system or not when they want""" start="00:15:47.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to take advantage of this accelerated JSON parsing.""" start="00:15:50.466" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Native compilation""" start="00:15:56.680" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, another behind-the-scenes feature""" start="00:15:56.680" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is that if you build Emacs on your own from source,""" start="00:16:00.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you might know that if you wanted""" start="00:16:06.407" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to use native compilation,""" start="00:16:07.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so the translation of Elisp bytecodes""" start="00:16:09.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to whatever the native assembly""" start="00:16:12.380" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or native instruction set is on your system,""" start="00:16:15.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you have to specify with native compilation.""" start="00:16:19.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""when invoking the configure script,""" start="00:16:24.340" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""otherwise it would not have been enabled at all.""" start="00:16:25.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""With Emacs 30, this step is not necessary anymore.""" start="00:16:28.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The configure script will automatically check""" start="00:16:32.480" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""if you have the libgccjit library installed on your system,""" start="00:16:36.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and if that is so,""" start="00:16:41.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then native compilation will be enabled by default.""" start="00:16:42.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""In other words, if you have an issue with native compilation""" start="00:16:45.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or prefer not to use it for whatever reason,""" start="00:16:49.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you now have to type --without-native-compilation""" start="00:16:52.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""when compiling Emacs to prevent this from happening.""" start="00:16:55.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""But native compilation was added in Emacs 28""" start="00:16:58.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and has proven to be a very stable""" start="00:17:02.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and useful feature for most people,""" start="00:17:04.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so there's probably no reason to do this""" start="00:17:06.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and you can just invoke the configure script""" start="00:17:09.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with one argument less. Right, and I'd like to finish up""" start="00:17:11.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with a few smaller features, a few smaller highlights.""" start="00:17:16.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Maybe we can go back to the listing here. Here we have it.""" start="00:17:19.500" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Tree-sitter""" start="00:17:29.640" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""There are a few new major modes""" start="00:17:29.640" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""based on the tree-sitter library.""" start="00:17:32.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""tree-sitter is this parser library""" start="00:17:34.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which has been integrated into Emacs 29.""" start="00:17:37.940" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It allows the integration""" start="00:17:39.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""of external, specialized, and quick parsers into Emacs,""" start="00:17:44.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which improve stuff like syntax highlighting, indentation,""" start="00:17:48.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""structural navigation, imenu support,""" start="00:17:52.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""by simply having a better understanding of, for example,""" start="00:17:55.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""a HTML file, or a Lua file, a PHP file,""" start="00:18:01.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""than what people usually implement""" start="00:18:03.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""using regular expressions in traditional major modes.""" start="00:18:06.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So, a few new major modes which you can try out here.""" start="00:18:10.400" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Completion preview mode""" start="00:18:16.780" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another interesting feature is the completion-preview-mode.""" start="00:18:16.780" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""We can maybe try it out here in the scratch buffer.""" start="00:18:20.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If I enable completion-preview-mode...""" start="00:18:23.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is a non-global minor mode,""" start="00:18:28.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which will display completion options inline using overlays.""" start="00:18:32.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""For example, if I start typing a longer symbol like define,""" start="00:18:38.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""now we have a derived mode. It suggests me to...""" start="00:18:43.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I can just press TAB and then it completes the option here,""" start="00:18:48.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but it didn't actually...""" start="00:18:51.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It's not actually modifying the buffer, it's not pressing,""" start="00:18:51.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""these are just overlays,""" start="00:18:55.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so if I move around, it gets deleted.""" start="00:18:57.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It wouldn't get saved if I were to save the buffer.""" start="00:18:59.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The same also should work in a shell buffer.""" start="00:19:02.620" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If I enable completion preview mode here and start...""" start="00:19:05.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""In this case, I'm using the bash completion package,""" start="00:19:08.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which provides additional completion information.""" start="00:19:12.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is not only limited to programming systems,""" start="00:19:15.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but anywhere where you have completion at point in Emacs.""" start="00:19:17.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I can start typing here, ignore, and put ignore-backups,""" start="00:19:22.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and it hints to the options which I have""" start="00:19:26.160" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and allows me to complete them quickly.""" start="00:19:30.033" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""package-isolate""" start="00:19:34.233" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another small feature is the package-isolate command.""" start="00:19:34.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""What this does is it will start""" start="00:19:38.000" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or it will prompt me for packages""" start="00:19:40.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I have installed in my system""" start="00:19:42.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and will start an isolated""" start="00:19:44.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or like "emacs -Q"-ish instance of emacs""" start="00:19:46.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""with only these packages installed.""" start="00:19:51.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So for example, if I said I want slime and I want diff-hl,""" start="00:19:53.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then this is a new Emacs window.""" start="00:20:00.440" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It's unrelated to the one around.""" start="00:20:02.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It uses the same executable, of course,""" start="00:20:04.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but will not load your configuration file""" start="00:20:06.500" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or any other further customizations on your system.""" start="00:20:09.940" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""All it does, it will ensure""" start="00:20:13.680" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""that these packages, which are listed here,""" start="00:20:15.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so in our case SLIME and dependencies of SLIME and diff-hl,""" start="00:20:17.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in the system""" start="00:20:24.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so that I could, for example, as you can see here,""" start="00:20:25.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""diff-hl-mode works.""" start="00:20:29.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Okay, this is not a version-controlled file.""" start="00:20:32.140" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Maybe if we take a look at, have I enabled diff-hl-mode?""" start="00:20:34.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It's enabled in this case. What diff-hl-mode does""" start="00:20:41.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is it displays these version control changes""" start="00:20:44.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in the fringe of a buffer.""" start="00:20:48.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""And even though this is a uncustomized version of Emacs,""" start="00:20:49.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or an uncustomized instance of Emacs,""" start="00:20:54.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""it was easy for me to load this one package,""" start="00:20:56.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""or these two packages and all the dependencies necessary.""" start="00:20:59.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""As you can imagine, the main purpose for this""" start="00:21:02.066" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""is to make debugging issues easier.""" start="00:21:05.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If you want to report about an issue""" start="00:21:07.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""you have with a package. And if I close this, it's closed""" start="00:21:10.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and everything's thrown away.""" start="00:21:14.900" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Reindenting""" start="00:21:16.920" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Last up, a nice feature I think""" start="00:21:16.920" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""a lot of people will appreciate is,""" start="00:21:19.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""if you are familiar with... Let's open a text buffer.""" start="00:21:20.966" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The M-q key is traditionally bound to fill-paragraph.""" start="00:21:24.300" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""What this means is that...""" start="00:21:30.280" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Let's, for example, copy this text from here""" start="00:21:32.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and squash it all into one line. If I press M-q here,""" start="00:21:35.033" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then the lines will be broken""" start="00:21:40.400" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""according to the fill column indicator up here.""" start="00:21:42.720" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""This is the traditional usage of M-q,""" start="00:21:49.880" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and it still works in text-mode buffers,""" start="00:21:52.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""but in prog-mode buffers--""" start="00:21:54.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""so any major mode inheriting prog-mode--""" start="00:21:55.860" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""M-q will now by default be bound""" start="00:22:00.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to prog-fill-reindent-defun. To summarize the point,""" start="00:22:02.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""if you are editing a string or a comment,""" start="00:22:09.780" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then the comment will be filled.""" start="00:22:13.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""But if you are outside of a comment or outside of a string,""" start="00:22:16.040" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then the defun or the top-level construct""" start="00:22:19.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""in the programming language will be re-indented.""" start="00:22:23.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Let's try that out with maybe some file I have open here.""" start="00:22:26.160" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If I'm in this... Let's choose some function,""" start="00:22:34.100" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""let's take this for example.""" start="00:22:38.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If we followed all of this again,""" start="00:22:40.766" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and I press M-q in on this paragraph,""" start="00:22:43.960" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then the paragraph gets re-indented.""" start="00:22:47.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""But if I'm down here and I choose to break the indentation""" start="00:22:49.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and then press M-q,""" start="00:22:55.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then as you see, it practically selected the defun""" start="00:22:58.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and re-indented everything""" start="00:23:02.366" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""without having me to move the point around in the buffer.""" start="00:23:03.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""So I think that's a really nice feature,""" start="00:23:06.960" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which a lot of people can appreciate.""" start="00:23:08.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""It's one of those niceties which comes from time to time.""" start="00:23:11.100" video="mainVideo-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:23:17.940" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Right, so that was my overview""" start="00:23:17.940" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""of what's going to be new in Emacs 30.""" start="00:23:20.666" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""I hope that most people could take away""" start="00:23:22.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""something from this presentation""" start="00:23:24.433" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and have something to look forward""" start="00:23:25.580" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""to try out after upgrading.""" start="00:23:28.900" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""As mentioned initially, as of recording,""" start="00:23:31.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""this release has not been completed yet.""" start="00:23:33.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If this is still not the case""" start="00:23:36.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""when you're seeing this video,""" start="00:23:38.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""please consider downloading and building Emacs 30 yourself.""" start="00:23:40.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""If you have any issues, which is always the case,""" start="00:23:43.866" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""please report them to using report-emacs-bug.""" start="00:23:48.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""That will pop up a mail buffer,""" start="00:23:56.440" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and then you can describe your issue and send them out.""" start="00:23:57.908" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""All bug reports are valuable,""" start="00:23:59.633" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""even if they are false positives or duplicates--""" start="00:24:01.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""it doesn't matter--""" start="00:24:04.466" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""because when you take the time to submit a bug report,""" start="00:24:05.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which describes something that's specific to your setup,""" start="00:24:08.566" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which the developers might not have noticed or known about,""" start="00:24:12.266" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""then you are certainly helping out a lot of other people""" start="00:24:16.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which might run into the same issue in the future.""" start="00:24:19.166" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Especially with upgrades,""" start="00:24:21.800" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""it would be nice to figure out small problems""" start="00:24:23.233" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""which make upgrading difficult for some people.""" start="00:24:26.600" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""The ideal is, of course, to have no issues""" start="00:24:30.833" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""when upgrading from one version to another.""" start="00:24:34.700" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""Having said that, I thank you for your attention,""" start="00:24:37.200" video="mainVideo-emacs30" id="subtitle"]]
[[!template text="""and I'm saying goodbye.""" start="00:24:39.600" video="mainVideo-emacs30" id="subtitle"]]
</div>
Captioner: anush
<div class="transcript transcript-qanda"><a name="emacs30-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
[[!template text="""You sound great. And on the stream, my eyeball says it looks""" start="00:00:00.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""great with Leo doing the streaming. So I say let's dive right""" start="00:00:05.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in. You got a long, huge line. And in order to be a little more""" start="00:00:08.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""dialectical, I'll be reading the questions. So first""" start="00:00:12.640" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: which-key was a third-party package for a long time. Is there work to bring any other popular packages into core Emacs for Emacs 31+? (magit, counsel, etc)""" start="00:00:16.280" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""question, which key was a third party package for a long""" start="00:00:16.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""time? Is there work to bring any other popular packages into""" start="00:00:18.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the core of Emacs for Emacs 31 plus, like Magit or Counsel?""" start="00:00:21.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Uh, right. I already answered that one on the, as you can see,""" start="00:00:25.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""uh, right. Yeah. Do you want to quickly read the answer so""" start="00:00:30.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that everyone, I just can read it out again. Um, as far as I""" start="00:00:34.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""remember, the one package that was being discussed just""" start="00:00:38.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""around the time that the Emacs 30 branch was cut was macro""" start="00:00:41.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""step. That's the package that was like, does an overlay, uh,""" start="00:00:44.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""replaces a macro with the macro expansion using overlays.""" start="00:00:47.600" video="qanda-emacs30" id="subtitle"]]
[[!template text="""So you don't have to pop up another buffer, modified,""" start="00:00:51.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""modified current buffer. But we didn't manage to address""" start="00:00:53.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all the concerns in time for the Emacs 30 cuts and I believe""" start="00:00:57.600" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it's sort of stagnated around that but it might be picked up""" start="00:01:00.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""anytime someone mentions it on Emacs Devil again. Another""" start="00:01:03.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""package question mentioned was Magit. That's a constant""" start="00:01:07.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""discussion regarding Magit. And actually, from the top of""" start="00:01:11.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my head, I can't recall if Magit is on NonGNU ELPA or GNU ELPA""" start="00:01:14.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right now. It's still on NonGNU ELPA.""" start="00:01:19.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""For those who don't know, only packages which are in ELPA are""" start="00:01:23.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""considered for addition, considered to be added to the""" start="00:01:29.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs core, to be bundled along with Emacs. And then there's""" start="00:01:33.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""another totally parallel discussion about having a sort of""" start="00:01:36.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""fat Emacs distribution, I call it fat Emacs distribution,""" start="00:01:40.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""where Emacs comes with a lot of ELPA packages or the""" start="00:01:43.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pre-installed by default. Part of Emacs itself. Yeah.""" start="00:01:48.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Maybe I could jump in with an active listening style,""" start="00:01:55.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you know, kind of follow up question almost. You know, I""" start="00:01:59.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""understand the kind of different repositories. We have""" start="00:02:03.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""things that aren't maintained by GNU at all, you know, most""" start="00:02:07.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""notably MELPA. And then we have kind of NonGNU ELPA, which""" start="00:02:13.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""is sort of an entryway project where it's not necessarily""" start="00:02:17.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""curated, but there'll be some advice given, which you can""" start="00:02:21.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""take or leave. And that's the repository where anything""" start="00:02:24.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that was the newer repository that represents, you know,""" start="00:02:28.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""help, you know, help, help supplied from GNU. And then""" start="00:02:32.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there's the, actually the GNU, the GNU ELPA, what most of us""" start="00:02:36.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""are used to calling just ELPA. And that's what you're""" start="00:02:41.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""talking about there when you say,""" start="00:02:46.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I mean, all packages on ELPA are officially considered to be""" start="00:02:50.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""part of Emacs, they're licensed under the same conditions""" start="00:02:53.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""as Emacs itself, same license, same everything. And""" start="00:02:56.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""they're more likely to be, to drop, to kind of be dropping""" start="00:03:00.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""patched. Oh yeah, it's time for this to move to core. Is that""" start="00:03:03.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right? They have the legal conditions for that to be done.""" start="00:03:07.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Everything's necessary from a paperwork standpoint. I""" start="00:03:12.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mean, but other than that, there's not really a big""" start="00:03:15.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""difference between GNU ELPA and NonGNU ELPA. It's""" start="00:03:17.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""really just the main thing is this copyrights notice. So if""" start="00:03:21.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you want to add a package to ELPA, to GNU ELPA, then all""" start="00:03:23.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""significance contributors have to have signed the FSF""" start="00:03:28.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""copyright assignment and the package script, actually the""" start="00:03:32.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""ELPA build script, checks if the copyright lines are all""" start="00:03:36.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""attributed to the Free Software Foundation.""" start="00:03:41.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""But that's not going to attach, right? So because that's not""" start="00:03:43.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in place, it'd be a lot more work to merge it to core. I didn't""" start="00:03:52.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""hear the beginning. Nevermind. I think I understood. You""" start="00:03:57.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""made your point well. Okay. All right, moving on to the""" start="00:04:01.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""second question.""" start="00:04:05.560" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Any way to get the goodness of Emacs for android with this other stuff?""" start="00:04:06.467" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""When thinking about using Emacs on""" start="00:04:06.467" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Android, I started realizing all the other software I also""" start="00:04:08.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""want on it. For example, PDF Tools wants a small additional""" start="00:04:11.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs-specific program to be installed on, and notmuch""" start="00:04:15.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""obviously wants notmuch. Any way to get the goodness of""" start="00:04:18.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs for Android with this other stuff, using either Nix OS""" start="00:04:21.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""or Guix or nix-on-droid to make an APK with extra stuff? Are you""" start="00:04:25.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""familiar with this topic? Absolutely not. The extent to""" start="00:04:29.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""which I have used Emacs on Android was entirely""" start="00:04:34.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""demonstrated in this video, I think. In my previous video. I""" start="00:04:39.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mean, I know it does a few scrolling stuff, but I have no idea""" start="00:04:43.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how external stuff, because I mean, Android is, it's a Unix""" start="00:04:48.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""or it's a Linux based system, but it's really heavily""" start="00:04:52.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""modified to the preferences of Google, which includes not""" start="00:04:55.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""being able to have your own software on it. Yeah,""" start="00:05:01.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""definitely. All right, moving on to the next question. Does""" start="00:05:04.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""package-vc... Oh, no, that's fine. I mean, you can't answer""" start="00:05:08.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all the questions. I mean, it wouldn't be fun for me""" start="00:05:12.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""otherwise.""" start="00:05:15.200" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Does package-vc download a tarball from the specified git repository or clone the repository itself?""" start="00:05:15.754" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""Does package-vc download a tarball from the""" start="00:05:15.754" video="qanda-emacs30" id="subtitle"]]
[[!template text="""specified Git repository or clone the repository itself?""" start="00:05:17.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""It clones the repository. That's the VC part in the name.""" start="00:05:21.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""package-vc uses VC, the C-x v stuff. In Emacs 29, there's a""" start="00:05:25.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""new command called vc-clone, which in Emacs 31, it was""" start="00:05:33.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""actually exposed as an interactive command. And when you""" start="00:05:37.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""clone the repository, or when you, you can give it any URL of a""" start="00:05:42.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Git repository or a CVS repository or subversion""" start="00:05:47.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""repository. Interestingly enough, most people only use""" start="00:05:50.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Git, but anything that's, that implements this clone""" start="00:05:53.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""command for VC, and it could download it. So there's no""" start="00:05:57.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""tarballs involved. Which is also, one should emphasize,""" start="00:06:01.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""part of the difficulty of VC packages because when you have""" start="00:06:05.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version control and you want to upgrade it, it might be that""" start="00:06:07.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the upstream did a force push. For that, you make local""" start="00:06:10.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""changes and then you have to merge them upstream with the""" start="00:06:14.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""upstream changes when fetching stuff. It's one of the big""" start="00:06:17.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""downsides of version-controlled stuff, and I'm saying""" start="00:06:21.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""this as the guy who actually wrote package-vc. There's""" start="00:06:23.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""times to use it, there's advantages to it, but that's""" start="00:06:27.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""something you should keep in mind, why tarballs are""" start="00:06:29.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""interesting to have, in my opinion. Okay.""" start="00:06:32.960" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""How is the new behavior of M-q in prog-mode (prog-fill-reindent-defun or something like that) different from the behavior of C-M-q (indent-pp-sexp) in older Emacs versions?""" start="00:06:37.970" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""How is the new""" start="00:06:37.970" video="qanda-emacs30" id="subtitle"]]
[[!template text="""behavior of M-q in prog mode, prog-fill-reindent-defun""" start="00:06:39.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""or something like that, different from the behavior""" start="00:06:42.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""of C-M-q, i.e. indent-pp-sexp in older Emacs""" start="00:06:45.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version? My apologies if indent-pp-sexp, it's really tough to""" start="00:06:48.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""read M-x commands out loud. It's not bound to""" start="00:06:52.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""C-M-q by default, I can't tell. Let me try that command""" start="00:06:55.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""out because I've never tried it, never used it before.""" start="00:07:01.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""You know, that isn't bound by default. I bind that up myself""" start="00:07:05.600" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I have that binding. I think that's, that's not right. It""" start="00:07:09.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""says so. I mean, I'm currently executing it here in Emacs and""" start="00:07:11.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it says you can also run the commands indent-pp-sexp with""" start="00:07:15.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""M-q, C-M-q. Apparently it is. I mean, I""" start="00:07:20.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""didn't set it myself. I don't know what's up with that. to try""" start="00:07:26.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and move it. And then each line started with points or pretty""" start="00:07:31.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""printed. I mean, the difference, the main difference""" start="00:07:35.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""between that and the command highlighted, what's the name""" start="00:07:37.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""again? I forget it all the time. The prog-mode command.""" start="00:07:41.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""prog-fill-reindent-defun is that""" start="00:07:47.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it checks if it's in a string or not. If it's in a string or if""" start="00:07:50.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it's in a comma, then it will refill. Otherwise, it's going""" start="00:07:56.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to re-indent.""" start="00:07:58.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""That's, I think, as far as I see, that's going to be the main""" start="00:07:59.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""difference. If we have some long comments somewhere. Let's""" start="00:08:05.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""try that out. Yeah, that's the difference. I just, you can't""" start="00:08:09.600" video="qanda-emacs30" id="subtitle"]]
[[!template text="""see it, but I did try it. Okay, good. Thank you. You did a""" start="00:08:15.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wonderful job describing visually what you're doing. All""" start="00:08:19.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right, moving on to the next question, and we have about, we""" start="00:08:22.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""have just enough time to cover the last three questions,""" start="00:08:26.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""especially because the next one, I can pretty much surmise""" start="00:08:28.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the answer.""" start="00:08:32.240" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Any plans for Emacs running in iOS?""" start="00:08:33.144" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""Any plans for Emacs running on iOS? Probably not""" start="00:08:33.144" video="qanda-emacs30" id="subtitle"]]
[[!template text="""because it's not, I mean, as I emphasized in the video, the""" start="00:08:36.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs port in Android is completely free. And to my""" start="00:08:40.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""knowledge, that's not something that's currently""" start="00:08:43.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""possible with iOS. You need Xcode or something like that to""" start="00:08:45.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""build iOS stuff. So that's a big no-no. I mean, maybe Apple's""" start="00:08:49.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""going to change their mind on that one. Well, I won't be the""" start="00:08:56.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""one liaising with Apple to make sure that they do, but PR""" start="00:09:00.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""welcomes, I guess, or motivated folks welcome. Second to""" start="00:09:04.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""last question.""" start="00:09:07.600" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: I am worried about the situation on non-free systems. There was talk about the Windows and the macOS versions being as good as unmaintained. Where do we go from here?""" start="00:09:08.648" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""I am worried about the situation on non-free""" start="00:09:08.648" video="qanda-emacs30" id="subtitle"]]
[[!template text="""systems. There was talk about the Windows and the macOS""" start="00:09:11.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""versions being as good as unmaintained. Where do we go from""" start="00:09:14.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""here? I gather that most users of Emacs are still on non-free""" start="00:09:17.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""platforms and will remain to be there. I don't know about the""" start="00:09:20.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""last point, if that's true, because there's no statistics""" start="00:09:24.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""on that matter. But the main, I mean, someone has to, I know""" start="00:09:28.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that Corwin is involved with the Mac, with the Windows""" start="00:09:35.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stuff. Modestly. Sure, I'd love to jump in, but I'm far more""" start="00:09:37.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""interested in your thoughts than mine. Please, please""" start="00:09:43.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""continue. Someone has to do the work. Eli uses, as far as I""" start="00:09:45.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""know, Eli's on the Windows XP system. So as long as he's doing""" start="00:09:51.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that, there's going to be Windows support for one form or""" start="00:09:58.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""another, or at least DOS. All right. And now you put a quarter""" start="00:10:02.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in me, so I'll jump right back in. That's perfect for where I""" start="00:10:07.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""guess I would take the question. To me, it's an""" start="00:10:12.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""accessibility issue. Think about it this way. Maybe that""" start="00:10:14.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Windows XP system is what someone can afford. Likewise,""" start="00:10:17.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""from a freedom versus I have to do my job and I have to use""" start="00:10:23.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""certain technology to do my job. Maybe Emacs is what""" start="00:10:27.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""somebody can afford right? It might be the only free tool""" start="00:10:31.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that they use and they don't have a lot of choice about the""" start="00:10:35.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""operating system that they're in most of the day. In fact,""" start="00:10:37.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""somebody could be in the situation where their computing""" start="00:10:40.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""device at work is really their internet access, right? All""" start="00:10:42.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""of those situations are possible. Therefore, I tend to""" start="00:10:45.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""assume they all exist and when I ask, you know, how much It""" start="00:10:48.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""definitely is concerning when we hear about kind of black""" start="00:10:53.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""holes in the brain trust of something like support for the""" start="00:10:58.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Windows port. I feel like I've heard a lot of people""" start="00:11:02.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""answering that call, but the importance of that is that it""" start="00:11:06.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""doesn't stop echoing, right? Free software goes as long as""" start="00:11:10.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there are people that are irritated enough about something""" start="00:11:14.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to sort of come hack on it. Yeah. And the same applies to Mac""" start="00:11:16.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""OS. But I don't know any concrete details about who's""" start="00:11:20.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""currently working on it. I can't recollect any details on""" start="00:11:25.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""who's currently working on what.""" start="00:11:28.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Okay. And that leaves us with the last question of the day.""" start="00:11:29.440" video="qanda-emacs30" id="subtitle"]]
<div class="transcript-heading">[[!template new="1" text="""Q: Is there a best practice on what Org to use when following emacs-latest?""" start="00:11:35.280" video="qanda-emacs30" id="subtitle"]]</div>[[!template text="""I'm a bit confused about what version of Org that I should""" start="00:11:35.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""write towards because there's Org in Emacs, the one that""" start="00:11:38.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""ships built-in. There's the one in ELPA. There's the one in""" start="00:11:40.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Org, probably the Org ELPA, I assume. Is there a best""" start="00:11:44.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""practice on what Org to use when following Emacs latest?""" start="00:11:48.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""when following us latest. It depends on, I think, my rough""" start="00:11:51.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""heuristic is if you do use Org a lot and if you follow the""" start="00:11:58.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""newest features, then use the version on Elpa, because the""" start="00:12:02.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Elpa version should be the most up-to-date one. The Org Elpa""" start="00:12:06.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""was deprecated, to my knowledge. If that seems true, please""" start="00:12:09.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""someone interrupt me before I make a fool of myself.""" start="00:12:15.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""No one's done that yet.""" start="00:12:18.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I think a couple of years ago there were chats and then we""" start="00:12:24.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""deprecated the all contrib ELPA, but I think all the ELPA is""" start="00:12:29.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""still alive. I didn't know that about that. Okay, in that""" start="00:12:34.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""case, that relativizes how absolute my answer is.""" start="00:12:40.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Personally, I just use the version in Emacs, which is""" start="00:12:44.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""bundled with Emacs, which is regularly updated on master""" start="00:12:49.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""whenever there's a release. But that might take maybe, it""" start="00:12:53.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""might be a short time behind the ELPA version, or the other""" start="00:12:58.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""ELPA, the Org ELPA, which we mentioned. But I'm a very light""" start="00:13:03.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Org mode user, so please don't take my word for that one. No,""" start="00:13:11.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I'm happy to come to you. Yeah. I""" start="00:13:16.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""feel like we lost Leo again. OK. Well, that's all right. I""" start="00:13:23.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wanted a bite at that, Apple. I'm a little bit. Yeah, I also""" start="00:13:27.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""describe myself as a light org user, but somehow your""" start="00:13:31.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""comment made me think, well, maybe I do use it just a little""" start="00:13:34.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""bit more than you, Philip.""" start="00:13:37.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""From my standpoint, I'm using it as a technical basis for""" start="00:13:41.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""dungeon mode in order to keep the game notes for the games""" start="00:13:45.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that are made using this game engine I'm making that I talked""" start="00:13:49.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""about a few years ago. As soon as you said technical grounds,""" start="00:13:52.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you definitely use it more. Right, right. So I've studied""" start="00:13:56.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""its internals a bit, and I have my own thoughts about this or""" start="00:13:59.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that. But of course, I'm rolling with the punches because""" start="00:14:04.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I'm just grateful that the bear dances. What an amazing""" start="00:14:06.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""thing is Org Mode. But Leo knows far more than me,""" start="00:14:10.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""conveniently having his stage right here, so he can't""" start="00:14:14.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""defend himself from this. But I've had thoughts around this""" start="00:14:18.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""space. Are you back, Leo? Yeah, sorry, I'm back. You save us""" start="00:14:22.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all. Maybe closing remarks. I was trying to clear my throat""" start="00:14:28.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to be very inconspicuous about me coming back, but""" start="00:14:33.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""apparently I was ousted. Yeah, I was trying to answer the""" start="00:14:36.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""question and I was trying to desperately save you from""" start="00:14:39.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""answering, Philip, because yes, the thing about Org Mode is""" start="00:14:42.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that if you are the kind of people who tend to check out master""" start="00:14:46.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""on Org Mode, generally it's roughly pretty stable. Like""" start="00:14:48.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""when we were working with Org Element and stuff like this,""" start="00:14:51.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Perhaps there were some elements of stability which""" start="00:14:54.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""weren't there quite yet, but usually now it's pretty""" start="00:14:56.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stable. So I think that if you are really excited about""" start="00:14:59.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""contributing to Org Mode and stuff like this, I think there""" start="00:15:02.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""isn't all that many risks to just checking out Org Mode""" start="00:15:04.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Master, so cloning the repository and just keeping up to""" start="00:15:08.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""date. Otherwise, ELPA is a fairly safe bet if you want to have""" start="00:15:11.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the latest stable version. And we've got a question about""" start="00:15:15.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""[??] as with Emacs itself. You can follow whatever is""" start="00:15:19.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""published in your package archives or in your system""" start="00:15:24.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""distribution package manager. You can build it yourself if""" start="00:15:28.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you want to contribute and fix bugs, add features, and so on.""" start="00:15:32.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Yeah, and I don't think perhaps a little more with Emacs,""" start="00:15:36.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""because the features that tends to get introduced in Emacs""" start="00:15:40.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""are slightly more wild. Not wild in the sense that they are""" start="00:15:43.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""less stable, but wild in the sense that they tend to change a""" start="00:15:48.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""lot more stuff. The core of Org, at least during Bastien's""" start="00:15:50.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""maintenance ship, was very stable when you think about it.""" start="00:15:54.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""So things might change with Ihor right now in terms of how he""" start="00:15:56.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wants to change some of the core behaviors, but it's usually""" start="00:15:59.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pretty stable. And whether you use the latest major""" start="00:16:02.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version, the latest minor version, things are probably""" start="00:16:06.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""going to be pretty stable. It's like you heard me while you""" start="00:16:09.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""were offline. And I do agree with that, in case you might have""" start="00:16:11.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""heard both our remarks and think we're talking different""" start="00:16:16.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""angles. Actually, I think we would tend to agree on this, Leo""" start="00:16:18.320" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I. For the record, when I'm saying, oh, I have to go keep up""" start="00:16:22.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""with org, that's because org grows behaviors that I've got""" start="00:16:26.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my own. I had to figure out at some point my own way to do it, and""" start="00:16:30.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""now I'm learning how it's done, right? So I'm like, in my""" start="00:16:34.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""abstraction, blah, right? And those conversations""" start="00:16:38.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""usually end at, and somebody else took the time to figure out""" start="00:16:41.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how to actually make Emacs do that. Go be quiet. And I do, and I""" start="00:16:44.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""do consider that under Bastien's tenure, it has been quite""" start="00:16:48.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stable. We might notice the occasional like, oh, this""" start="00:16:53.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""highlights now and that didn't, right? But very often, very""" start="00:16:57.040" video="qanda-emacs30" id="subtitle"]]
[[!template text="""infrequently is it breaking my workflow as a user, any of it.""" start="00:17:00.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""It's interesting to me that this mirrors my experience with""" start="00:17:03.600" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs itself, where I think, in my perception, Emacs master""" start="00:17:07.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""is very stable and I might notice the slight changes between""" start="00:17:12.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""git pulls. But otherwise, in my experience, Org mode""" start="00:17:17.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""suddenly changes something, I don't know what changed or""" start="00:17:21.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""what's going on or what caused it, and it seemed... I""" start="00:17:24.880" video="qanda-emacs30" id="subtitle"]]
[[!template text="""perceive it as being a sudden uncontrolled change or""" start="00:17:29.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""something. I think that's apt. Right. That gets""" start="00:17:33.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right at it. If we're following, if we're pulling for more""" start="00:17:36.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pretty regularly, cronjob every night or pulling a few""" start="00:17:40.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""times a day or something like that, we're going to the""" start="00:17:42.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""internals yeah, we'll have a different experience than,""" start="00:17:44.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you know, if we only remember to update Org once every four""" start="00:17:48.640" video="qanda-emacs30" id="subtitle"]]
[[!template text="""months. It really pays to stick with everything. And""" start="00:17:51.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""suddenly lots of things might change. Whatever broke in my""" start="00:17:54.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""own config, right? And so a lot of, like a lot of things within""" start="00:17:59.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs, but also within the free software tool chain, it's""" start="00:18:03.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how much you're going to invent in the config, invest in the""" start="00:18:06.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""config, might limit you know, and maintaining your config""" start="00:18:09.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""may limit the depth of how far it makes sense for you to go with""" start="00:18:14.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the tool at any given point in time. Actually just looked up""" start="00:18:17.200" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my org config and it's four, I said four options, user""" start="00:18:21.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""options. So that's, if that's the measurements of org""" start="00:18:25.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""expertise, that's my level, it's four.""" start="00:18:29.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""That's all good then. Four of four, I'm assuming that is,""" start="00:18:32.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right? Four of what? What was the metric there, four of like a""" start="00:18:38.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""thousand? Four out of the number of user options that Word""" start="00:18:44.280" video="qanda-emacs30" id="subtitle"]]
[[!template text="""provides. Oh, okay, I see. Four, yeah, more like 10,000. I'm""" start="00:18:48.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there. Yeah. All right. On that note, I suggest we move to""" start="00:18:54.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""what's close because it's fairly late for me and I need to""" start="00:18:59.080" video="qanda-emacs30" id="subtitle"]]
[[!template text="""sleep. And Philip, I think it's pretty late for you as well,""" start="00:19:01.000" video="qanda-emacs30" id="subtitle"]]
[[!template text="""isn't it? I'm in Germany, so it's about... So it is pretty""" start="00:19:03.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""late. It's the same time zone as me. It's 11 p.m. for you.""" start="00:19:07.240" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Truly, yeah. Yeah, so I suggest we both take the chance to go""" start="00:19:09.800" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to bed as soon as we can. But Philip, thank you so much for""" start="00:19:16.400" video="qanda-emacs30" id="subtitle"]]
[[!template text="""both the presentation and also the answers that you""" start="00:19:20.360" video="qanda-emacs30" id="subtitle"]]
[[!template text="""provided to us and the nice little chat we had at the end. We""" start="00:19:22.760" video="qanda-emacs30" id="subtitle"]]
[[!template text="""look forward to seeing you again next year, perhaps for""" start="00:19:26.120" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs 31. I'm not sure. I was chatting with wasamasa""" start="00:19:29.520" video="qanda-emacs30" id="subtitle"]]
[[!template text="""trying to make prognostics about when Emacs 30 is going to be""" start="00:19:34.160" video="qanda-emacs30" id="subtitle"]]
[[!template text="""released. There's a pre-release coming soon. I should have""" start="00:19:37.680" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mentioned that earlier. Well, there you go. Gone.""" start="00:19:40.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""All right. Well, thank you so much, Philip. We'll be moving""" start="00:19:46.720" video="qanda-emacs30" id="subtitle"]]
[[!template text="""towards close. Give us about two minutes to get set up in the""" start="00:19:51.840" video="qanda-emacs30" id="subtitle"]]
[[!template text="""other room. And Philip, we'll see you next time. Goodbye.""" start="00:19:54.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Bye-bye. Thank you.""" start="00:19:58.440" video="qanda-emacs30" id="subtitle"]]
</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacs30%3A%20Emacs%2030%20Highlights)
<!-- End of emacsconf-publish-after-page -->
|