summaryrefslogtreecommitdiff
path: root/xmpp/transcriptish.rst
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp/transcriptish.rst')
-rw-r--r--xmpp/transcriptish.rst135
1 files changed, 135 insertions, 0 deletions
diff --git a/xmpp/transcriptish.rst b/xmpp/transcriptish.rst
new file mode 100644
index 0000000..6cd4228
--- /dev/null
+++ b/xmpp/transcriptish.rst
@@ -0,0 +1,135 @@
+
+Primates have a tendency to be social animals: they live in a herd and
+need to communicate frequently with its members to cohordinate their
+activities but also to maintain the social ties that keep the group
+together.
+
+Since a long time, human herds have developed technological tools that
+helped them to spread out their herds geographically by enabling remote
+communications with fellow human beings, which in turn has lead to a higher
+need of tools for remote communication.
+
+With the speed of modern technlogical advancements and aided by the natural
+lifecycle of standards, this has led to the proliferation of chat systems
+famously illustrated by xkcd_
+
+.. _xkcd: https://xkcd.com/1810/
+
+This situation is far from optimal: most of the tools listed on that comic
+do not interoperate with each other, so everybody needs to be on a few
+systems, each one of them requiring a different client, in order to
+communicate with his family and friends.
+
+This lack of interoperability comes by design, as these services are usually
+provided for free and need to collect and keep as many users as possible in
+order to benefit from the network effect and to maximise the commercial
+value of their data.
+
+For us users, however, it would be nice if there was a chat system that was
+designed for interoperability, with the ability to use different servers and
+different clients (on multiple devices) according to the user's need, and
+the ability not to be locked on a single provider but to be able to talk
+with users of any one provider.
+
+The good news is that there are actually a few such systems (of course),
+but today I want to talk about one in particular that is also an
+established, open standard designed for interoperability and extensibility:
+XMPP_.
+
+.. _XMPP: xmpp.org
+
+Born as Jabber in 1999 with the aim to solve a situation not very
+dissimilar from the one of today, XMPP had a first wave of success in
+the first decade of 2000 when it was adopted by a number of big players
+including Google Talk and partially Facebook Chat.
+
+So, why isn't everybody using XMPP today?
+
+One factor that helped is that once gtalk had reached a significant user
+base, the ability to federate, i.e. to communicate with accounts on
+other servers was no longer useful to google, but actually harmful, as
+it didn't help them to gain new users.
+
+While they took quite some years to disable it completely, for a long
+time Google has been reducing its usefulness by adding gtalk-only
+features such as group and video chats. Since they were such a big
+player, this also helped spread a feeling that XMPP was an abandoned
+protocol, no longer suitable to the current needs.
+
+This was however far from being the truth: XEPs (XMPP Extension
+Protocols) continued to be published to address new needs as they
+manifested, and nowadays XMPP has all of the features commonly available
+in other, more recent systems.
+
+It is true that lately quite some innovation in chat has been done in
+other, non federating, systems, and having control of all servers and
+clients of course allows to deploy such innovation faster, but XMPP
+wasn't far behind, and often managed to have similar features after a
+few months, while still keeping the ability to communicate between
+widely different servers and clients, according to the capabilities of
+all parties involved.
+
+What this means is that XMPP with the right client/server combination
+has all of the features required nowadays by a chat system, including
+the ability to connect to it from different devices, both at the same
+time and alternatively, while keeping a complete conversation history
+on all of them, good battery life on mobile, various levels of
+cryptography (also for group chats), and of course great smileys and the
+ability to send cat pictures that also works on the text-only clients
+used by a few maniacal users such as me.
+
+The availability of multiple clients can cause some confusion for less
+experienced users, but here my recomendation is to ask your friends for
+what they are using, or just use gajim_ on the desktop (Linux and
+Windows) and conversations.im_ on Android, unless you enjoy spending
+time trying different clients until you've found one that perfectly
+matches your needs.
+
+.. _gajim: https://gakim.org
+.. _conversations.im: https://conversations.im
+
+As for the servers there is a list of public ones at
+https://list.jabber.at (and the security features of those servers can
+be tested on https://xmpp.net/ ), and the people behind the
+conversations.im client also provide accounts for 8 EUR / year on
+https://account.conversations.im where you can expect them to keep the
+server up to date with the latest extensions required on mobile.
+
+My recomendation, however, is to self-host, or rather to find a group of
+people that trust each other, ideally one that includes a sacrificial
+nerd and share the expense and work needed to self host among them.
+
+This has been my choice, and I'm using a cheap, entry level VPS (for
+which I pay about 5 EUR / month including the domain registration) which
+has plenty of resources for the current dozen of users — and could
+easily host another dozen and/or other services (maybe a federated
+social network instance?).
+
+As for the effort required on my part to maintain it, it took me about a
+day to set up everything, starting from the VPS creation and including
+an afternoon spent reading up on every extension suggested by
+conversations.im in order to decide whether I wanted to enable it (but
+I've documented_ this part, so that you can just use my tutorial and
+save time), plus 10 minutes every other week doing regular
+mainteinance including keeping the system up to date (and rebooting the
+server for security kernel upgrades).
+
+For this I've used prosody_, as it was recommended as easy to set up and
+maintain, but I've also heard good things about ejabberd_, which should
+be a bit more versatile in case of bigger deployments.
+
+.. _documented: https://www.trueelena.org/computers/howto/modern_xmpp_server.html
+.. _prosody: https://prosody.im/
+.. _ejabberd: https://www.ejabberd.im/
+
+This is in my opinion a sustainable effort in order to have a server
+that is managed by someone that has no incentive to sell user data, both
+because it's too small to have any value and because all of the users
+know where the server admin live (and vice-versa) and every incentive to
+keep the server in good shape because they are using it themselves.
+
+Of course, thanks to federation, that dozen of users can talk to people
+on all other federated servers around the world, which is the main
+reason that makes this model of small, trustable, servers feasible and
+in my opinion makes XMPP the best chat choice from the point of view of
+its users.