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.