all repos — site @ d6942c6a52297c3461473479976c0edec7f5a5d7

source for my site, found at icyphox.sh

pages/txt/irc-for-dms (view raw)

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