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.