I put up a web site with details of my PubHubs work:


Under Moderation, there are subsections for the main work areas of the project: Draupnir+Pantalaimon, Disclosure of Identity Attributes, and Civilised Discourse.

That last area is the one I am currently working on.

#PubHubs #matrix #awesomeFOSS


“How can I transfer photos between my PC and my phone?”

  • perhaps to get a digital camera photo from the PC into a phone app
  • perhaps to get a few phone photos onto the PC for editing
  • perhaps any other kinds of files, not only photos
  • perhaps Internet access is slow

Here we are not looking at ways to manage our whole photo collection, we are looking at simple ways to transfer files between our devices.


Towards Matrix, Properly Decentralised

One of matrix's key properties is decentralised communication.

No single party controls the whole system, there is not a single service provider of whom everybody is a customer, anyone can choose who provides their service or run it themself.

When I install a Matrix client app, I expect it to connect to my Matrix server. What happens currently: most matrix client apps invite me to connect to one particular de-facto “central” server called “matrix.org”. As a user, connecting to my own server is a chore. In Element's flagship “Element X” preview, for example, currently I have to choose the less obvious buttons to skip past screens inviting me to choose the “matrix.org” server, twice, and input my server's domain on a “search” screen separate from where I enter my “username”.

What matrix client apps should do: discover my local server automatically, make a reasonable suggestion for my username (e.g. from my computer's or phone's user account details, address-book, etc.), and move on to asking me for my password.

It would be nice if we could standardise a way for a local matrix homeserver to advertise itself on the local network, and for a client to detect the local homeserver(s) automatically. Home media servers do this, and some other kinds of home servers. Technically there are a few different ways to achieve Zero-configuration networking, like UPnP, mDNS, DNS-SD.

A different and complementary approach is to integrate with the accounts already configured in the phone's settings (on Android for example). I should be able to configure one matrix account in one place, and then any matrix client app I install should pick up the settings from there.

Which technique(s) we use is not as important as that it should Just Work, for ordinary low-tech people who have not set up their own infrastructure but are perhaps subscribing to a matrix server provider.

(Traditional “enterprise” deployment techniques are still valid in an enterprise setting, for example where the enterprise IT department configures the employees' devices. But that is something they have the resources to develop and deploy. I am interested in what we can do for ordinary individuals at home.)

It seems to me that's the way things should Just Work, everywhere from homes to enterprises, if we care about decentralisation.

#matrix #awesomeFOSS


As I wrote before, My smart watch is open source. Awesome!


Let's make this fun — for children in particular — and show how we can bend the device to our will because FOSS means it's truly ours, fully under our control.


  • PubHubs-moderation live demo: central.ph.s.trax.im/client
    • TODO: instructions; basically you need Yivi app with dev mode enabled and two sets of demo credentials (one as moderator, one as recipient)
  • disclosure UI live prototype: on qx.trax.im

Disclosure Flow

A moderator asks someone to disclose an attribute of their real identity. The recipient provide the requested attribute, using Yivi to attach a cryptographic proof.

In the last update I introduced a demo of attribute disclosure. I have since completed the main TODO there, making the disclosure flow happen on the recipient's account. (In the first demo the moderator's role and the recipient's role both took place in the same login session in the same account.)

This week I have been thinking about how we will need to improve the user experience, or flow, of this disclosure request and response.

Writing the dialogue boxes and associated logic by hand was tedious and buggy. Rapid prototyping would be helpful. I decided it's time for me to learn a better way. Being new to UI design and fervently open-source principled, I searched for a FOSS solution and found Quant-UX.


As if I didn't have enough else to do with my evening, I spent it making this. Why?


A non-Amazon wish list, anyone?

I once thought I was making a neutral choice to shop at Amazon, and that their wish list was a nice convenience.

Just like I one thought Google was my friend, and signed up for their “free” email. I deeply regretted that and have now deeply deGoogled.

Nowadays I recognise a greedy mega-corp when I see one, with everything wrong that goes along with that, and so I shut down my wish list there and almost completely avoid shopping there.


Android or iPhone — either Google or Apple delivers our messages — surely? You don't accept that?

Time I Learned: there are freedom-respecting phones.

People who do not want to depend on Google or have them control our devices are using android-compatible but not google-controlled phones, a.k.a. “degoogled phones”. We have been asking (ourselves) for several years if we can have google-free push notifications. Thanks to the developers of the UnifiedPush standard, the answer is now, “yes!”

But why?


UnifiedPush open-standard push messaging complements degoogled android-compatible phone OS's such as LineageOS.

People who do not want to depend on Google or have them control our devices are using android-compatible but not google-controlled phones, a.k.a. “degoogled phones”. We have been asking (ourselves) for several years if we can have google-free push notifications. Thanks to the developers of the UnifiedPush standard, the answer is now, “yes!”

The open standard UnifiedPush.org has now been created. While not a large number yet, a useful handful of apps already support UnifiedPush, including several matrix and fediverse apps. For its servers and the associated client-side “distributor” component, there are multiple successful implementations deployed.


More and more I find myself using the fediverse (based on ActivityPub) alongside Matrix, and the two protocols complement each other nicely in some ways. In other ways their differences seem needless and jarring, only getting in the way. I'd like to be able to offer my contacts the free choice of which protocol to use, depending on what kind of communication they intend (public-ish versus private or group-ish), without everything else being different — especially the user identifier/addressing but also many lesser issues such as the existence of user profiles.

I have long remained hopeful we'd get use profiles eventually. Conceptually it's not a big deal. So where are we now and where are we going?