Newsfeedurn:newsfeed:17660828502025-12-18T18:34:10ZSeninha's Personal Chatting Workflowhttps://seninha.org/notes/chat.txt2025-01-10T00:00:00Z Seninha's Personal Chatting Workflow
2025-01-10
§ SYNOPSIS
{
net/bitlbee
net/bitlbee-mastodon
net/telethon (not packaged on OpenBSD)
net/irgramd (not packaged on OpenBSD)
}
§ DESCRIPTION
I use irc, telegram, mastodon and whatsapp services for instant
messaging. All those services (but IRC itself) are proxied to IRC.
I use all those services through the Hexchat IRC client. Using a single
software for all chatting needs is better than relying on multiple
programs, as explained below at «§ RATIONALE». Hexchat's interface (and
the interface of most IRC clients in general) is also less harmful than
alternatives for the other services.
Telegram™ is proxied to IRC by irgramd. Irgramd is a Python3 software
which works as both a IRC server and a telegram client (via the telethon
python library).
(I use Telegram mostly to talk with friends.)
Mastodon/fediverse is proxied to IRC by bitlbee with the bitlbe-mastodon
plugin. Bitlbee works as a IRC server and supports plugins that act as
clients for different instant messaging services.
(I use fediverse mostly to talk with friendly strangers.)
Both proxy servers run on a virtual machine, for safety.
FIGURE: My current instant messaging setup.
┌──────────────────────────────────────────────────────────────────────┐
│ ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷ │
│ ╵ Seninha's Personal Computer ╷ │
│ ╵ ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷ ╷ │
│ ╵ ╵ Virtual Machine ╷ ╷ │
│ ╵ ╵ ┌──────────────────────┐ ╷ ╷ │
│ ╵ ╵ │ irgramd (IRC server) │ ╷ ╷ │
│ ╶╶╶╶╶╶╶╶╶╶╶╶╷ ╵ ╵ │ ┌──────────────────┐ ├──────────────┐ ╷ │
│ ╵ Telegram ╷──────►│ │ telethon │ │ ╷ │ ╷ │
│ ╵╴╴╴╴╴╴╴╴╴╴╴╴ ╵ ╵ │ │ (python library) │ │ ╷ │ ╷ │
│ ╵ ╵ │ └──────────────────┘ │ ╷ │ ╷ │
│ ╵ ╵ └───────────┬──────────┘ ╷ ⮟ ╷ │
│ ╵ ╵ ⮟ ╷ ┌─────────────┐ ╷ │
│ ╵ ╵ ┌──────────────────────┐ ╷ │ Hexchat │ ╷ │
│ ╵ ╵ │ httpd (web server) │ ╷ │ IRC client │ ╷ │
│ ╵ ╵ └──────────────────────┘ ╷ └─────────────┘ ╷ │
│ ╵ ╵ ┌──────────────────────┐ ╷ ⮝ ⮝ ╷ │
│ ╵ ╵ │ Bitlbee (IRC server) │ ╷ │ │ ╷ │
│ ╶╶╶╶╶╶╶╶╶╶╶╶╷ ╵ ╵ │ ┌──────────────────┐ │ ╷ │ │ ╷ │
│ ╵ Fediverse ╷──────►│ │ bitlbee-mastodon │ │ ╷ │ │ ╷ │
│ ╵╴╴╴╴╴╴╴╴╴╴╴╴ ╵ ╵ │ │ (bitlbee plugin) │ ├─────────┘ │ ╷ │
│ ╵ ╵ │ └──────────────────┘ │ ╷ │ ╷ │
│ ╵ ╵ └──────────────────────┘ ╷ │ ╷ │
│ ╵ ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴ │ ╷ │
│ ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴ │
│ ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷ │ │
│ ╵ IRC networks ╷───────────────────────────────────────────────┘ │
│ ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴ │
└──────────────────────────────────────────────────────────────────────┘
Irgramd is unstable and under active development, but is usable to my
needs. Configuring it requires getting a Telegram API id and hash pair.
I use my own fork of irgramd (soon to be released) with the following
differences:
• Automatically display message backlog when joining channels
(configurable, disabled by default).
• Automatic mark messages as read.
• Option for disabling displaying message reactions on IRC.
• Asynchronous file uploading and history load on a background task, so
server do not get unresponsive while doing time-consuming operations.
• Chat operations done at TelegramServ can now be done directly on channel.
• Use only letters and digits for message IDs.
• Also mark mentions as read when marking messages as read.
• Fix several uncatched exceptions.
For the telegram proxy, i also set up a web server to access cached
media (sent by Telegram users) from outside the virtual machine. And i
also set a cronjob to remove old cached media (otherwise my VM's disk
get full). Both of those are optional, but useful.
CODE: cleaner cronjob {
@hourly -ns /usr/bin/find /var/www/htdocs/tg -mtime +1 -delete
}
§ RATIONALE
Using a different program for each service imposes the common annoyances
of interacting with various softwares for the same thing: write different
configurations and swap interaction between incompatible interfaces.
Also (for the nature of instant messaging) that disperses attention
through different sources of information, by having several places to
look at for messages.
Also, the interface of most of those programs induces addiction by
imposing constant interaction (mostly scrolling). The following design
patterns are harmful:
• Large message “bubbles”: makes less information visible at once.
• Automatic media playing: increases interaction time (watch/scroll).
• Infinite scroll: induces doomscroll and wasted time.
FIGURE: Imagine scrolling half a screenful to skip a low-effort shitpost…
┌──────────────────────────────────────────────────────────────────────┐
│ ╭────────────────────────────────────────╮ │
│ │ Bob said: │ │
│ │ Does that game run on Linux? │ │
│ ╰────────────────────────────────────────╯ │
│ ╭────────────────────────────────────────╮ │
│ │ Alice said: │ │
│ │ DO NOT INVOKE HIM! │ │
│ ╰────────────────────────────────────────╯ │
│ ╭──────────────────────────────────────────╮ │
│ │ I'd just like to interject for a moment. │ │
│ │ What you're referring to as Linux, is in │ │
│ │ fact, GNU/Linux, or as I've recently │ │
│ │ taken to calling it, GNU plus Linux. │ │
│ │ │ │
│ │ Linux is not an operating system unto │ │
│ │ itself, but rather another free │ │
│ │ component of a fully functioning GNU │ │
│ │ system made useful by the GNU corelibs, │ │
│ │ shell utilities and vital system │ │
│ │ components comprising a full OS as │ │
│ │ defined by POSIX. │ │
│ ╰──────────────────────────────────────────╯ │
│ ╭────────────────────────────────────────╮ │
│ │ Alice said: │ │
│ │ SEE WHAT YOU DID?? │ │
│ ╰────────────────────────────────────────╯ │
│ ╭──────────────────────────────────────────╮ │
│ │ @@@@@@ @ │ │
│ │ @@@@ @@ │ │
│ │ @@@@ = = @@ │ │
│ │ @@@ @ _ _ @@ │ │
│ │ @@@ @(0)|(0) @@ │ │
│ │ @@@@ ~ | ~ @@ │ │
│ │ @@@ @ (o1o) @@ │ │
│ │ @@@ ####### @ │ │
│ │ @@@ ##{+++}## @@ │ │
│ │ @@@@@ ## ##### ## @@@@ │ │
│ │ @@@@@#############@@@@ │ │
│ │ @@@@@@@###########@@@@@@ │ │
│ │ @@@@@@@#############@@@@@ │ │
│ │ @@@@@@@### ## ### ###@@@@ │ │
│ │ @ @ @ @ @ │ │
│ │ @ @ │ │
│ ╰──────────────────────────────────────────╯ │
│ ╭────────────────────────────────────────╮ │
│ │ Bob said: │ │
│ │ What? │ │
│ ╰────────────────────────────────────────╯ │
│ ╭────────────────────────────────────────╮ │
│ │ * seninha was banned * │ │
│ ╰────────────────────────────────────────╯ │
└──────────────────────────────────────────────────────────────────────┘
I fixed those issues by using a single unified instant messaging
software which speaks several protocols and connects to different
services, and whose interface has larger information density (ie'
more text visible at once) with limited backlog (ie' finite scroll).
FIGURE: I have this instead:
┌──────────────────────────────────────────────────────────────────────┐
│ Bob: Does that game work on Linux? │
│ Alice: DO NOT INVOKE HIM! │
│ Seninha: I'd just like to interject for a moment. What you're │
│ referring to as Linux, is in fact, GNU/Linux, or as I've │
│ recently taken to calling it, GNU plus Linux. │
│ Seninha: Linux is not an operating system unto itself, but rather │
│ another free component of a fully functioning GNU system │
│ made useful by the GNU corelibs, shell utilities and vital │
│ system components comprising a full OS as defined by POSIX.│
│ Alice: SEE WHAT YOU DID?? │
│ Seninha: <https://example.com/cache/rms.png> │
│ Bob: What? │
│ * seninha was banned * │
└──────────────────────────────────────────────────────────────────────┘
§ HISTORY
Previously, i used four different softwares which, when combined,
provides access to telegram from irc:
• bitlbee, a irc proxy, compiled with libpurple support;
• libpurple, a backend for instant message plugins;
• tdlib, the official Telegram library;
• tdlib-purple, a libpurple plugin for telegram using tdlib.
I was unsatisfied with that setup for the following issues:
• I could not upload/download media to/from telegram on bitlbee through
my IRC client; but i could do that straight at pidgin. This may have
been a misconfiguration or lack of support on either bitlbee or my irc
client.
• TDlib took more than 3 hours to compile on my machine.
• TDlib-Purple was not maintained and will stop working as soon as
Telegram decides to change its API or deprecate TDlib (as they have
already done with libtgl).
§ TODO
Currently, Whatsapp™ is the only service i use which is not proxied to
irc. In the future, i may addopt a whatsapp-irc gateway. That is not
urgent, however. I only use Whatsapp™ rarelly, to talk with boomer
relatives.
In the future, i want to replace hexchat with a unified text user
interface, similar to that of the Oberon System or the Acme editor.
So text operations (editing, selection, search, plumbing, etc) are
common between all text-based software.
§ BUGS
Hexchat is not maintained anymore.
I do not use a bouncer. That is currently not an issue. I cope with
that as it would get me a fear of missing out older messages; and make
me read backlogs every day.
PEÇAS USADAS DE COMPUTADORES VELHOShttps://seninha.org/notes/ferrovelho.txt2025-12-18T00:00:00Z PEÇAS USADAS DE COMPUTADORES VELHOS
2025-12-18
Eu postei recentemente no fediverso[1] meu interesse de trocar peças dos
meus notebooks (thinkads) antigos por novas peças usadas. Aqui listarei
o que eu tenho e o que eu preciso. Se você quer comprar uma peça minha,
vender/dar uma peça tua, ou trocá-las, entre em contato comigo.
Vou atualizar este documento sempre que tiver algo que não queira mais.
[1]: https://bsd.network/@seninha/115726021912267152
§ VENDO/TROCO
• Memórias DDR3 de 2 e 4 GiB.
• Placa wireless Atheros AR5B225 (IEEE 802.11 b/g/n + IEEE 802.15 BlueTooth).
• Thinkpad T61 com tela quebrada e sem bateria, mas funcional conectado
a monitor e carregador. Ou qualquer peça dele.
• Peças de T430, incluindo:
• Heatsink+fan.
• Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
• Teclado
• Case
• Tela
• Placa wireless Intel Centrino Advanced-N 6205
• O ThinkPad T430 que eu uso desde 2018. Bem cuidado (estou digitando
nele agora mesmo). Quero me desfazer do meu PC velho de guerra. Eu
fiz as seguintes alterações nele:
• Com CoreBoot.
• Com teclado clássico (7-rows) de T420 adaptado pra T430.
(Teclado layout japonês, com teclas extras pro polegar).
§ COMPRO/ACEITO
• Intel® Core™ i7–3632QM
• Heatsink+Fan pra T430 com GPU dedicada.
• Memórias DDR3 de 8 ou 16 GiB.