RSSAmplifier

Blog

Patrick Cloke

patrick.cloke.usRSS feed ↗10 posts

Latest posts

Matrix: Time Zones in User Profiles

Matrix had very limited user profile information, only: display name and an avatar. [1] Users are able to get/set these fields with a simple CRU D REST API . This is pretty limiting and doesn t match what users expect from a modern chat platform. In particular, I ve seen …

Joining the Matrix Spec Core Team

I was recently invited to join the Matrix Spec Core Team , the group who steward the Matrix protocol, from their own documentation : The contents and direction of the Matrix Spec is governed by the Spec Core Team; a set of experts from across the whole Matrix community, representing all aspects …

Synapse URL Previews

Matrix includes the ability for a client to request that the server generate a preview for a URL . The client provides a URL to the server which returns Open Graph data as a JSON response. This leaks any URLs detected in the message content to the server, but protects the …

Matrix Intentional Mentions explained

Previously I have written about how push rules generate notifications and how read receipts mark notifications as read in the Matrix protocol. This article is about a change that I instigated to improve when a mention (or ping ) notification is created. (This is a highlight notification in the Matrix specification …

Matrix Presence

I put together some notes on presence when implementing multi-device support for presence in Synapse, maybe this is helpful to others! This is a combination of information from the specification, as well as some information about how Synapse works. Note These notes are true as of the v1.9 of …

Handling GitHub Notifications

Note This was originally written for some coworkers and assumes a mostly GitHub-based workflow. It has been lightly edited to be more readable, but if your organization doesn t use GitHub like we do then it might not apply great. GitHub can generate a lot of notifications which can be …

Matrix Live demo on Linearized Matrix

I demoed some of my work at Element on Matrix Live back on August 4th s This Week in Matrix (and failed to mention it here). I talked a bit about what Linearized Matrix , Element s effort for the IETF s More Instant Messaging Interoperability ( MIMI ) working group. I demoed …

Celery architecture breakdown

The Celery project , which is often used Python library to run “background tasks” for synchronous web frameworks, describes itself as: Celery is a simple, flexible, and reliable distributed system to process vast amounts of messages , while providing operations with the tools required to maintain such a system. It’s a …

Matrix Push Rules & Notifications

In a previous post about read receipts & notifications in Matrix I briefly mentioned that push rules generate notifications, but with little detail. After completing a rather large project to improve notifications in Matrix I want to fill in some of those blanks. [1] Note These notes are true as of …

Python str Collection Gotchas

We have been slowly adding Python type hints [1] to Synapse and have made great progress (see some of our motivation ). Through this process we have learned a lot about Python and type hints. One bit that was unexpected is that many of the abstract base classes representing groups of …