Open Standards, Open Web 2019-01-18 I spent much of my midwinter break in a state of pondering about the web, and about F/LOSS, and society in general. I've made no secreet here of my growing disdain for and discomfort with the various services which are a feature of our modern world and society. We've surrendered our privacy, our health and even our democratic norms to these companies, for precious little gain. In that vein, I'd started investigating the state of the XMPP protocol over the holidays. Unlike the other messaging protocols, this is an open standard, extensible, and developed in the open. I'd used it in the dim & distant, back when it was called Jabber, but had (stupidly) moved on from using it about the time it was EEE'd by Google[^1]. The problem with using an open extensible protocol in 2019 is that the vast majority of the world is using the walled gardens provided by the surveillance capitalists. The reasons why aren't hard to imagine, these organisations spend their billions in Venture Parasite Funding to create a cultural appreciation of their product. They have legions of workers who's job function is to ensure that you stay in their garden, either via dopamine release or F.O.M.O. Finally, and perhaps most insidiously, for a huge proportion of the world's population, they have neither the inclination or the finances to organise servers, their "internet" is delivered on feature phones on which connections to Facebook[^2] are "free", thanks to arrangements made by the tech-giants with telecoms-providers, which actively penalise any other data use. What this all means is that there are few people using xmpp for their day to day communication. Despite this, I thought I'd spin myself up an xmpp server. I chose the Prosody server, primarily because I found, and followed, the excellent installation/configuration roadmap provided by the Homebrew Server Club. Following installation, this wonderful server occupied an entire 25MB of ram on my server. I mention the ram requirement, because I'd previously tried running the Synapse Homeserver for the Matrix protocol -- another, newer, open messaging protocol. That project has noble aims, but their reference implementation is a hot mess, gobbling up every available byte of ram, loading the cpu every time it attempts to send a message. Prosody, by comparison, just fecking works. I set up a little landing page for the site at xmdg.eu, and there it may have rested. By a stroke of fortuitous coincidence, the day I got my XMPP server up and running, one of the aforementioned walled gardens decided to throw me under a bus. Slack, of the penis-swastika logo, notified me that my system of bridging my favourite irc-channel to their servers was in violation of their user terms and conditions. If I wanted to continue doing this, I would have to register a new and official slack-app, using their systems, and would have to move to a paid account, charged on a per-seat basis. I took my bridge off-line, and made some efforts to work around the restrictions. and in doing so, I ended up breaking what I did have quite, quite badly.[^3] I could, maybe, have just ripped it all out and restarted, but that process would just have returned me to where I was, looking at a fat pay demand from a company who's corporate identity is literally a Cock-up. So I decided to find an alternative, one that used my new found friend Prosody. I was recommended a few options by Fediversians - bridging servers used to be ten-a-penny, but the marginalisation of xmpp has eroded the field, leaving a program called Biboumi as the best option. Except … it wasn't an option for me, because my cheap-ass servers aren't compatible. While hacking around on the Prosody site, i noticed that there's a module for the server called mod_slack_webhooks - Bingo! Although this is designed for communication from XMPP to/from slack[^4], I had two gateway systems which had been using those same webhooks happily for months, all I had to do was get them talking to my XMPP server instead of slack's one. Naturally, this process was nowhere near as simple as all that, and involved tinkering about in three different languages: lua, tcl and nodejs. The people over on the Prosody chatroom were super-helpful, and my questions even resulted in a patch to the mod_slack_webhooks module, for which I am eternally grateful. The end result is that, thanks to slack's intervention, I can now offer a comprehensive irc<->xmpp bridge for my friends in the #linux channel. It works perfectly, thus far, and while I'm happy that it does, I'll continue to work on the code for the two bots in an effort to make them better. There's a lot of cross-checking in both to ensure that they're delivering the formats expected by slack's gatekeepers, an element of stupidity that I no longer have to deal with. There's also still a lot of use of the word slack, as I was afraid of breaking things I didn't understand. While the two bots are nowhere near finished, I've put them on my Gitea Instance, almost in the hope that someone might be able to help me with them. I'm sure there is probably a more elegant solution, but I'm happy that I was able to accomplish this task using tools I kind of already had, and with the support of people far more competent and capable than I. I was struck by a comment I read yesterday on the Fediverse:- > but seriously, somewhere between 2000 and 2019 the IT industry > seamlessly transitioned from "we provide precision engineering > tools, your data is yours, you should not need to trust us or > anyone, mathematics is your guarantee, crypto 4 ever." to "give us > your data. all of it. give. no secrets. hold nothing back. in > return we will... train AIs on it.. and provide unspecified > 'services'... for someone, who may be you... that can change at > any time... and we are funded by, uh. Look, a unicorn!" We can oppose this trend only by adopting open standards. Being able to do so should not be something available solely to the privileged. I know that I'm hugely privileged in being able to set up and use my own server - if anyone has read to the end of this and would like an account on my server, please pop me a line . If you're already on xmpp, you can contact me on xmpp, I am to be found at dgold@xmdg.eu and I'll be happy to share my experiences in more detail. [^1]: Google's gtalk was a clear attempt to disrupt and destroy XMPP, in much the same way Reader did for RSS. [^2]: Or whatsapp, or whatever. [^3]: I had back-ups, but in the process of attempting to fix things, my system rebooted, and it turned out that there were a few post-installation and upgrade scripts which had been waiting for me. Waiting nearly 700 days for me. [^4]: Using the same systems that Slack notified me they're going to be sunsetting. +++ENDS+++