A discussion thread I got pulled into on Mastodon had me suddenly nostalgic for something we once had on the Internet, and which was really nice while it lasted: the Extensible Messaging and Presence Protocol, or XMPP, or sometimes referred to by its original name, Jabber.
What kicked off the discussion was somebody asking about a more modern "decentralized chat platform" known as Matrix (not the movie). A lot of people online talk about how they like Matrix, but I one time had a go at self-hosting my own Matrix node (which I feel I should rant about briefly, below), and the discussion turned back towards something that we used to have which was (in my opinion) loads better, XMPP.
Update (Oct 18 2024): to address some feedback this post had gathered.
Yes, XMPP technically still exists and some people in the world still use it. As a free & open source product with an open standard, of course XMPP is never going away. People still use IRC, too, after all! IRC will never go away in the same way XMPP never will: insert relevant xkcd comic here.
This blog post was about the height of XMPP, circa 2008 - when actual, real "normal" people in my personal life actually knew what XMPP was and they had an account. This was when AOL Instant Messenger, MSN, Yahoo were all a thing, and Trillian and Pidgin were commonly used programs that "everybody" knew about, where they could sign in to all these myriad messengers. XMPP back in this era also had first-class support by Facebook and Google (where you could actually chat from your Google Talk account with FB Messenger accounts, by using the XMPP bridge).
All of that stuff does not really exist anymore. Google and Facebook walled off their gardens, all the other instant messengers have died off and been replaced by even more proprietary mobile apps; Pidgin still barely hangs on with keeping pace with modern messenger protocols. And in 2024 when you research XMPP server software: you still see references to "AIM and MSN bridges" despite these messengers no longer existing and the bridges no longer working. XMPP is not what it was (at its 'height' around 2008) any longer. I don't know a single human in my real life who remembers what XMPP is or has an account on any XMPP server. And for most of them: there would be little point to even set up an XMPP server, since "nobody" uses it.
As an open source protocol, of course some people, somewhere in the world, use XMPP - perhaps for their internal company communications, or within the confines of a university or other community where your SysAdmin wanted a chat platform for internal use. If you actually have friends & family and chat with "normal people" outside of your workplace and XMPP is used, I would be curious to hear your story in the comments.
About two weeks ago I again put my SIM card into my Pinephone to see whether I can make it a daily driver device. The last time I tried this was nearly a year ago so I have that benchmark to compare it to as well as some new information now.
The stack:
The highlights:
The details:
This week, some news about Waydroid made its way to the r/linux subreddit and in the comments I saw a Pinephone owner write about their experience with Waydroid and none of his complaints had anything to do with it being slow or clunky or broken, which is about what my experience was the last time I tested out Anbox about a year ago.
So it prompted me to check Waydroid out, and... it works remarkably well! It really surprised me. Waydroid makes use of containers to run Android directly on your own Linux kernel, without emulation, and so it performs very well -- some Android apps even run more smoothly than their native Linux counterparts!
I wasn't expecting that the Pinephone was ever going to be able to run Android apps smoothly on a GNU/Linux system, but now that it does, and does so this well, this is a game changer in terms of the Pinephone being "daily driver" ready. Finally, I have a way to use Slack and Discord from my Pinephone, something that was basically not possible at all before!
Now, to be clear: even without Android, there are a very good collection of Linux apps that already work well on the Pinephone. Having the option of Android for the odd proprietary app like Slack or Signal is nice to have. Read on to the full blog post for how Waydroid works right now, what are some of its pain points still, and a few screenshots of my Phosh app drawer showing everything I have installed on my Pinephone.
I didn't find this documented very many places but it's possible to get a VNC server running for "remote desktop" to access and control your Pinephone display from your laptop.
Quick list of related technologies:
grim
command.wf-recorder
.Mobian already packages grim
and wf-recorder
so these are just an apt install away, and these are documented
on Mobian's wiki. But wayvnc is not yet packaged in Mobian and you gotta build
it from source code yourself.
Follow the directions on the git repo, including cloning down the neatvnc and aml dependencies. The README has instructions to build it for Fedora and Arch but the Debian instructions are missing! I found by trial-and-error the dependencies I needed to install to build this program for Debian:
sudo apt install gcc meson ninja-build pkg-config libpixman-1-dev \
libdrm-dev libxbcommon-dev libwayland-dev
I ran the built binary like wayvnc 0.0.0.0
to start the server and connected
with the TigerVNC client from my desktop.
It has a couple of quirks to watch out for:
-r --render-cursor
options to get the cursor to work. Thanks,
anonymous commenter!Signal is an end-to-end encrypted messenger app for smartphones that has been recommended by the likes of Edward Snowden and has seen an especially large influx of new users in recent months who are suddenly more concerned about Facebook or other tech companies reading or censoring their chat messages.
It's a fairly good app for what it does and it would probably fit the needs of your "average user" very well, but it doesn't work well for my needs and I still use Telegram in its place.
Now, I would like to use Signal instead of Telegram, because Signal's technology is more sound and the chats are truly end-to-end encrypted (where Signal Co. would be incapable of reading my chats even if they wanted to). Telegram in comparison uses some home-made cryptography (and you should never roll your own crypto) and their chats are not end-to-end encrypted by default, but Telegram does have some good quality-of-life usability features that makes it more appealing to me than Signal for now.
The state of the apps for Pinephone is looking good enough lately that I could actually consider daily-driving the GNU/Linux smartphone, but how reliable would it be as a phone if I put my T-Mobile SIM card into it?
My main concern was around the deep sleep mode of the Pinephone: to conserve battery life the phone suspends and turns off networking and everything. Would this affect reliable delivery of incoming text messages and phone calls?
As it turns out, everything works well enough except that MMS picture and group messaging is still not ready yet and you might miss surprise phone calls when the phone is sleeping (but you can just call them back later).
What works:
See the full blog post for my notes and details for the Mobian OS running the Phosh shell and a T-Mobile (US) SIM card. If you have a Pinephone, try it out on your own carrier.
The Pinephone is a smartphone that runs mainline GNU/Linux software instead of Android, and the software is still a work in progress. I've had a Pinephone since about May of 2020 and have been watching the rapid growth of the software ecosystem for it, so this blog post is kind of a "status update" in the form of screenshots of various apps that are already running great on this device.
I'm not a software developer in that space, so props to the whole open source community that's making this all come together!
The question is: "is this phone daily driver capable yet?" and to that I say: it's getting close! I haven't yet tested putting my SIM card into the phone and trying voice calls and SMS texts, but I've heard from others that these are working and reliable for a long time. MMS picture messages are still a work in progress though, and they say the phone doesn't wake up quickly if an incoming phone call comes in while the phone is sleeping.
All that aside, the big apps for me to have working to call this a daily driver phone should include:
And: I have basically all my bases covered and then some! This blog post goes through some of my favorite apps that work well on Linux mobile.
Update (Jan 24 2021): Chromium works very well and with better performance than Firefox + webapp support. Screenshots and info added to this post.
The Pinephone is a new smartphone in the works that will run mainline Linux as its operating system instead of Android, and already has a lot of Linux distributions that run on it. The idea is it would run all the same Linux software you get on desktops, servers or Raspberry Pi's and give you a private alternative to Android devices which send a lot of data up to Google.
They've already released some phones, and I have one that came installed with Ubuntu Touch, and I've been testing the operating systems as they progress. Linux on Mobile is still very early, most graphical apps don't fit on the tiny screen size of a smartphone, battery life can still be improved, camera quality can be improved. But progress is advancing rapidly and there's a growing number of apps that work and provide basic "smart phone" functions: calls, texts, email, calculator, calendar, maps, password manager (KeePass), web browsers.
My dream is to use a Pinephone as my daily driver, but it's still got a long ways to go, and I got impatient and instead installed a de-googled Android ROM onto my existing Pixel phone.
And having used both Linux and Android on mobile, I've determined that a de-googled Android ROM is a very solid alternative to a Linux phone while you wait for Linux phones to get better:
Details below:
When we're talking about "Linux" the operating system, we really mean one of the thousands of Linux distributions that exist out there. Linux itself is just the kernel -- the lowest level part of the operating system that deals with hardware, drivers, process and memory management. A distribution is all the stuff on top: the software, the desktop environments and so on.
Most Linux distributions can be called "GNU/Linux" because they include the Linux
kernel and a suite of software tools from the GNU
project. These are mostly command-line programs like grep
and less
as well as
deeper system components like the GNU C Library
(glibc) which is used by basically every program on the system.
When you're new to Linux you may look at this enormous list of distributions and be paralyzed as to which one you should pick. Fedora, or Ubuntu? Or Debian or Arch?
People will often tell you: it doesn't really matter, all these distributions
are running more-or-less the same software and the biggest differences between
them is their package manager and
what format their software is shipped in. On Fedora you might dnf install firefox
or dnf update thunderbird
whereas on Debian you would apt install firefox
or on Alpine you'll apk add firefox
. Just learn
the set of commands for your distro of choice and you're good. Software on
Fedora-like distros come in .rpm packages, Debian-likes come in .deb, but mainly
you'll install software through the official repositories of your distro.
But there's more differences between the distros that they don't tell you about:
The Pinephone is "an open source smart phone supported by all major Linux phone projects." I'd been keeping my eye on these things for a few years now and finally got the Pinephone in my hands earlier this week to try it out.
The idea with devices like this (as well as the Librem 5 phone) is that it's a smartphone that runs standard mainline GNU/Linux software instead of Android. This means root passwords (or sudo), SSH servers, full admin control of the device, and ability to run all the familiar Linux software that you get on a desktop PC, server, or Raspberry Pi type of device.
Importantly this means no Google Play Services or built-in spyware and the user is in control of their device. More privacy, but not necessarily more security.
There are many Linux operating systems available for the device already and I've tested out Ubuntu Touch UBports, postmarketOS and Mobian/Phosh and here are some of my impressions so far.
tl;dr.:
See also: I'm maintaining a Linux on Phones page on my site's wiki to collect notes, config tweaks, software I found that works and so on.
0.0021s
.