Freedombone Blog

Freedom in the Cloud

No Golden Era

An amusing blog post about the terrible condition of contemporary software. Admittedly there is a lot of badness and many challenges. But there never was a golden era.

They talk about how small Windows 95 was, implying that was some time in which Great Engineers performed Great Deeds. Being old enough, I could do a similar rant, but from the perspective of 1995. It would go something like:

Windows 95 is 30M!!! That's a ridiculous number of floppies. I have to schlep this tower of Pisa of floppies around to get the thing installed on different desktops. What were Microsoft thinking? Amiga Workbench was a single floppy. ONE. Uno. Ten years ago the BBC Micro booted in two seconds. Flip the power button, beep, command prompt. And all before you can sip your coffee. If you had a Viewsheet ROM you were productive within 5 seconds. Windows 95 is like 60 seconds or more. Sometimes a lot more. What is it even doing with that time? I don't need fancy true type fonts. It's just superfluous fluff. And this OLE thing is a total disaster and never seems to work as expected. It's a cludge on top of a cludge.

If you could go back further in time to the beginning of Unix then you'd also find Thompson and Ritchie running out of disk space and clumsily moving their operating system files into the home directory on another disk. If you could ask them they'd probably explain that this was a terrible hack and that they would get around to fixing it later. 40+ years later the hack is still there.

So no matter what computing era you are in there are always problems, it's just the particular type of problems which change. From some people's perspective there was always a golden era ten or more years ago, but really that's just cherry picking, or remembering the good points but forgetting about the bad ones. The main thing is to just keep plugging away at fixing the broken things. Hopefully some day Electron apps will be a thing of the past, and language package managers will either no longer break horribly or be replaced by something more reliable.

Website Icons

A few tweaks have been made to the index page of the website.

Image description

Information about the mesh version now has its own icon and the Patreon icon has been removed so that there are two rows of four icons. The icons have also been made not so overwhelmingly gigantic. This makes the site look better on a small mobile screen in portrait orientation. The Patreon link has been moved into the FAQ.

Muted words

It's still experimental and not very well tested but I've been adding a new feature to the blocking screen of Freedombone which allows for messages containing certain words or phrases to be blocked. Twitter has this feature and calls it "muted words" and there's a similar capability within the Pleroma interface.

As an example, maybe I don't want to see anything containing the phrase "Black Friday" or "blockchain". There has been so much blockchain hype in the last year that posts on the topic are just another eye-rolling event.

I'm also expecting that as the fediverse becomes more popular that it will also become more adversarial with a greater amount of spammy posts. This type of word based blocking, combined with the existing domain/address blocking might help to mitigate that.

Emacs Workflow

Listening to the first episode of the LibreLounge podcast among many other things they describe their Emacs workflow using org-mode. I also do things in a similar way, so on the obscure off-chance that anyone is even the slightest bit interested in how I do it, it goes as follows:

My main editor for most things, especially "getting things done" type tasks is of course Emacs. I use org-mode for notes and also org-agenda as a TODO list. My Emacs configuration is a bulky menagerie of assorted modules and I started out with Sasha Chua's configuration from Github in about 2012 and then heavily modified it, removing some things and adding a bunch of other things. Maintaining this can turn into a yak shaving exercise, but fortunately I rarely reinstall Emacs these days since I'm typically using an Arch based desktop distro.

I have a personal git repo stored on the server which contains my org-agenda files and notes. Synchronization is just a matter of committing on one system and then pulling the changes on another. That might sound complicated compared to something like Syncthing, but in practice it's not much of an issue and avoids the type of conflicting situations described in the podcast.

On first running Emacs it shows my personal index page which is an org-mode document with embedded links to notes, cheat sheets, bookmarks and the current TODO list. Most commandline stuff I do within Emacs using eshell. I use git mostly from the commandline, but occasionally with magit to list commit history for repos or individual files. I also use golden ratio mode so that buffers change size automatically.

I did email within Emacs at one time, using Mew, but now I mostly use Mutt or the Freedombone webmail, which is a customized squirrelmail. Mutt is hard to beat for speed and simplicity, and has good GPG integration. Also logging in to the server via ssh or using webmail to read email avoids the need to expose any IMAP port and so reduces attack surface.

I've been an Emacs user since about 2010. Prior to that I mostly used gedit with its various plugins. I did try versions of Emacs in the more distant past - particularly MicroEmacs - but didn't use it as my main editor.

Tweaks and improvements

A few recent improvements to the Freedombone system.

XMPP server

The version of Prosody has been upgraded to 0.11.0, also with a corresponding update of the community modules. It looks like Prosody is gradually becoming more compatible with the Conversations android app and including the needed XEPs by default.

Some changes have been made to minimize the occasions upon which Prosody needs to be restarted. Restarting the daemon often seemed to break PEP. The upgrade to 0.11.0 may also help this situation because it has a more recent PEP implementation.

App installs

When installing an app there is now a progress bar shown. Previously there was an install and pray approach in which once you had got past the confirmation step you just had to hope that the app would show up some time later. This removes that ambiguity.

Added EteSync

A new app for synchronizing calendar and contacts across devices.

Added Zap

Zap is like Hubzilla, but with some features removed so that it's specialized as a social network system rather than a general web publishing system. It uses the latest version of the Zot protocol.

Better app icons

Previously the icons for apps had been added rather hastily and some of them looked quite blurry. The icons have been updated so they now have better resolution.

Fixed amd64 images

There was a catastrophic bug in the amd64 images which was preventing them from installing properly. This only applied if you were installing from a USB drive. At an early stage in the install the USB bus was being reset, which obviously caused dire problems and data corruption. That should no longer be an issue and the downloads have been updated.

App help screens

These have now all been added, although currently most of them are very basic. There's scope to make the help on these screens more comprehensive.

Chatting by Telephone

The main developer of the Conversations app has launched a new chat system called Quicksy. It's a minor variation of the Conversations codebase which uses a centralized closed source XMPP server, has telephone numbers replacing usernames, uses SMS and depends upon the Android contacts list as its roster. It actually uploads your Android contacts telephone numbers to a centralized server.

Basically it's a Signal-a-like, but XMPP and without the video or audio capabilities.

Why do I care at all about some proprietary thing, you may very well ask. You're right, probably I should just ignore this. The main thing that bugs me in a Columbo-like way is that it's coming from the same developer that I otherwise had some amount of confidence in. The thinking behind Quicksy is so mistaken, even if the aim is something simple such as "increase the popularity of XMPP", that I'm beginning to wonder whether continuing to use and promote Conversations is a good idea. I even started to think the unthinkable: could I develop an XMPP client for android myself?

I'll let that slide for now and carry on using Conversations, but block the Quicksy server (which presumably is just ejabberd with modifications). One thing I really don't want is people sending me their telephone numbers as JIDs (i.e. username part of XMPP addresses). That just creates privacy leakage which could end badly. Developing an XMPP client would be a vast amount of work, and is easily a full time job for at least one developer.

Using telephone numbers within chat applications isn't advisable. In some places in the world if you have the wrong telephone number, or a particular telephone number in your contacts list, then a flying robot will drop a missile onto your house or onto your wedding. You don't even need to be a terrorist for that to happen. Just someone who bought the wrong refurbished phone in a local shop, or a friend or relation of the person with The Telephone Number. Machine Learning can make a lot of spurious linkages. Maybe you attended the same church or shopped at the same store. There are also plenty of other threat models including phone numbers. If you're trying to escape from an abuser is publishing your phone number to anyone who can read your JID a good idea? I would guess not. What about if you're an immigrant? I assume that in most cases the Android contacts list is not secure and is probably known to Google (via default cloud backups) and the ISP. And then there's the whole IMSI thing with SMS. There are of course very similar issues with Signal.

The usual retort of the developer of such communications apps is that anyone with a conflicting threat model must be excluded and is not welcome in our system. As technologists, is this what we want?

Freedom is a constant struggle. There are no ideal solutions and technology cannot fix all problems. Sometimes the same battles have to be fought over and over.