From 4597861b4e864bc4fd8be1f5b423b40eba55d727 Mon Sep 17 00:00:00 2001 From: Elena ``of Valhalla'' Grandi Date: Sun, 29 Oct 2017 20:54:29 +0100 Subject: xmpp: completed transcriptish --- xmpp/transcriptish.rst | 135 +++++++++++++++++++++++++++++++++++++++++++++++++ xmpp/transcriptish.txt | 15 ------ 2 files changed, 135 insertions(+), 15 deletions(-) create mode 100644 xmpp/transcriptish.rst delete mode 100644 xmpp/transcriptish.txt (limited to 'xmpp') 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. diff --git a/xmpp/transcriptish.txt b/xmpp/transcriptish.txt deleted file mode 100644 index d57f7db..0000000 --- a/xmpp/transcriptish.txt +++ /dev/null @@ -1,15 +0,0 @@ - -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. - -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/ -- cgit v1.2.3