summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-telega--telega-el-and-the-emacs-community-on-telegram--gabriele-bozolla--main.vtt
blob: 0a977036c23dbb931002a9ccf59ebc2da0217154 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
WEBVTT

00:00.000 --> 00:01.599
Hello, my name is Gabriele,

00:01.599 --> 00:03.439
and today I'm going to tell you about Telega

00:03.439 --> 00:05.600
and the Emacs community on Telegram.

00:05.600 --> 00:08.400
I'm not affiliated with Telegram or Telega,

00:08.400 --> 00:10.719
and opinions are my own in general.

00:10.719 --> 00:14.160
I'm going to give you my personal spin about these topics.

00:14.160 --> 00:16.160
The plan for the talk is the following.

00:16.160 --> 00:18.800
First, I'm going to talk about what is Telegram.

00:18.800 --> 00:19.840
Next, I'm going to tell you

00:19.840 --> 00:21.840
about the Emacs community on Telegram.

00:21.840 --> 00:24.720
And finally, I'm going to discuss telega.el,

00:24.720 --> 00:26.560
an Emacs package for Telegram.

00:26.560 --> 00:29.359
In all of these, I'm now going to dive into details.

00:29.359 --> 00:30.880
My goal here is to give you

00:30.880 --> 00:33.120
some exposure about these topics.

00:33.120 --> 00:35.840
You can find out more online, if you want.

00:35.840 --> 00:38.960
Let's get started with what is
Telegram.

00:38.960 --> 00:41.100
Telegram is a cloud-based

00:41.100 --> 00:42.879
instant messaging platform.

00:42.879 --> 00:44.079
It's a popular one.

00:44.079 --> 00:46.559
It has more than half a billion users.

00:46.559 --> 00:47.840
I think one of the reasons

00:47.840 --> 00:49.600
why it's so popular, it's because

00:49.600 --> 00:51.360
it's really rich in features

00:51.360 --> 00:52.960
while being user friendly.

00:52.960 --> 00:54.640
Hence, in some regions,

00:54.640 --> 00:56.960
Telegram has good market penetration.

00:56.960 --> 00:59.039
And of course, because of network effects,

00:59.039 --> 01:01.120
this brings even more users.

01:01.120 --> 01:02.239
The details of the features

01:02.239 --> 01:03.680
is not particularly important.

01:03.680 --> 01:04.879
What I want to emphasize, though,

01:04.879 --> 01:08.400
is that while Telegram is mostly text-based,

01:08.400 --> 01:12.000
there's also support for audio/video calls and notes,

01:12.000 --> 01:13.600
and there's also a lot of features

01:13.600 --> 01:15.119
which typically you find

01:15.119 --> 01:17.360
in other instant messaging platforms:

01:17.360 --> 01:18.479
you can chat with yourself,

01:18.479 --> 01:19.360
you can make polls,

01:19.360 --> 01:20.159
you can make quizzes,

01:20.159 --> 01:21.280
you can schedule messages,

01:21.280 --> 01:23.280
you can send attachments of any kind,

01:23.280 --> 01:25.759
even big ones, and you can send stickers.

01:25.759 --> 01:27.759
Telegram, overall, is quite customizable,

01:27.759 --> 01:30.560
and I would say that the platform is, overall, hackable.

01:30.560 --> 01:32.799
You can expand it with bots

01:32.799 --> 01:35.280
and the clients are open source.

01:35.280 --> 01:37.280
In all of this, we shouldn't forget, though,

01:37.280 --> 01:38.448
the Telegram is centralized

01:38.448 --> 01:39.840
and it is not free software.

01:39.840 --> 01:42.720
Nonetheless, it's still used by a number of people,

01:42.720 --> 01:45.200
and people use Telegram for different reasons.

01:45.200 --> 01:47.200
For example, some people use it to stay in touch

01:47.200 --> 01:48.399
with friends and families.

01:48.399 --> 01:50.560
For this, Telegram offers private chats

01:50.560 --> 01:53.600
or group chats with a restricted number of people.

01:53.600 --> 01:55.040
A lot of people use it

01:55.040 --> 01:57.600
for engaging in online communities.

01:57.600 --> 01:59.439
For this, Telegram has super groups,

01:59.439 --> 02:00.719
which are groups with up to

02:00.719 --> 02:02.159
hundreds of thousands of users,

02:02.159 --> 02:03.360
and has also channels,

02:03.360 --> 02:07.119
which are one-to-many ways of communicating,

02:07.119 --> 02:09.280
so these are ideally suited for,

02:09.280 --> 02:10.959
for example, following news,

02:10.959 --> 02:12.167
all sorts of news.

02:12.167 --> 02:13.680
Telegram also has bots

02:13.680 --> 02:15.840
which can be useful by themselves.

02:15.840 --> 02:17.040
They provide value.

02:17.040 --> 02:18.400
And the chat with oneself

02:18.400 --> 02:20.400
can be used for sending links,

02:20.400 --> 02:23.440
making notes, or sending reminders.

02:23.440 --> 02:24.959
So overall, there's multiple ways

02:24.959 --> 02:26.560
in which you can use Telegram.

02:26.560 --> 02:28.239
When it comes to instant messaging,

02:28.239 --> 02:30.000
many people call Telegram home.

02:30.000 --> 02:31.840
It shouldn't come as a surprise, then,

02:31.840 --> 02:34.480
that Emacs users want to meet

02:34.480 --> 02:35.680
on Telegram as well.

02:35.680 --> 02:38.480
And indeed, there's an Emacs community on Telegram.

02:38.480 --> 02:41.519
Here I'm listing a few super groups
about Emacs.

02:41.519 --> 02:43.040
There are language groups,

02:43.040 --> 02:45.599
so there's Emacs English, Emacs Russian,

02:45.599 --> 02:48.800
Emacs Spanish, Emacs Mandarin, Portuguese...

02:48.800 --> 02:51.440
There are groups which are specific to starter packs.

02:51.440 --> 02:53.040
For example, there are Doom Emacs,

02:53.040 --> 02:54.879
Spacemacs, and there are groups

02:54.879 --> 02:57.280
which are specific to packages like telega

02:57.280 --> 02:58.720
which I'm going to discuss later.

02:58.720 --> 03:00.159
These are what you would expect

03:00.159 --> 03:02.800
from traditional internet chat rooms.

03:02.800 --> 03:04.319
So they're used for shared links,

03:04.319 --> 03:06.959
they're used for discussing, troubleshooting,

03:06.959 --> 03:09.120
giving each other recommendations...

03:09.120 --> 03:10.879
I think there are healthy communities

03:10.879 --> 03:12.239
with typically a hundred

03:12.239 --> 03:13.519
to a thousand members.

03:13.519 --> 03:15.280
An example of an initiative that's put forth

03:15.280 --> 03:16.879
by the Emacs community on Telegram

03:16.879 --> 03:18.720
is @emacs_stories. @emacs_stories

03:18.720 --> 03:21.680
collects links and messages and pictures

03:21.680 --> 03:24.080
that can showcase what Emacs can do.

03:24.080 --> 03:25.680
One of the goals here is

03:25.680 --> 03:28.239
to show people that are new to emacs

03:28.239 --> 03:29.120
what you can achieve

03:29.120 --> 03:31.200
if you spend time with your editor.

03:31.200 --> 03:32.480
And here, what I'm showing you

03:32.480 --> 03:34.159
is a screenshot from Telega.

03:34.159 --> 03:36.080
So let's move on to the final topic

03:36.080 --> 03:37.040
of this discussion,

03:37.040 --> 03:39.200
which is telega.el.

03:39.200 --> 03:41.440
Telega is a terrific piece of software.

03:41.440 --> 03:45.280
Telega is a interface to telegram within Emacs.

03:45.280 --> 03:46.959
It's developed by @zevlg,

03:46.959 --> 03:49.680
which is a long-time Emacs hacker,

03:49.680 --> 03:51.280
and it's very actively developed.

03:51.280 --> 03:54.000
Telegram itself is under active development,

03:54.000 --> 03:55.840
and telega has to implement

03:55.840 --> 03:57.200
all these new features

03:57.200 --> 03:58.720
that Telegram implements.

03:58.720 --> 04:00.400
Indeed, Telega implements

04:00.400 --> 04:01.360
almost all the features

04:01.360 --> 04:02.319
available in Telegram,

04:02.319 --> 04:04.159
even things like live location,

04:04.159 --> 04:05.439
except for audio/video calls

04:05.439 --> 04:07.040
but these are work in progress.

04:07.040 --> 04:08.000
Just to give you an idea

04:08.000 --> 04:09.040
of the size of this effort,

04:09.040 --> 04:09.680
we're talking about

04:09.680 --> 04:11.280
30,000 lines of code,

04:11.280 --> 04:12.720
which doesn't tell you much,

04:12.720 --> 04:14.080
but maybe you can get a sense

04:14.080 --> 04:16.000
that this is a significant project.

04:16.000 --> 04:18.400
In fact, I think Telega is a really remarkable

04:18.400 --> 04:19.199
piece of software.

04:19.199 --> 04:20.639
Not only it implements all the features

04:20.639 --> 04:21.680
available in Telegram,

04:21.680 --> 04:22.960
but implements new ones,

04:22.960 --> 04:25.120
which are only available to Emacs users.

04:25.120 --> 04:26.800
Here I'm blinking the documentation

04:26.800 --> 04:28.560
for you to read if you're interested.

04:28.560 --> 04:29.759
What I want to mention, though,

04:29.759 --> 04:31.360
is that Telega is available on MELPA,

04:31.360 --> 04:34.160
but it requires an external library, TDlib.

04:34.160 --> 04:35.759
Most distributions do not pack

04:35.759 --> 04:37.360
a recent version of TDlib.

04:37.360 --> 04:39.600
Such you have to compile yourself.

04:39.600 --> 04:41.280
if you don't want to compile TDlib,

04:41.280 --> 04:43.120
you can use the officially supported

04:43.120 --> 04:44.560
Dockerfile or guix file

04:44.560 --> 04:46.080
so that you can get everything

04:46.080 --> 04:48.000
without too much worry.

04:48.000 --> 04:50.720
Now let me tell you more about Telegram.

04:50.720 --> 04:52.080
Of course, the best way is to just

04:52.080 --> 04:53.520
experiment with it yourself.

04:53.520 --> 04:54.800
And here I just want to give you

04:54.800 --> 04:56.720
a glimpse of how Telega works.

04:56.720 --> 04:57.840
When you start Telega,

04:57.840 --> 05:00.000
what you see is a root buffer.

05:00.000 --> 05:01.280
The root buffer is essentially

05:01.280 --> 05:02.960
the list of all the chats that you have,

05:02.960 --> 05:05.199
and, by itself, is a really powerful tool.

05:05.199 --> 05:06.639
You can use it for sorting

05:06.639 --> 05:07.680
and filtering your chats,

05:07.680 --> 05:10.639
or you can create groups which are thematic.

05:10.639 --> 05:12.720
There's sophisticated search functions.

05:12.720 --> 05:14.240
For example, if you want to search only

05:14.240 --> 05:16.800
for specific type of media,

05:16.800 --> 05:18.240
you can start new chats,

05:18.240 --> 05:19.680
you can get info about the chats,

05:19.680 --> 05:22.479
and you can even change Telegram settings

05:22.479 --> 05:24.720
which are applied across the board.

05:24.720 --> 05:26.479
Here I'm showing you an example

05:26.479 --> 05:27.520
of what it looks like.

05:27.520 --> 05:30.720
As you see, we're enjoying the support for emoji

05:30.720 --> 05:33.039
that Emacs has been improving upon

05:33.039 --> 05:34.320
over the past years.

05:34.320 --> 05:36.400
Once you select one of these charts,

05:36.400 --> 05:38.880
you're brought to the chat buffer.

05:38.880 --> 05:40.400
Here I'm showing an example of

05:40.400 --> 05:42.320
what a chat buffer looks like.

05:42.320 --> 05:43.360
So this is a screenshot

05:43.360 --> 05:45.520
from the Emacs English group

05:45.520 --> 05:47.840
where people were discussing about

05:47.840 --> 05:49.039
compiling Emacs.

05:49.039 --> 05:52.000
As you can see, we see the conversation.

05:52.000 --> 05:53.280
We see the avatars.

05:53.280 --> 05:54.639
We see that there's a thread.

05:54.639 --> 05:55.440
We also see that

05:55.440 --> 05:57.360
I'm going to send a message,

05:57.360 --> 05:58.240
message with emoji,

05:58.240 --> 05:59.440
a message with formatting,

05:59.440 --> 06:01.120
and I'm attaching an object.

06:01.120 --> 06:03.680
I can format my messages

06:03.680 --> 06:05.520
using Markdown or Org Mode

06:05.520 --> 06:06.720
or whatever I prefer

06:06.720 --> 06:09.199
and I can attach any kind of attachment

06:09.199 --> 06:10.560
I like. For example...

06:10.560 --> 06:11.520
What I can also do is,

06:11.520 --> 06:13.120
if I'm editing a buffer,

06:13.120 --> 06:15.680
I can send that buffer through Telega,

06:15.680 --> 06:17.199
which I find quite useful

06:17.199 --> 06:18.720
especially when I'm sending code.

06:18.720 --> 06:20.240
And again, just to show you that

06:20.240 --> 06:22.319
Telegram is not just text messages

06:22.319 --> 06:25.199
and Telega supports all the features in Telegram,

06:25.199 --> 06:27.199
here at the bottom, I'm showing

06:27.199 --> 06:29.759
a voice note being played through Emacs,

06:29.759 --> 06:31.919
and as you see, there are some buttons

06:31.919 --> 06:33.199
which are functional.

06:33.199 --> 06:36.240
If I hit the two times button,

06:36.240 --> 06:38.160
the playback speed will be twice,

06:38.160 --> 06:39.600
which is really neat.

06:39.600 --> 06:40.800
Telega and Emacs can even

06:40.800 --> 06:43.039
reproduce videos or gifs,

06:43.039 --> 06:45.280
at least for a recent version of Emacs.

06:45.280 --> 06:47.520
Finally, I want to emphasize that Telega

06:47.520 --> 06:49.280
integrates really well with Emacs.

06:49.280 --> 06:51.039
For example, we are showing you

06:51.039 --> 06:54.319
how you can use a transient interface

06:54.319 --> 06:56.720
to Telega, or on the other side,

06:56.720 --> 06:59.280
I'm showing you how Telega integrates

06:59.280 --> 07:00.080
with dashboard,

07:00.080 --> 07:01.440
so that we have recent chats

07:01.440 --> 07:03.120
and we have the Emacs stories.

07:03.120 --> 07:03.840
Because, you know,

07:03.840 --> 07:05.759
who doesn't like Emacs with stories.

07:05.759 --> 07:06.880
On top, on the other hand,

07:06.880 --> 07:08.880
I'm showing you that we can have

07:08.880 --> 07:09.919
syntax highlighting,

07:09.919 --> 07:11.759
which is something that Telegram by itself

07:11.759 --> 07:14.240
doesn't have, this Emacs-only feature,

07:14.240 --> 07:15.919
and we can edit this

07:15.919 --> 07:17.599
in the same way we edit

07:17.599 --> 07:19.759
Org Mode source blocks,

07:19.759 --> 07:20.880
so we can edit this

07:20.880 --> 07:22.800
with the minor mode for,

07:22.800 --> 07:24.080
in this case, Emacs Lisp.

07:24.080 --> 07:26.240
So, to conclude, I wanted to show you

07:26.240 --> 07:27.759
that the Emacs community

07:27.759 --> 07:29.120
also meets on Telegram,

07:29.120 --> 07:31.360
and we're an active and healthy community,

07:31.360 --> 07:32.880
and I want to present Telega

07:32.880 --> 07:35.759
as a really amazing piece of software,

07:35.759 --> 07:37.919
one of the best clients available for

07:37.919 --> 07:39.599
Telegram with Emacs.

07:39.599 --> 07:41.680
Even if you don't use Telegram,

07:41.680 --> 07:43.599
I think you should have a look at Telega

07:43.599 --> 07:46.080
just to appreciate how amazing

07:46.080 --> 07:47.280
a piece of software it is.

07:47.280 --> 07:49.680
And with this, I thank you for your attention,

07:49.680 --> 07:50.960
and if you like Telega,

07:50.960 --> 07:52.720
please consider donating

07:52.720 --> 07:54.800
to support the development of the package.

07:54.800 --> 07:57.599
Thanks.