summaryrefslogblamecommitdiffstats
path: root/2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt
blob: f1425353ff113ff7fd58bc9957fef2df88640a9a (plain) (tree)
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

















































































































































































































































































































































































































































































































































































































































































































                                                                                                                                                               
WEBVTT

00:00:00.000 --> 00:00:12.919
And I believe we are live. Hi, Mats, how are you doing? Oh, I'm

00:00:12.920 --> 00:00:17.319
fine. It's a pleasure to see you again after last year. And I

00:00:17.320 --> 00:00:20.519
was trying to think about it. We saw you last year, but didn't

00:00:20.520 --> 00:00:26.919
we see you as well in 2022? Yes. This is my third year. Yeah,

00:00:26.920 --> 00:00:29.559
well, thank you for being a regular at EmacsConf. It's

00:00:29.560 --> 00:00:31.919
always a pleasure to have you chat about hyperbole.

00:00:31.920 --> 00:00:33.559
Although I think you're the only one chatting about

00:00:33.560 --> 00:00:37.159
hyperbole this year compared to last year. Yes,

00:00:37.160 --> 00:00:41.879
unfortunately, that's, yeah, Bob has some family issues.

00:00:41.880 --> 00:00:45.839
So yeah, I'm here, but I'm here. Yeah, but we are happy to have

00:00:45.840 --> 00:00:49.199
you here. And as I was saying before, I'm not sure if you were,

00:00:49.200 --> 00:00:52.519
you had the time to watch the previous talk by Mohsen, you

00:00:52.520 --> 00:00:56.239
know, you had, there were plenty of ideas, I think that were

00:00:56.240 --> 00:00:58.999
very similar to what Hyperbole is trying to do by having

00:00:59.000 --> 00:01:04.399
buttons and having stuff that can be in any other mode that

00:01:04.400 --> 00:01:08.399
would allow you to supplement a coding file with extra

00:01:08.400 --> 00:01:11.879
information. So the ideas are living on. And even though

00:01:11.880 --> 00:01:15.239
hyperbole is one thing, I feel like other packages are also

00:01:15.240 --> 00:01:17.759
taking a lot of inspiration for it. So congratulations on

00:01:17.760 --> 00:01:21.439
being an inspiration, I suppose. Oh, thanks.

00:01:21.440 --> 00:01:24.839
Unfortunately, I have not had any time to watch anything of

00:01:24.840 --> 00:01:29.759
the Emacs conference since apparently my life is like every

00:01:29.760 --> 00:01:33.559
time it's Emacs conference, I do something else. So I've been

00:01:33.560 --> 00:01:37.919
just moving this weekend. So, I'm in a new apartment, but I'm

00:01:37.920 --> 00:01:42.479
connected and everything seems to work okay. So, I can't

00:01:42.480 --> 00:01:45.199
relate to what we said in any of the other talks, I'm afraid.

00:01:45.200 --> 00:01:48.199
So, sorry about that. No, that's okay. No, but that's

00:01:48.200 --> 00:01:51.559
completely fine, because you may be able to watch the talks

00:01:51.560 --> 00:01:54.599
at any point later on, because I'll remind the viewers that

00:01:54.600 --> 00:01:57.319
the talks are currently available on EmacsConf or the

00:01:57.320 --> 00:02:01.199
pre-recorded one. And I think we only had one live talk

00:02:01.200 --> 00:02:04.239
yesterday. All of them are already available with

00:02:04.240 --> 00:02:08.039
subtitles and all the funny stuff that we usually put. So

00:02:08.040 --> 00:02:11.359
that's an invitation for people to watch it. All right. So,

00:02:11.360 --> 00:02:14.439
Mats, before we start with the questions, I see people in the

00:02:14.440 --> 00:02:17.959
process of writing them. Was there anything else you wanted

00:02:17.960 --> 00:02:21.159
to add on top of your presentation? Maybe some supplements

00:02:21.160 --> 00:02:29.039
or whatnot? No, no. Nothing to add. Right. I mean, this year

00:02:29.040 --> 00:02:31.519
was more a bag of tricks, some new stuff that you've

00:02:31.520 --> 00:02:36.159
implemented in Hyperbole. And it's fun because I see the UI

00:02:36.160 --> 00:02:40.159
that you have for some of those modes. And earlier, you

00:02:40.160 --> 00:02:42.399
weren't able to watch those talks, but we were talking a lot

00:02:42.400 --> 00:02:46.119
about Transient and about what it allows you to do in terms of

00:02:46.120 --> 00:02:51.039
interactivity. I'm actually familiar with Transient. No,

00:02:51.040 --> 00:02:56.279
no, no. It's a mode written by Tarsius, so Jonas Bernoulli,

00:02:56.280 --> 00:03:01.599
the person behind Magit, and it's a very nice way to create

00:03:01.600 --> 00:03:06.319
menus for interactive setups. So, if you are interested in

00:03:06.320 --> 00:03:10.039
perhaps augmenting what you currently have with

00:03:10.040 --> 00:03:12.959
Hyperbole, it might be nice to look into Transient because I

00:03:12.960 --> 00:03:16.359
think this is heading towards eventually being merged into

00:03:16.360 --> 00:03:18.879
the core of Emacs. I mean, don't quote me on this. and I'm not

00:03:18.880 --> 00:03:21.719
sure how Tarsius feels about it, but because of the

00:03:21.720 --> 00:03:25.879
adoption, because Magit obviously uses transient, Org is

00:03:25.880 --> 00:03:28.839
trying to make a move towards adopting transient, it feels

00:03:28.840 --> 00:03:32.479
like Hyperbole would do well as well to adopt it because it's

00:03:32.480 --> 00:03:36.799
starting to become a grammar of general UI at this point.

00:03:36.800 --> 00:03:40.839
Yeah, now when you mention it, I remember because I'm a heavy

00:03:40.840 --> 00:03:47.519
user of Magic, of course. So I know Transient that way. I know

00:03:47.520 --> 00:03:50.999
also that people have been complaining about Hyperbole's

00:03:51.000 --> 00:03:56.079
menu system. You know that Hyperbole reach back to

00:03:56.080 --> 00:04:02.639
something like 1993, so it has some maybe things that are not

00:04:02.640 --> 00:04:07.279
modern in that sense. So we have it on the plate to maybe look

00:04:07.280 --> 00:04:11.479
into these things and how we can sort of make things modern,

00:04:11.480 --> 00:04:16.279
etc. Sure, but it's completely fine to take your time. You

00:04:16.280 --> 00:04:19.359
don't necessarily have to follow the latest fads when it

00:04:19.360 --> 00:04:24.439
comes to completion engines or interactive engines like

00:04:24.440 --> 00:04:26.879
Transient is. I'm not actually sure how you would call

00:04:26.880 --> 00:04:31.519
Transient. Is this a UI maker, an interaction engine? I

00:04:31.520 --> 00:04:36.559
don't know. I'll need to ask Tarsius at some point. All

00:04:36.560 --> 00:04:41.439
right. Okay. Okay so let's move on to the questions. We've

00:04:41.440 --> 00:04:45.719
got a couple of them and for the Q&A we'll have about five

00:04:45.720 --> 00:04:49.199
minutes and 30 seconds until we got to lunch. So starting

00:04:49.200 --> 00:04:51.193
with the first question.

NOTE Q: How is the log buffer generated?

00:04:51.194 --> 00:04:52.679
How is the log buffer generated in

00:04:52.680 --> 00:04:56.719
your presentation? But it's a very quick answer to this.

00:04:56.720 --> 00:04:59.839
We recommend at EmacsConf that speakers use the

00:04:59.840 --> 00:05:02.679
interaction-log package, which allows you to have a

00:05:02.680 --> 00:05:07.879
slightly prettier lossage. Lossage being in Emacs how you

00:05:07.880 --> 00:05:10.359
call the comments that you've used. And so if you're

00:05:10.360 --> 00:05:12.439
interested in using this for your own presentation,

00:05:12.440 --> 00:05:17.519
interaction log, and you'll be able to find it fairly

00:05:17.520 --> 00:05:18.999
easily.

00:05:19.000 --> 00:05:21.050
Moving to the next question.

NOTE Q: So, the "select a thing" C-c RET is similar to expand-region? How does it behave in codes (functions, class, ...)

00:05:21.051 --> 00:05:23.651
So the selector thing C-c RET

00:05:23.652 --> 00:05:26.479
is similar to expand-region. How does it behave in

00:05:26.480 --> 00:05:31.999
codes i.e functions or class?

00:05:32.000 --> 00:05:45.319
Well I think it behaves exactly the same. I mean in the

00:05:45.320 --> 00:05:50.079
In any sort of buffer, it might depend on what

00:05:50.080 --> 00:05:54.679
constitutes a word, et cetera, and a sentence in the mood.

00:05:54.680 --> 00:06:00.799
That's how I would say it. Right.

00:06:00.800 --> 00:06:09.279
I'm just, in that sense, I'm just a user of the function. I

00:06:09.280 --> 00:06:12.359
haven't implemented it. I haven't tested it more than that.

00:06:12.360 --> 00:06:17.959
We can do this as a demo that you start with maybe select a

00:06:17.960 --> 00:06:21.999
small thing and by hitting it over and over again, you select

00:06:22.000 --> 00:06:26.399
more and more. Yeah, but it's completely fine sometimes to

00:06:26.400 --> 00:06:30.199
merely be a user of something, you know. It's easy. It's a

00:06:30.200 --> 00:06:33.079
testament to how amazing Emacs is because everything is

00:06:33.080 --> 00:06:35.759
written in Lisp in the background, that as soon as you start

00:06:35.760 --> 00:06:38.119
becoming a maintainer of something, you kind of expect it to

00:06:38.120 --> 00:06:40.639
just be able to understand everything else. And whilst it's

00:06:40.640 --> 00:06:43.919
technically true, the limiter here is the amount of time

00:06:43.920 --> 00:06:47.199
that you can invest looking at the definitions,

00:06:47.200 --> 00:06:50.359
understanding what they do, and sadly we don't have the time

00:06:50.360 --> 00:06:53.319
to do all of this. And especially with Hyperbole, which is

00:06:53.320 --> 00:06:55.959
obviously interacting with major modes in something that

00:06:55.960 --> 00:07:01.239
is more involved than Org mode, for instance. We do have

00:07:01.240 --> 00:07:05.879
another question. So, I know you Hyperbole devs are active

00:07:05.880 --> 00:07:08.919
and interested in sharing and interoperating with other

00:07:08.920 --> 00:07:09.971
Emacs tools.

NOTE Q: What is a recent tool that you find exciting to think about using in combination with Hyperbole, or would like to suggest using in combination with it?

00:07:09.972 --> 00:07:11.839
What is a recent tool that you find exciting to

00:07:11.840 --> 00:07:14.799
think about using in combination with Hyperbole or would

00:07:14.800 --> 00:07:21.599
like to suggest using in combination with it? Well, lately

00:07:21.600 --> 00:07:24.519
we've been focusing a lot of sort of trying to make Hyperbole

00:07:24.520 --> 00:07:29.639
work together with Org Mode and in in a good way so they can

00:07:29.640 --> 00:07:36.119
sort of, I mean... The idea with Hyperbole is not to be better

00:07:36.120 --> 00:07:40.119
than everything else, but more to be like the glue or spider

00:07:40.120 --> 00:07:46.349
that could integrate different modes in a good way together.

00:07:46.350 --> 00:07:51.359
So that being top of everything. And Org is a very

00:07:51.360 --> 00:07:55.559
popular mode, and there are a lot of sub-modes, or whatever

00:07:55.560 --> 00:07:59.519
you can call it, with Org for information management. And we

00:07:59.520 --> 00:08:03.119
would want Hyperbole to work together with Org in a good way,

00:08:03.120 --> 00:08:09.119
so Org users could benefit from Hyperbole as well. So we put

00:08:09.120 --> 00:08:13.319
in some effort in that. But I think there's a lot of way to go.

00:08:13.320 --> 00:08:17.319
There's much more that can be done there as well because

00:08:17.320 --> 00:08:21.559
different modes can easily compete in a bad way in the

00:08:21.560 --> 00:08:26.519
details. So it's a little bit of a tricky thing, especially

00:08:26.520 --> 00:08:32.839
like we have this and how probably we have this M-RET

00:08:32.840 --> 00:08:36.319
for the action production key and that's also used in many

00:08:36.320 --> 00:08:40.639
modes. So we would really, in the best of words, we would like

00:08:40.640 --> 00:08:46.388
Emacs to sort of come to some agreement on using of the

00:08:46.389 --> 00:08:52.759
M-RET in a good way for modes to sort of be able to work and

00:08:52.760 --> 00:08:58.119
live together. Yeah, I mean it's a tough thing to share the

00:08:58.120 --> 00:09:01.759
key bindings and the grammar of interaction between

00:09:01.760 --> 00:09:04.719
packages because you tell me M-RET, I don't want you

00:09:04.720 --> 00:09:07.759
to touch M-RET. For me it's just inserting a new line

00:09:07.760 --> 00:09:10.639
and not adding indentation at the start and everyone is

00:09:10.640 --> 00:09:14.639
going to have their own you know, feelings and thoughts about

00:09:14.640 --> 00:09:17.959
this, so it's really hard to impose any kind of system on

00:09:17.960 --> 00:09:20.559
this. But I'm glad to hear that you're looking into

00:09:20.560 --> 00:09:23.239
interaction with Org Mode because I remember the questions

00:09:23.240 --> 00:09:26.359
we were having on your first conference when people were

00:09:26.360 --> 00:09:28.959
asking, oh I'm so glad that you're talking about Hyperbole

00:09:28.960 --> 00:09:31.719
because the only way I'm interacting with it is when people

00:09:31.720 --> 00:09:35.599
chat about Org Mode and then whenever we had announcements

00:09:35.600 --> 00:09:39.039
about Hyperbole, be it on Reddit, be it on Hacker News,

00:09:39.040 --> 00:09:41.999
people would say, but don't we already have Org Mode? And we

00:09:42.000 --> 00:09:44.879
won't get into the topic again, because I think you've done a

00:09:44.880 --> 00:09:47.279
wonderful job of explaining the differences in previous

00:09:47.280 --> 00:09:51.359
years. And today, the conference, your talk at the

00:09:51.360 --> 00:09:54.199
conference also made it obvious that it's doing something

00:09:54.200 --> 00:09:58.039
that Org Mode is not able to do. But ultimately, being able to

00:09:58.040 --> 00:10:00.254
interface between the two is something great.

NOTE On Ihor as the new maintainer for Org Mode

00:10:00.255 --> 00:10:02.676
And I kind of wanted to ask you as well the question,

00:10:02.677 --> 00:10:04.719
because you haven't

00:10:04.720 --> 00:10:10.199
seen the talk, but yesterday we had the announcement that

00:10:10.200 --> 00:10:13.879
Ihor Radchenko was becoming the new maintainer of Org Mode.

00:10:13.880 --> 00:10:18.799
So obviously, a new maintainer introduces idea of changes

00:10:18.800 --> 00:10:23.719
of, you know, philosophy and strategy and all this. Is this

00:10:23.720 --> 00:10:28.199
somehow on your end with Hyperbole inspiring you perhaps to

00:10:28.200 --> 00:10:31.999
also innovate in a sense to maybe try to change the way some

00:10:32.000 --> 00:10:32.559
things are done?

00:10:32.560 --> 00:10:45.239
Hmm, tricky question. I know, right? Yeah, no, well, I don't

00:10:45.240 --> 00:10:46.159
know.

00:10:46.160 --> 00:10:52.799
I don't know if it answers the question, but we have this

00:10:52.800 --> 00:11:02.919
idea that we meet and work from our point of view. And then we

00:11:02.920 --> 00:11:07.679
pick up maybe details from the outside world. So we're not

00:11:07.680 --> 00:11:13.079
heavily looking into what happens in the rest of the world

00:11:13.080 --> 00:11:17.239
when it comes to Emacs and personal information

00:11:17.240 --> 00:11:21.159
management, etc. But but we do pick up some ideas.

00:11:21.160 --> 00:11:26.719
Sometimes. But yeah, we mostly do hacking and then we want to

00:11:26.720 --> 00:11:31.639
we meet once a week and work on hyperbole and you know, so

00:11:31.640 --> 00:11:35.599
Yeah, that's already very cool. And the reason I'm

00:11:35.600 --> 00:11:38.799
mentioning this is not because I know that you are operating

00:11:38.800 --> 00:11:42.079
in a little bit of a silo when it comes to all of Hyperbole, but

00:11:42.080 --> 00:11:45.399
it's always nice for me personally to see a lot of energy

00:11:45.400 --> 00:11:49.039
being brought in by people. Whenever there's a new major

00:11:49.040 --> 00:11:52.919
version being published, be it Org Mode or be it Hyperbole,

00:11:52.920 --> 00:11:55.519
people are excited. There's a lot of energy in here because

00:11:55.520 --> 00:11:58.039
people are chatting about what you're doing. And that's why

00:11:58.040 --> 00:12:02.399
I find that people, a new maintenanceship for Org Mode

00:12:02.400 --> 00:12:05.199
actually benefits Hyperbole in a way because you get a lot of

00:12:05.200 --> 00:12:07.559
excitement, a lot of people thinking and bringing ideas to

00:12:07.560 --> 00:12:12.279
the table. And I think it's a prime time to actually try I'm

00:12:12.280 --> 00:12:14.599
using the word stealing, but in a very nice way, stealing in

00:12:14.600 --> 00:12:17.519
terms of floss, stealing some ideas and trying to see if you

00:12:17.520 --> 00:12:21.199
can run with them on your own end. And that's also why I was

00:12:21.200 --> 00:12:24.479
suggesting transient, because transient looks like it's

00:12:24.480 --> 00:12:28.759
on its path to reach core at some point. And it would be nice if

00:12:28.760 --> 00:12:31.479
you had the idea early on to integrate with it, because it

00:12:31.480 --> 00:12:34.319
might save you time later on and make your user happy,

00:12:34.320 --> 00:12:37.319
because they can find the same grammar between the Git,

00:12:37.320 --> 00:12:41.639
between org mode, and between hyperbole. All right. Is

00:12:41.640 --> 00:12:46.439
there... I don't think... Yeah, go on, please. Yeah, I just

00:12:46.440 --> 00:12:49.879
want to add on that, that, I mean, as an ultimate goal, in the

00:12:49.880 --> 00:12:56.679
far distance, we would want sort of Hyperbole or hyperbole

00:12:56.680 --> 00:13:00.399
type of functionality be part of the core Emacs. So in that

00:13:00.400 --> 00:13:06.839
sense, it's sort of totally sort of okay with us that

00:13:06.840 --> 00:13:10.599
different packages steal ideas and try to merge them into

00:13:10.600 --> 00:13:16.359
sort of the core system. Yeah. All right, I don't see any more

00:13:16.360 --> 00:13:19.279
questions, so I think we can move to close. Actually, we're

00:13:19.280 --> 00:13:22.439
actually three minutes over time, so I'm glad we managed to

00:13:22.440 --> 00:13:24.759
discuss a little more, but that's fine. Mats, do you have

00:13:24.760 --> 00:13:31.519
any last words? I'll try it out. Okay, well, then, you heard

00:13:31.520 --> 00:13:35.479
it, everyone. Just try it out. Try it out, and if you like it,

00:13:35.480 --> 00:13:37.239
you can join us on Sundays

00:13:37.240 --> 00:13:41.959
Right. And every Sunday, well, if you do not know what to do,

00:13:41.960 --> 00:13:44.919
you know, here's an idea for you. All right. Thank you so

00:13:44.920 --> 00:13:47.079
much, Mats, for coming again to Emacs Conf. And we look

00:13:47.080 --> 00:13:50.319
forward, perhaps, to seeing you next year. Yes. I'll be

00:13:50.320 --> 00:13:55.119
there. Hopefully, I can see some of the presentations live

00:13:55.120 --> 00:13:58.399
then. OK. That's OK. You've got the entire year to catch up on

00:13:58.400 --> 00:14:01.159
the ones you haven't seen this year and next year. But you'll

00:14:01.160 --> 00:14:04.359
have the time to catch another one live. All right. Yes.

00:14:04.360 --> 00:14:09.519
Great! For the folks watching, we will be taking a break, a

00:14:09.520 --> 00:14:14.039
one hour and one minute break. We'll be back at 1 p.m. EST and I

00:14:14.040 --> 00:14:21.479
think if my UTC conversion is working right, it should be 6

00:14:21.480 --> 00:14:24.679
p.m. UTC, so at least in one hour. All right, see you in a bit

00:14:24.680 --> 00:14:30.159
folks! Oh yes, and sorry, I've got a little elf speaking

00:14:30.160 --> 00:14:32.999
in my ears. In case you're interested in discussing further

00:14:33.000 --> 00:14:35.999
hyperbole with Mats, Mats is in the room right now and I see

00:14:36.000 --> 00:14:39.919
people have joined the BBB chat. So if you want to join and

00:14:39.920 --> 00:14:42.439
chat directly with Mats, I'm sure Mats would be more than

00:14:42.440 --> 00:14:44.999
happy to answer your questions. And obviously everything

00:14:45.000 --> 00:14:48.239
has been recorded and will be published later on. But for me,

00:14:48.240 --> 00:14:54.119
I will use the break to rest a little bit and I'll be back in the

00:14:54.120 --> 00:14:59.039
afternoon. All right, see you folks. Bye, take a break.

00:14:59.040 --> 00:15:03.160
Okay.