all repos — site @ 83ccd859a3013a51e44803f28389c9eb921fee67

source for my site, found at icyphox.sh

pages/blog/irc-for-dms.md (view raw)

 1---
 2template:
 3title: IRC for DMs
 4subtitle: Honestly, it's pretty great
 5date: 2019-11-03
 6---
 7
 8[Nerdy](https://nerdypepper.me) and I decided to try and use IRC for our
 9daily communications, as opposed to non-free alternatives like WhatsApp
10or Telegram. This is an account of how that went.
11
12### The status quo of instant messaging apps
13
14I've tried a _ton_ of messaging applications -- Signal, WhatsApp,
15Telegram, Wire, Jami (Ring), Matrix, Slack, Discord and more recently, DeltaChat.
16
17**Signal**: It straight up sucks on Android. Not to mention the
18centralzied architecture, and OWS's refusal to federate.
19
20**WhatsApp**: Facebook's spyware that people use without a second
21thought. The sole reason I have it installed is for University's
22class groups; I can't wait to graduate.
23
24**Telegram**: Centralized architecture and a closed-source server. It's
25got a very nice Android client, though.
26
27**Jami**: Distributed platform, free software. I am not going to comment
28on this because I don't recall what my experience was like, but I'm not
29using it now... so if that's indicative of anything.
30
31**Matrix (Riot)**: Distributed network. Multiple client implementations.
32Overall, pretty great, but it's slow. I've had messages not send / not
33received a lot of times. Matrix + Riot excels in group communication, but
34really sucks for one-to-one chats.
35
36**Slack** / **Discord**: _sigh_
37
38**DeltaChat**: Pretty interesting idea -- on paper. Using existing email
39infrastructure for IM sounds great, but it isn't all that cash in
40practice. Email isn't instant, there's always a delay of give or take
415 to 10 seconds, if not more. This affects the flow of conversation.
42I might write a small blog post later, revewing DeltaChat.[^deltachat]
43
44### Why IRC?
45
46It's free, in all senses of the word. A lot of others have done a great
47job of answering this question in further detail, this is by far my
48favourite:
49
50<a href="https://drewdevault.com/2019/07/01/Absence-of-features-in-IRC.html">https://drewdevault.com/2019/07/01/Absence-of-features-in-IRC.html</a>
51
52### Using IRC's private messages
53 
54This was the next obvious choice, but personal message buffers don't
55persist in ZNC and it's very annoying to have to do a `/query
56nerdypepper` (Weechat) or to search and message a user via Revolution
57IRC. The only unexplored option -- using a channel.
58
59### Setting up a channel for DMs
60
61A fairly easy process:
62
63* Set modes (on Rizon)[^modes]:
64
65    ```
66    #crimson [+ilnpstz 3]
67    ```
68    In essence, this limits the users to 3 (one bot), sets the channel to invite only,
69hides the channel from `/whois` and `/list`, and a few other misc.
70modes.
71
72* Notifications: Also a trivial task; a quick modification to [lnotify.py](https://weechat.org/scripts/source/lnotify.py.html/)
73to send a notification for all messages in the specified buffer
74(`#crimson`) did the trick for Weechat. Revolution IRC, on the other
75hand, has an option to setup rules for notifications -- super
76convenient.
77
78* A bot: Lastly, a bot for a few small tasks -- fetching URL titles, responding
79to `.np` (now playing) etc. Writing an IRC bot is dead simple, and it
80took me about an hour or two to get most of the basic functionality in
81place. The source is [here](https://github.com/icyphox/detotated).
82It is by no means "good code"; it breaks spectacularly from time to
83time.
84
85### In conclusion
86
87As the subtitle suggests, using IRC has been great. It's probably not
88for everyone though, but it fits my (and Nerdy's) usecase perfectly.
89
90P.S.: _I'm not sure why the footnotes are reversed._
91
92[^modes]: Channel modes on [Rizon](https://wiki.rizon.net/index.php?title=Channel_Modes).
93[^deltachat]: It's in [queue](https://github.com/icyphox/site/issues/10).