Ben Parsons

175 posts tagged with "Ben Parsons" (See all Author)

This Week in Matrix 2019-05-10

10.05.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live

This week Neil and Matthew are talking about recent security issues - this is a really long and detailed chat, but you can skip to around the 32 minute mark to hear about other news - including progress on reactions. Reminder that for a good "big picture" overview of the progress of Matrix, you can look at the Homeserver High Level Roadmap.

Dept of Servers

Synapse

Neil, Synapse-dev wrangler:

Reactions continues at full speed, we have a draft PR and will be implementing over the coming week. The ability to blacklist IPs over federation will land imminently, as well as a nasty device management bug that led to a spate of E2E errors. Next week is all about Reactions, resuming work on the small homeserver project and finally getting back to Synapse 1.0 blockers following all the remediation drama of the past few weeks. With any luck we’ll have a new Synapse release for you next week.

Dept of Encryption

Pantalaimon

Says poljar:

  • Pantalaimon received a configuration file. The configuration file adds the ability to configure multiple Homeservers and pantalaimon will run having each Homeserver exposed on a different TCP port.
  • The panctl utility has received support for more commands, it now has the ability to accept SAS requests, confirm them, import/export keys, list pan users as well as list devices of users. Completions for the commands were also added.

Dept of Clients

Pattle - big update!

Wilko announced:

A new version of Pattle is available on F-droid!

Lots of changes again, including:

  • Render HTML formatting in messages!
  • Replies are now rendered!
  • Show date headers between messages of different days!
  • Render usernames with a color in chat timeline
  • Add loading indicators (when logging in, loading chats, etc.)
  • Show error banner at the top if syncing failed
  • Syncing now resumes after a failed attempt (no more restarting)
  • Fix messages not being sent if connection was lost and the app restarted

To install Pattle, add the following repo in F-droid:

https://fdroid.pattle.im/?fingerprint=E91F63CA6AE04F8E7EA53E52242EAF8779559209B8A342F152F9E7265E3EA729

Follow development here and in #pattle:matrix.org!

Fractal

Alexandre Franke:

Although the development pace has been reduced lately, the Fractal team managed to make significant progress towards the 4.2 release. More specifically since our previous news, Chris has landed much of his adaptive view work to get Fractal in a mobile friendly state so it’s ready to run on the Librem 5 once Purism starts shipping them. But he didn’t stop there: eager to see his awesome work in the hands of many people (figuratively, the literal application will have to wait for the phone to be out 😛) as soon as possible, he tackled a few bugs that we really wanted to get sorted out before we got a new version out.

Alexandre also prepared the changelog with a bird’s-eye view of all changes that happened since 4.0.

Last but not least, we had a few external contributions for features such as network proxy support and typing notifications.

Riot Web

Progress on message composer for editing messages.

Riot iOS

  • 0.8.6 has been released on Tuesday
  • We are working on reactions

Riot Android

  • We have fixed some minor bugs, our efforts are now on RiotX
  • New FDroid mode support for high service level, regardless of battery usage.

RiotX (Android)

  • Benoit has started to implement the crypto on RiotX. Basically all the legacy has been imported and a migration to the new architecture is done. Lots of plumbing and rework, but it should be the fastest way to support crypto on RiotX.
  • Valere is working on the emoji picker and reactions, and has also added some actions on events (copy, share, view source, etc.)
  • François has added room invitation support. It will be possible soon to see invitations, and accept or reject them.

continuum

yuforia has news on continuum, a JavaFX-based client.

this week in continuum

  • right-click on a room in the room list to send invitations
  • experimental support for receiving invitations
  • membership data are now also persisted in database

FluffyChat available as a Snap package, plus E2EE progress

Krille announced FluffyChat for Linux desktops:

FluffyChat is now also available as a Snap package for desktop Linux
https://snapcraft.io/fluffychat :D
It's a Matrix client written in Qml for Ubuntu Phones. Now it is working for Linux Desktop too.

He also has news to share re E2E:

Progress has been made at the end2end encryption for FluffyChat. Qml bindings for the libolm library are mostly ready and the app can now create keys and upload keys to the server. Device tracking is now implemented too.

E2E when? SOON! See the branch here: https://gitlab.com/ChristianPauly/fluffychat/tree/e2eencryption

Dept of Bridges

New Hangouts bridge from tulir / mautrix

tulir has been using his mautrix-python lib, which was recently used to enable his mautrix-facebook bridge, to bring a new method for Matrix-Hangouts bridging:

New bridge again, this time it's Hangouts: https://github.com/tulir/mautrix-hangouts / #hangouts:maunium.net. As with the Messenger bridge, currently the main difference to matrix-puppet-hangouts is multi-user support (also no hacky JS/Python mixing).

Before making mautrix-hangouts, I put a bunch of the generic bridging parts of mautrix-facebook into mautrix-python's bridge module and used that in both bridges. After Debian 10 is released, I'll drop Python 3.5 compatibility in mautrix-telegram and move it to use mautrix-python and the bridge module too.

Next week I'm planning on adding a bunch of features to both my new bridges, such as bridging formatting and remaining media types (so no new bridges planned for now :D).

Dept of SDKs and Frameworks

QMatrixClient is now "Quotient"

kitsune:

The vote on a new name for the QMatrixClient project has been going on over the past week.
We have a winner now, and the new name is "Quotient"! In the nearest weeks, expect changes in the library code (it's going to be libQuotient from the next release), room aliases (already ongoing), links to the repos etc. etc. Where possible, we're going to smoothen the migration path by providing legacy fallbacks (e.g., the new C++ namespace, Quotient, will be introduced but the old one, QMatrixClient, will stay its synonym, although deprecated).
Just in case you missed all the previous mentions of the topic - it's only related to the overall project and the library, but not the client - its name remains Quaternion.

Why rename?

Because the previous name has been a bit clumsy and, most importantly, the project is no more focusing just on client-side but on a wider set of applications of Matrix (no homeserver in plans though). See also the recent backlog of #qmatrixclient:matrix.org (now also #quotient:matrix.org) earlier this week for the whole discussion

Ruby Matrix SDK hits v0.1.0

Ananace:

Just published version 0.1.0 of the Ruby Matrix SDK, and I've gotten enough testing written now where I feel comfortable not marking this as a pre-production release. So feel free to integrate it into more than just prototypes and experiments. 😃
Relevant links; GitHub page, #ruby-matrix-sdk:kittenface.studio.

Opsdroid big updates, with focus on Matrix

Cadair:

Opsdroid 0.15 has been released, with a lot of matrix focused updates. The biggest of which is support for sending and receiving images and files. There have also been a bunch of bug fixes such as clean exit of the matrix connector and correct handling of events which are not parsed. There are also a bunch of other not matrix specific changes like support for the awesome parse library for string matching. Read all about it in the release blog: https://medium.com/opsdroid/event-dispatching-simple-parsing-and-more-in-v0-15-3f721b8a6d6c

PK interfaces for ruby_olm

Willem:

This week I've been adding PK interfaces to cjhdev's Ruby bindings for Olm, in preparation of improving my Tchap proxy. The PK interfaces can be found in my fork of ruby_olm. Building the native extensions for the gem has had a major overhaul, so no pull request yet.

Dept of Ops

matrix-docker-ansible-deploy update

It's been a few weeks since we heard from Slavi about matrix-docker-ansible-deploy, but he's been working away on it:

We haven't shared any matrix-docker-ansible-deploy updates lately, but we've had lots of community contributions.

Most of it has been bug fixes and various internal improvements, but we've also landed a few large features. Here's what's most interesting lately:

Dept of Status of Matrix

jaywink, maintainer of https://the-federation.info, told us what we all know to be true: Matrix is great and is getting more popular:

Matrix (Synapse) jumps to second place in https://the-federation.info site, which lists servers of the federated social web. Help us map the true size of the Matrixverse by adding your server by going a https://the-federation.info/register/yourdomain.tld. Note, SRV and well-known lookups not yet working, so registration needs to happen with the Matrix server real domain (and port if any).

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

PS to people who would normally be reading this in their own RSS reader - I apologise, we'll get the full-article feed back up soon.

This Week in Matrix 2019-05-03

03.05.2019 00:00 — This Week in Matrix Ben Parsons

New matrix.org Security Disclosure Policy and moderation pages

Check out the Matrix Official Security Disclosure Policy, which also features a "Hall of Fame": https://matrix.org/security-disclosure-policy/

We also have an official moderation guide now at https://matrix.org/docs/guides/moderation

Servers

Synapse

Last week

Work progresses on reactions support, expect a more formal MSC rsn, but for check out https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md for more details. Aside from that we now have an API to send server notices, support is coming for blacklisting IP ranges for federation traffic and finally we published a security disclosure policy and hall of fame https://matrix.org/security-disclosure-policy/. We’ve also been tracking down some device management bugs that prevent e2e message decryption as well as fixing some security bugs.

Next week

More reactions work, device management bug hunting and server key validity support.

Crypto

  • Olm 3.1.2 bugfix release.
  • Pantalaimon: Initial SAS support through panctl http://webmshare.com/play/QeBY1
  • Pantalaimon: Support for sending out key requests.

Clients

There are some BIG (capital and bold!) client releases this week, let's take a look

Quaternion 0.0.9.4

Big release for Quaternion this week, following lots of work on libQMatrixClient. kitsune reports that:

Quaternion is now officially at version 0.0.9.4! Optional native scrollbar for the timeline, files uploading, initial support of matrix.to links (the foundation for future Matrix URIs), first complete translations, and much much more - the long list is here: https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4. Packagers are advised to take a look at the building and packaging section of the release notes: there are a few updates for you there.

Spectral

Continuing the QT-client theme, Black Hat has released a new version of Spectral to FlatHub, join #spectral:matrix.org for more:

A new version of Spectral is released on Flathub this week! The last release is half a year ago, and there are a lot of changes since then, including a better UI, bug fixes and performance improvements.

Changelog:

Increase minimum Qt version to 5.12.
Redesigned UI.
Emoji and username auto completion in text input.
Respect server-side notification settings.
Emoji picker.
Fix font size in HiDPI.
Improved reply UI/UX and rich reply UI.
Sending/receiving typing notifications.
Switch to hoedown for parsing markdown.
Display notification count.
Responsive UI.
Fix #2(Room/People separator issue).
Infer device name from system information.
Image caching.

And of course various performance improvements. For my account Spectral takes ~35MB RAM initially, compared to 45~50MB before.

Pattle new release

pattle screenshots

Wilko came to announce a new Pattle release, that's the Flutter client:

A new release of Pattle has been pushed to F-droid! Lots of different changes this release, including:

  • Viewing images!
  • Actual local echo (message is immediately placed in the timeline)
  • Sent state indicators are now shown next to the message time (clock for still being sent and a checkmark for sent)
  • Show member change events! (x has joined, left, invited, etc)
  • Thumbnails are now used for chat avatars, which should improve performance a bit
  • Other small fixes :)

Check out a video demo at here.

continuum

yuforia reports that:

This week in continuum:

  • Remove support for embedded webview and open external browsers when necessary instead. Many users actually prefer it this way. And dependency on a fairly large native module is gone.
  • Improvements on the emoji input. Removed some style classes and tweaked some sizes to make the appearance more compact and flat. https://matrix.org/_matrix/media/v1/download/matrix.org/PvFFPAvoDhiHghsyeJnWVyAK

Riot Web

Initial UI work on reactions and editing, nothing useable yet though.

Riot iOS

  • Release of 0.8.5 :
    • Grouped notifications
    • Interactive device verification (by emoji)
    • WebRTC and Jitsi libs updates
    • min iOS version is now 10 (Jitsi constraints)
  • Initial UI work on reactions, nothing useable yet though.

Riot Android

Benoit from the Riot team:

  • CI has been configured on Buildkite for the Android matrix sdk, riot and riotx.
  • The Android sdk can now be integrate as a grate dependency via Jitpack.
  • Riot 0.9.1 has been released with sas feature included! Device verification is easier with riot web and riot Android users, soon with riot ios users. Will be on production channel on Monday.
  • We have finally pushed the security fix on GH.
  • Also working on the crypto modularization to integrate it on RiotX.
  • We will concentrate our effort on RiotX now

RiotX (Android)

  • Working on reactions

Bridges

matrix-appservice-discord searching for a new maintainer

Sorunome reports that:

We (matrix-appservice-discord) are looking for a new maintainer!

What are we looking for in a maintainer?
You wouldn't have to be super active, however a few minutes per day would be greatly appreciated. You'd be responsible of reviewing PRs! Because of this not being afraid of Typescript and not being afraid of Discord is required - no need to be at pro-level!

So we are basically looking for someone who can help us look over PRs and maybe do some themself. If you think you are interested, please message us in our matrix room!

Bridging Facebook Messenger

tulir:

I made a new Facebook Messenger bridge: https://github.com/tulir/mautrix-facebook / #facebook:maunium.net. Currently the main difference to matrix-puppet-facebook is multi-user support like my WhatsApp and Telegram bridges. The bridge is Python and the code structure is similar to mautrix-telegram, so I'll probably eventually create a generic bridge library out of the common parts.

SDKs and Frameworks

Ruby SDK

Ananace reports that:

Working on the Ruby SDK again, planning to try and get it to the point where I feel comfortable calling it a provisionary 1.0 release. I want to propose additions to various software using it after all, and that tends to look better if it's 1.0 - or close. 😃

That's all I know

That's all for this week folks, come chat in #twim:matrix.org for more, or to share what you've been working on.

PS this interesting-looking project is not ready for public eyes on it yet, so please refrain from checking out the code and discussing with the author in #tangent:matrix.org

This Week in Matrix 2019-04-05

05.04.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live S3E20 FluffyChat creator Krille on Matrix, Ubuntu Touch and Matrix-for-Healthcare

Synapse, the road to 1.0

Neil, Synapse overlord:

Last week we carried on with Synapse 1.0 work, in particular server key signing validity, a config option to verify federation certificates to support MSC1711 and support for 3PID unbinding APIs (MSC1915). Outside of that we've been thinking about how to improve room upgrades for private rooms and landed the preparatory work for a refactor of the room directory.

Coming up next, we'll continue to bash out 1.0 blockers, Hawkowl has started work on optimising for small hosted homeservers, and anoa will be working on the new super fast room directory. Finally Erik has started work on aggregations support so clients will be able to offer things like edits and reactions ?

https://www.arewereadyyet.com/ is now just shy of 64%, keep going.

Dendrite

Dockerfile for sytest running against Dendrite approved. Close to being able to run Dendrite against sytest. Also using sytest's new test white/blacklist functionality to include a list of tests that Dendrite is known to pass in the repo. When people make new PRs that allow Dendrite to pass new tests, they can also append the names of the tests to the testfile to help automatically track Dendrite's improving progress. Look forward to seeing further progress post Synapse 1.0.

libQMatrixClient 0.5.1 released,

kitsune:

libQMatrixClient 0.5.1 is out! This is a minor release with bugfixes and small improvements, a base for Quaternion 0.0.9.4, RC of which is coming this weekend. Full release notes here

and to follow up:

Quaternion 0.0.9.4 Release Candidate is available for all those who don't need a "release" seal of approval to use applications. Get out, grab it, report bugs that could still sneak in: https://github.com/QMatrixClient/Quaternion/releases/tag/0.0.9.4-rc. A separate call out to translators - it's a great moment to teach Quaternion a few more phrases in your language!

.NET Core Synchrotron

Half-Shot:

This weekend I took a brief pause from doing matrix work, and then went back into it by finishing the feature set for the .NET Core Synchrotron. It's "feature complete" meaning all specced features of sync are in this branch, excluding legacy endpoints. There are a few bugs logged against it and it's really only useful as a super early test, while I fix some of the p1 bugs.

The federation sender continues to be reliable and stable, and we are prepping for the release of synapse 0.99.3 which made a few changes to the replication stream. For more info, please see https://github.com/turt2live/synapse-netcore-workers

Pattle has now moved to Flutter

Wilko has officially discontinued the previous version of Pattle, and is focused on their Flutter SDK and new version of Pattle based on it:

After some silence here but a lot of development, Pattle has now moved to Flutter. The new app is available in the same F-droid repository, you can just update. Note that you will have to log in again. If there are issues with updating, try removing the old app and installing the new one.

Also note that this version is still very basic and does not have all features of the old Pattle unfortunately. The reason that I chose to already replace it on the repo is that the old app will not receive updates anymore.

The current features are logging in and an overview of all chats. What is new is that data is now stored locally, so you won't have to do an initial sync everytime you open the app (which was the case with old app). What's also new is that I've decided to use more red, because.. I like red.

There is still a lot to do! Please notify me of anything that you think is missing, even though some things may be obvious (sorting chats based on date, chat avatars), some may not be as obvious to me!

If you'd like to contribute, the new repo is here. Note that many contributions will probably start at the SDK level. Pattle uses my own Dart SDK, which you can find here.

There is at the moment a very specific bug in Flutter, where on Android 7.1 with release builds, the app crashes when building a list widget. If you use Android 7.1 (like me) and you crash after logging in, that's the reason. It seems I can't do anything about it, sorry.

libaqueous (Matrix Dart SDK) and Aqueous client

Black Hat is continuing work on libaqueous, a Matrix Dart SDK.

Aqueous now comes with room categories and history messages support. Also, a lot of code refactoring is going on to change the backend store from plain json file to sqlite, which should improve the performance a lot. The room is at #libaqueous:encom.eu.org

Riot Web

  • Working towards bringing breadcrumbs out of labs
  • Adding image preview to file upload UX
  • Stability fixes for timeline
  • Defending against issues introduced when using Riot Web on a machine which is running out of disk space

Riot iOS

  • Grouped notifications are coming! We have added some logs to track why the notification setting is sometimes disables (#2348).
  • SAS device verification is still in progress but it should be released next week.

Riot Android

  • Three releases this week, to fix several bugs with the new EventStreamServiceX, and to fix issue with the Jitsi conference call (Riot.im 0.8.29). FDroid users should receive the upgrade soon.
  • Users are happy with the new notifications!
  • Valere is still working on SAS, we are reaching the end :).

RiotX (Android)

  • It's now possible to signout from RiotX.
  • The whole setting screen has been imported from Riot, as well as the Themes and some other small features (launcher icon, etc.).
  • Benoit is working on room creation, sdk side, and François is working on image upload.
  • We should start to integrate new design from Nad next week.

continuum (JavaFX desktop client)

yuforia has continued work on their client:

in continuum, moving storage of messages from plain text files to a database, simplifying code and improving performance

neo

f0x:

Neo now has .well-known implemented for login :D
video showcasing the different outcomes:

Synapse K8s images

Ananace has updated his k8s images for Synapse 0.99.3, and has been continuing work on other parts of the project:

I'll be writing a Helm chart for 1.0 as well, just haven't had time to do so yet.
I need to update all the references to TLS as well, as that's supposed to be left to kube-lego or cert-manager for a modern install

Federation Tester

Brendan and anoa have been working on the Federation Tester:

Following up on last week's effort, a number of issues on the Matrix federation tester, both on the backend and the frontend side, have been fixed, including fixing certificate validity checks, not following CNAME records in SRV records, fixing display of the SRV lookup in the UI, preventing some crashes, and a few more.

All outstanding issues on both the federation tester's backend and its frontend that could have preventing people to test efficiently how their server is performing in the context of Synapse's 1.0 release have now been fixed and deployed on https://matrix.org/federationtester/.

Synapse and Riot bounties

Aaron Raimist reports:

A few bounties have been added to Synapse and Riot recently to encourage community members to work on those projects. Although they aren't large enough to actually pay for development, I believe they can serve as a small push to help an already interested developer justify spending some time working on these projects.

Still more

pantalaimon has been seen in the wild, even appearing to run on Android. We'll get a little closer to the project and see how it's going in a future edition.

jj announced a new Python SDK for Matrix:

new, alpha quality, matrix python client for asyncio and with support for e2e encryption: https://github.com/SFTtech/aiomatrix
Polishing is needed but the basics do work already :)

L'autre from Calculate Linux announced that the project is now using Matrix for their communications, you can find their rooms in their newly created community: +list:calculate-linux.org.

George Lucas György Lukács Georg Lukas brutally skewered Matrix with an April Fool's post suggesting that yaxim, an XMPP client for Android, will begin to support Matrix.

Matrix listed as one of the "Top Ten Tools" for Open Science practitioners

the whole point of Matrix is that its a protocol which many different suppliers can use so you can avoid nasty lock ins

That is certainly an advantage!

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-03-29

29.03.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live

Tom & Matthew talk through the newly published Riot/Web roadmap! Be sure to read Tom's blog post which gets into his thinking for the roadmap too.

Matrix.org homeserver notice

The matrix.org homeserver will be down for essential database maintenance between 12:00 and 12:30 UTC on 2019-04-01

Synapse

Neil, Synapse overseer, reports on the acceleration towards 1.0:

We have much improved sytest support for Synapse worker mode, Hawkowl landed a brand new super fast super shiny user directory implementation, Brendan fixed a bunch of niggles in the federation tester and we finally got to the bottom of our sync caching bug that obscured accepting invites (thanks richvdh for sticking with it). Erik solved our presence spamming bug and anoa fixed some LDAP auth bugs and submitted a PR for certificate checking - one of our final blockers for Synapse 1.0. For all the latest checkout out our latest release candidate 0.99.3rc1.
Next week, we'll ship 0.99.3, we'll be looking at server key validity periods, adding a 3PID unbind API and starting work on tuning low powered Synapse installations.
https://www.arewereadyyet.com/ is still rising so keep banging to everyone you know that they ensure their federation certificates are valid.

Pantalaimon

poljar gave this update on his new project Pantalaimon:

Pantalaimon is a new project that acts as a reverse proxy for clients to connect to. Once a client is connected Pantalaimon handles end to end encryption for the client transparently.
The project is only a week old but already at a working prototype phase. A demo can be found here: http://webmshare.com/play/Qn4wg

This is a huge gain! Use of this project, as you will see in the video, permits any Matrix client to support End-to-End encryption of messages, by handling encryption/decryption in a daemon rather than in the client.

Watch the video, and you'll see gomuks, which does not support encryption, chatting in an encrypted room. Also, go chat in #pantalaimon:matrix.org and get involved!

Construct

Report from the Construct team:

The matrix Construct server has made significant progress this week implementing the 1.0 specification and is very close to a 1.0 release! Special thanks to our star tester Yan Minari and expert Matrix consultants Tulir and Max and C++ developers Jason of Zemos and Mujx of nheko for all their hard work to make this happen. The Construct now fully supports IPv6 and is ready to participate in fully end-to-to-end encrypted ipv6 networks like #yggdrasil:matrix.org and #cjdns:matrix.org.
This week also saw additions for .well-known support, m.fully_read and even DNS caching inside a matrix room shared between servers (which is really cool if you ask me).

I'd like to recognize our testers for their invaluable contributions this week, only a fraction of which are documented here: https://github.com/matrix-construct/construct/issues leading to the 1.0 release.

The Construct is written in C++ for maximum performance and scalability. It is the first fully federating server after the Synapse reference implementation. Your contributions in code and participation are essential to bring Construct to its upcoming release; get involved at https://github.com/matrix-construct/construct and in #zemos-test:matrix.org.

Riot Web

From the team:

We've been upgrading and optimising our Jitsi instance so people should see more reliable video conference calls, especially if they avoid connecting from Firefox over poor connections.
We've been squashing scroll jumps (where the timeline pops out of position unexpectedly due to images loading, etc.). We've come up with a radical reimplementation of the timeline (which should be imperceptible, except it doesn't jump) - try it out on https://riot.im/develop now.

Bruno, who has been working on scroll functional for Riot deserves a call-out - scrolling in new Riot web works great, and he may now be the most qualified dev on scroll: anchor outside of Mozilla or Google…

You can now get all Riot updates from #riot-web-announcements:matrix.org, the official room of Riot web announcements! You can especially get this update, which was also featured on Twitter:

Attention Riot Web Admins! We reset Scalar tokens to address a potential security vuln. with some clients - if you run your own Riot instance please upgrade to at least v1.0.4 to keep using integrations (widgets, sticker picker, any bots and bridges configured through Scalar).

— Riot.im (@RiotChat) March 27, 2019

Please upgrade your Riot web instances!

Additionally, Notkea has packaged Riot desktop for NixOS.

Riot iOS

Another case of UTD (https://github.com/vector-im/riot-ios/issues/2320) has been fixed. Some logs have been added to track push notifications that disabled themselves. SAS verification implementation is still in progress.

UTD = "Unable to Decrypt", messages as seen in Riot

Riot Android

  • Rework of EventStreamService, to fix many issues (crash) reported by users. The feature is available on the develop branch.
  • Also we are trying to upgrade Jitsi library, to fix other errors reported by users.
  • SAS verification implementation is still in progress.

Also, you may have already seen the use of Android 9-style notifications, featuring "Mark as read" + "Quick reply" buttons. This addition has started to make Riot Android my client of choice for burning through notifying rooms.

RiotX (Android)

  • Phase 1 started!
  • Backporting RageShake feature, with better handshake detection.
  • We are still fighting bug on the timeline rendering.

nheko packaging

@adridg:matrix.org:

Quick note that nheko (v 0.6.3) is now packaged for FreeBSD as well. The C++ code was fine (we use Clang, that does trip up some people) but I have Opinions about the CMake code (in particular that the find code for nlohmann/json.hpp, lmdb++.h and tweeny.h could use a lot of work -- if I feel perky I may come up with a PR). Thanks for the good work!

Dart SDKs

Black Hat has been using Dart and Flutter this week, and is making progress with an SDK and reference client:

I am trying to use libaqueous(Matrix Dart SDK) to create a cross-platform matrix client for Android and iOS.
Almost nothing works except Already a significant number of client features are available: login/logout, room list, basic timeline and message posting

Flutter is quite good for rapidly building mobile apps. ? Strong-typed json serialization/deserialization in Dart is a bit difficult at first, but I managed to solve that.
the repo is here, the SDK is here, and the room for discussion is at #libaqueous:encom.eu.org

Debug build apk from Gitlab CI is here

Notes on manually upgrading rooms, from TravisR

TravisR has written a brief guide to manually upgrading rooms:

https://gist.github.com/turt2live/a99c8e794d6115d4ddfaadb72aabf063

Note that you generally won't need to do this.

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2019-03-22

22.03.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live with Kitsune

I chatted with Kitsune, maintainer of libQMatrixClient, Quaternion and Spec Core Team member. We talked about the history and future of these projects, platform preferences, the importance of decentralisation and more.

Synapse and the road to 1.0

Neil, Synapse-dev wrangler #1:

Huge thanks to everyone who has helped increase the number of ‘1.0 ready' synapse installs. If you don't know what this means, see our blog. https://arewereadyyet.com reports > 60% adoption on a per server basis, and high 90s on a per user basis. We are now really close to being able to ship a 1.0 release candidate and start the 2 week countdown before releasing 1.0 proper.

This week we have focussed on performance, richvdh has been working on batching of outgoing read receipts and hawkowl shipped a much more performant implementation of user search. Erik has been putting the state compressor through its paces, he saw one room compress down to 1% of its original size. Andrew has been focusing on ensuring spec compliance on various Synapse endpoints and is currently looking at some bugs in the federation tester.

NixOS-Synapse setup

Jonas Schürmann shared his config for Synapse on NixOS:

I open sourced my NixOS-Synapse setup: https://gitlab.com/MazeChaZer/nixops-servers/tree/master/matrix

#NixOS:matrix.org for more.

Pattle, lots of progress and Dart SDK planned

Lots of news from Pattle, the project aiming to create clients for multiple mobile platforms. All quotes below from Wilko.

Pattle for Android now has an F-droid repository: https://fdroid.pattle.im/

It's the most up to date version straight from the pipeline, so not necessarily stable.

You can now scroll up and load history

As part of the project, Wilko also announced the intention to create a Dart SDK:

I'm currently working on a Matrix SDK for Dart, which will be used for the Pattle rewrite in Flutter. The reason for this is outlined here. To summarize: My goal for Pattle is to release for not only Android but also iOS and web, with a single code base. Other reasons include that Android native development is just bad, and the fact that I'm not too happy with the official Matrix Android SDK design and documentation. I will maintain and also add some features to the current version of Pattle, to try things out. The Flutter version will replace the native one once the features are in sync.

Riot iOS

We've released a hotfix release 0.8.4 on App Store that fixes following issues:

  • Unable to open a file attachment of a room message.
  • Unable to share a file with whitespace in filename.
We are working on iOS 12 notifications features.

Riot Android

  • Improving new notification system
  • Implementing SAS verification

RiotX (Android)

  • Setup CI
  • Finishing Phase 0

Dimension sticker packs

TravisR has introduced sticker packs for Dimension:

Dimension now has beta support for custom sticker packs. To create a sticker pack:

  1. Start a conversation with @stickers:t2bot.io
  2. Say !stickers newpack and follow the prompts.
  3. Share the URL with your friends.
To add the sticker pack to your sticker picker:
  1. Make sure you're using Dimension as your integration manager.
    • Not sure if you are? Click the 4 squares in the top right of the room in Riot - if the dialog is titled "Dimension", you're all set :)
    • If you aren't, check out https://dimension.t2bot.io
  2. Click on the smiley face to the right of where you type messages then the Edit button in the top right.
  3. Paste the URL of the sticker pack into the box and click "Add Stickerpack".
  4. Start using your new stickers.

These instructions are also available at https://github.com/turt2live/matrix-dimension/blob/master/docs/custom_stickerpacks.md as is the admin/operator guide for running your own sticker bot (you're not stuck with using t2bot.io unless you want to be).
Custom sticker packs are still beta while the proposals to share this with the wider Matrix ecosystem are still works in progress. This serves as a proof of concept to see how crazy of an idea it is to have stickerpacks-as-rooms (yes, they're just plain Matrix rooms under the hood) and what needs ironing out before moving ahead with the MSC.

matrix-notification-profile-manager

Brendan has created a notification profile manager:

Over the past few weeks, I grew a bit fed up of always having to turn on and off every notification rule each time I'm having a slight change in what I'm working on or depending on what mood I was in (e.g. want to focus only on work-related stuff and nothing else, don't want to hear about work at all, somewhere in the middle, etc.), so I built a notification profile manager for Matrix. It's available both as a command line interface or a Go package in case people want to build on top of it.

It allows one to take a snapshot of their current notifications settings and save that as a profile, so that this profile can be applied later. It also allows one to delete a profile or list the existing profiles (more features to be added as time goes by). In order to make the whole thing interoperable with other projects building on top of the Go package, it also uses the user's account data on the user's Matrix homeserver to store profiles.

neo v4: iris

F0x has recommenced development on the Matrix client Neo:

After discussion following https://cyberia.social/@foks/101785513826000032 I've resumed development on Neo. Suggestions are very much welcomed on the pad and mastodon thread
I'm implementing components one by one now, with just mocked events. Actual Matrix integration will come when the gui components are ready.

Neo is now partly integrated with matrix-js-sdk because I grew tired of having to write my own mock events. There's a basic authentication flow, with 0 error handling, and parsing of m.text and m.image events

Check out https://git.lain.haus/f0x/iris for the source code and see a working version at https://neo.lain.haus/neo

f0x also said:

it would be much appreciated to get some feedback on how I implemented matrix-js-sdk, had to do some weird stuff to make React update

I'll take a look but would love anyone with more experience of the SDK to get in touch with the f-man.

solari[z|s]ed wallpaper

ma1uta shared this awesome Matrix wallpaper, created by @kolonsky:092918.xyz via https://linux.pictures/projects/solarized-dark-wallpaper

mautrix-telegram 0.5.0 released

tulir is up again with his Telegram bridge:

mautrix-telegram 0.5.0 was released after I finally fixed the bug that was causing the bridge database to lock up. It turned out to be a single line of ORM usage that I had missed while converting everything to use SQLAlchemy Core. The full release notes are at https://github.com/tulir/mautrix-telegram/releases/tag/v0.5.0. I also released v0.5.1 to fix a bug that made the DBMS migration script not work and Python 3.5 compatibility. I wouldn't recommend using Python 3.5 though, I'm going to drop support for it some time after Debian 10 is released

Shevski mentions Matrix on BBC Radio 4

Shevski from the #redecentralize organisation was interviewed on Radio 4, and mentioned Matrix:

Yesterday on @BBCRadio4 I talked about the problems of centralisation, how to regulate big tech, personal data stores and @redecentralize! You can listen online here: https://t.co/xGHK812lYa with #Web30 section starting 1:50 mins in ? (I'm from 7mins ish) #redecentralize pic.twitter.com/m0dazBH7Dk

— Irina (Ira) Bolychevsky (@shevski) March 22, 2019

Extras

Scylla has been receiving regular updates, no release to report but the project keeps going. #scylla:riot.danilafe.com

This React Native client is not announced so don't look at it

My pal Doug shared his frustration with the broader state of the chat ecosystem after reading that teens now use Google Docs for their chat needs (and not the chat feature, the document itself!)

I love that you've got Amazon with their Alexa messaging, Apple in their own bubble with iMessage, Facebook doing chat 3-ways and Google trying 50 ways to do chat. And that's before you even get into things like Slack, Discord, Telegram, Riot, Line, WeChat etc etc. And then the current hot way to chat is in a document... I mean, how much money is being invested in trying to create the perfect chat solution?

For the record, we were chatting over Matrix…

That's all I know

That's the news, if you have something to say, or something to add, then you should go to #twim:matrix.org and share it. If you have other projects to discuss, come share them. If you'd prefer to come quietly, my door is always open: @benpa:matrix.org.

See you here next week, and on Matrix!

This Week in Matrix 2019-03-15

15.03.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live S3E17: Hello Ryan

This week you're stuck with me, but I'm chatting to Ryan, who works on Riot web. Having previously worked at Mozilla, Ryan has a LOT of interesting things to say about Firefox, the browser market, the importance of decentralisation, Matrix being GREAT, and more.

arewereadyyet.com: Matrix 1.0-ready Federation

https://arewereadyyet.com is not just an amazing domain we somehow managed to buy, it's also the first place to look for progress towards full Matrix 1.0 readiness. Read more details at https://matrix.org/blog/2019/03/15/matrix-1-0-https-arewereadyyet-com/.

Spec

Lots of activity but most notably MSC 1915 (a blocker for Matrix 1.0) is making progress. https://github.com/matrix-org/matrix-doc/pull/1915

Synapse . . . 1.0?

It's all about 1.0 for the Synapse gang this week. This means performance improvements across the board in the form of read receipt batching, user directory (room directory coming soon!) and rate limiting on log in and registration APIs.

Brendan shipped the low bandwidth CoAP proxy we demo'd at FOSDEM

As well as a bunch of spec implementation projects to ensure that Synapse (and Sydent) are ready for Synapse 1.0.

Synapse workers projects

Turn-of-phrase of the week from Half-Shot ("make it more performant and less crashy"):

synapse-netcore-workers is progressing as strongly as ever. This week has mainly been supporting a couple of users trying to use the fed sender, and also trying to make it more performant and less crashy. I've been using it solidly for two weeks now, and by and large it's been working nicely :)

Black Hat has been working on Cortex, a similar project in Rust:

Support for replication protocol in Cortex is mostly complete. A federation sender worker implementation is being worked on. If anyone is interested or wants to contribute, please go to #cortex:encom.eu.org

Construct

Lots of progress this week. I'd like to give a special thanks to Yan Minari for another great week of testing, bugfixes and feature requests.

  • We implemented features related to room directory lists, reporting content, ignoring users, VoIP turnServer, prev_content in state events.
  • Improving SSL: allowing configurable lists of ciphers, and sending/receiving SNI.
  • At the lower level: adding support for Linux AIO features that are present in newer kernels, giving a nice performance boost.

For more Construct news watch the repo or join #zemos-test:matrix.org

New Client for Android: Pattle

Wilko announced Pattle, a Matrix client for Android:

Hey all, I've been working on my Matrix Android app, Pattle! The goal of Pattle is to be an easy to use app for Matrix, with it's design inspired by popular apps such as WhatsApp and Telegram. Development happens here, and contributions are encouraged! The app is not currently suited for daily use, but some functionality is there, such as registering, logging in and viewing chats. Currently it's an Android only app using the official Matrix Android SDK, but the plan is to support iOS and web too, in the future. There's also a sort of design document available, stating how Pattle differs from standard Matrix apps and what it's goals are. The intent of the design document is to make development easier later on for other platforms

Quaternion 0.0.9.4 beta 2 available

kitsune:

Quaternion 0.0.9.4 beta 2 (too many numbers? That too shall pass) is out, with bugfixes and translation updates. Notably, Quaternion won't crash on upgraded rooms in some cases, and won't cry in #gsoc:matrix.org and other v3 rooms. Translators are still strongly encouraged to push forward - due to all the features and fixes, there are many untranslated strings across the board! Also, some bugfixes are still in order before we can call the release RC, and some of them are really easy - so if you'd like to contribute, it's a great time to start!

Riot Web

  • Preparing for 1.0.4 release with lots of small polish fixes
  • Planning our roadmap for the next few quarters

Riot iOS

iOS released 2 times. Last release was to fix an issue with invalid scalar token. Review of one PR from the community for iOS10 notifications. Started implementing device verification with emoji.

Riot Android

We've released v0.8.25 on Thursday, containing refresh of invalid scalar token, and some bugfixes. Links on m.notice messages are now clickable again.
Started implementing device verification with emoji.

RiotX (Android)

  • We started to setup build tools and CI configuration.
  • The timeline scroll issues are addressed.

FluffyChat 11 released

Ubuntu Touch fans rejoiced this week as a new version of FluffyChat was made available: https://open-store.io/app/fluffychat.christianpauly

  • Improved stability and performance
  • New translations - thanks to all translators
  • Design improvements to make FluffyChat look more like a common Ubuntu Touch app
  • Better tablet support
  • Lots of Bugfixes which caused a critical error
  • Fixed the automatic scrolling up to the last seen message
  • Fixed disabling account

miniVector v0.8.25

miniVector is a minified Android Matrix client derived from Riot Android. v0.8.25 keeps it up to date with Riot Android.

Matrix Ruby SDK

Ananace is returning his attention to the Matrix Ruby SDK:

I just realized that I haven't had lazy loading activated by default in the Ruby SDK, despite having had lazy loading code in place since ages back, so now that's going to be the default value going forward.

Further:

I started hacking - just a couple of hours or so ago - on a notification sender for The Foreman, a server orchestration system. So it can forward notifications to Matrix. https://github.com/ananace/foreman_notification_send

If you're using, or considering using, The Foreman for orchestration this may be very useful.

maubot

tulir:

maubot plugins can now add their own endpoints to the main maubot webserver. The pingstat plugin I announced last week uses this feature for the leaderboard widget: https://maubot.xyz/_matrix/maubot/plugin/pingstat/stats?room_id=!MbRaSiMIRhhxDtJENL:maunium.net

matrix-appservice-bridge 1.8.0, matrix-appservice-irc 0.12.0-rc1: room upgrades and more

Half-Shot:

matrix-appservice-bridge got a 1.8.0 release last night, featuring automatic handling of room upgrades for all your room upgrade needs. Providing your bridge uses the RoomStore as designed, it's literally a few lines to enable :). Changelog here

What is this? A matrix-appservice-irc release? No, it's a release candidate. Announcing that 0.12.0-rc1 is now out and about for folks to play with. More IRC updates to come in the future :)

mautrix-whatsapp

tulir:

mautrix-whatsapp now has support for postgres databases thanks to a pull request by @Rennerdo30

mautrix-telegram

tulir:

mautrix-telegram got a pull request with a pytest setup and a few unit tests by @V02460. I haven't merged that one yet, but will soon.

matrix-docker-ansible-deploy supports Dimension

This is really neat, and a shout-out that these playbooks are my preferred way to install Synapse and other components. Slavi:

Thanks to NullIsNot0, matrix-docker-ansible-deploy can now (optionally) install the Dimension Integration Manager.
The playbook can now also assist with serving the base domain from the Matrix server, thus making it easier for some folks to set up well-known Server-Delegation.

Self-hosting guide for NixOS

Florian:

I wrote a Matrix self-hosting guide for the NixOS operating system: Check its progress and give it a test if you're a fellow NixOS user!

banhammer: new bot for applying a ban policy

jcgruenhage reports that:

I wrote a small bot that takes a kick/ban policy from room state from all rooms it's a member of and tries to enact that policy. In practice that means it applies a regex to all MXIDs and tries to kick/ban them based on that. It's been a request of TravisR , source code is available at https://gitlab.com/jcgruenhage/banhammer, documentation is still lacking but will hopefully soon be added

matrix-wug support for Navajo script

Continuing his theme of Native American languages, Dandellion added Navajo script to matrix-wug.

FreedomBox Tutorial: Setting Up a Chat Server with Matrix and Riot

It's been possible for some time to set up a Matrix server with FreedomBox, and they just recently released a video tutorial showing the process.

Around the Internets

There were a whole lot of outages for the big names this week - good time to think about self-hosting?

That's all I know

So that's all I have to say! I hope you enjoyed this edition of This Week in Matrix, and whether you did or you didn't, I'd love too hear from you in #twim:matrix.org. If you have Matrix news to share, that's the place to come and do so!

This Week in Matrix 2019-03-08

08.03.2019 00:00 — This Week in Matrix Ben Parsons

AreWeReadyYet.com?

From Neil of the Synapse-team

Folks, in the run up to Synapse 1.0, if you are running your own homeserver now would be an excellent time to check that your TLS certificates are up to date. Point your server name at https://matrix.org/federationtester/ and if there are errors check our handy FAQ on how to fix it. If you do not have valid TLS certificates Synapse 1.0 will refuse to federate with you.

benpa has put together a federation checker to quantify how many homeservers are 1.0 ready - https://www.arewereadyyet.com/ - It currently stands at 50.5% let's try and get that to 60% over the weekend.

Aside from all that, the team have been working on preparing for Synapse 1.0, you can track our progress here. We promise not to just land 1.0 out of the blue - we'll give everyone a 2 week warning to give stragglers a chance to get their certificates in order.

And this week we have Neil and Erik talking about this in more detail on Matrix Live

ma1uta has been working on Jeon - Java interfaces to the various Matrix APIs - and is now getting ready to start work on a homeserver. He was previously asking for a name for this project, but might now have settled on "JeonServer".

First Release Candidate of the Jeon Project with upcoming Client-Server API 0.5, Server-Server API 0.1.1, Application API 0.1, Identity API 0.2 and Push API 0.1. Also the RC of the jmsdk has been prepared with Java Matrix Client for Client-Server API 0.5. Changes in the C2S: Added the m.push_rules event, removed presence list methods and other minor fixes. Added S2S API of the 0.1.1 version. I prepared a very simple page https://ma1uta.github.io/ with links to the swagger schemas (json and yaml) for all Matrix API which generated from the Jeon code.

Chat more in #jeon:matrix.org or #jeon:ru-matrix.org.

Construct updates

There's a lot of progress, a few endpoints and features have been implemented this week such as Room Tags and all of the spec features for /createRoom. Most of the progress has been with testing and bugfixes thanks to Yan Minari, and tulir and mujx. We've fixed several interactions with synapse such as invite accept/deny and synapse's ability to join and leave construct created rooms without any issues. Lastly and most important, we've generated an official issues list thanks again to our star tester Yan Minari available here https://github.com/matrix-construct/construct/issues

For more new Construct news watch the repo or join #zemos-test:matrix.org

OpenSAPS: Open Slack API Server

pztrn has created a new mechanism for relaying apps that use Slack webhooks into Matrix:

To everyone who wonders how to connect his application to Matrix (at least for notifications of some kind) - use OpenSAPS! It just reached v0.1.0. OpenSAPS stands for Open Slack API Server and able to retransmit messages from applications (like Gitlab or everything that can send data to Slack) to somewhere else. Right now these "somewhere else" is a Telegram (with HTTP proxy support) and Matrix! Written in Golang to ensure minimal memory footprint. Take a look at https://gitlab.com/pztrn/opensaps Tested with Gitlab and Gitea but should work with almost any service. Join #opensaps:pztrn.name to talk with developers or get help. BTW, there is OpenSAPS instance in our room that transmits everything from gitlab.com into room! (almost) immediately after 0.1.0 comes 0.1.1, with fixed URLs parsing and fixed inability to login into servers which use .well-known for delegation. It should work [with other webhooks]. If something strange happens there is also a possibility to write own parser to make everything work :)‚ Tested with Gitlab and Gitea ATM. Share application names that work, I'll start to make a list of them. :D

matrix-puppet-bridge: matrix-puppet-slack and matrix-puppet-hangouts updates

tom reports from #matrix-puppet-bridge:matrix.org:

MiniVector update

bubu let us know about MiniVector updates

Minivector, a minimalistic fork of riot-android had a new release last week, getting rid of a few more unused dependencies. This brings the final apk size down to 13mb vs riot android's 25mb. This work was done by @hrjet:matrix.org. The project room is here: #miniVectorAndroid:matrix.org

matrix-docker-ansible-deploy, now with Discord and email templates

The volume of discussion about installing/configuring Synapse and other Matrix-related components is like a subculture in itself. Standing tall within this is Slavi's matrix-docker-ansible-deploy collection of Ansible playbooks. They're a great way to quickly and reliably get a Synapse instance running.

Thanks to Lionstiger, matrix-docker-ansible-deploy now supports Discord bridging via matrix-appservice-discord.
Those wishing to give it a try can refer to the Setting up Appservice Discord bridging documentation page.

Thanks to Sylvia van Os, matrix-docker-ansible-deploy now has the Ability to customize mxisd's email templates

Quaternion 0.0.9.4 beta

kitsune:

between chasing bugs in Quaternion 0.0.9.4 beta (translators, your help is hugely needed to catch up with new and updated strings) there happens almost literal bikeshedding in #qmatrixclient:matrix.org, under an excuse of discussing The Universal Algorithm to Colour Usernames. Join the fun!

Bifrost bridge gatewaying

Half-Shot:

Bifrost is now starting to comfortably support gatewaying. For those that don't know, gateways allow a remote user to participate in the matrix network without prior bridging, it's very fancy. The latest changes are that XMPP clients can now ask for the public room list by querying the bridge component. There is a video on this using the Yaxim XMPP client on Android (Credit to Ge0rG). Come chat with us in #bifrost:half-shot.uk

You can check out the video of the bridge in operation here:

Spectral development restart

Black Hat:

Spectral development now continues after a short break. The new "material design" has been merged into master, along with a few bug fixes. I plan to work on Kirigami port in the following two weeks.

Fractal

Alexandre Franke reports on Fractal:

Since our last update about Fractal we landed typing notifications, found out we actually weren't logging anything, recovered the ability to log, and restored spellcheck support.
We are also now tagging uploaded audio files as such and adding thumbnails to image files, courtesy of our Outreachy intern, and we fixed a bunch of other things.

#ping:maunium.net

tulir making crazy maubots this week:

I made a room for !pinging echo maubots: #ping:maunium.net. The room has a bunch of echo bots, currently on maunium.net, c.mau.dev and matrix.vgorcum.com. It also has a new maubot plugin called pingstat, which collects the pong data and makes a leaderboard website. The website is linked to the room as a widget.

Check out instructions to get your own maubots setup here: https://github.com/maubot/maubot/wiki/Setup

synapse-netcore-workers

Half-Shot:

Not much news to report on the netcore-workers other than it's maturing and we have nice things now like logging, metrics and a docker image you can run at home. I'm running the federation sender fulltime on half-shot.uk to dogfood it and will announce when I think it's good for general consumption :)

Related: Black Hat is investigating a similar project in Rust. Anyone interested in that please do go chat, and take a look at the repo they've created.

matrix-wug, IPA rendering bot, gets support for cherokee

Dandellion on matrix-wug:

This is "script" or written language has a very interesting story behind it, where the creator of it actually couldn't read and write. Regardless, he wanted to write down his language, and developed his own writing system.
The characters look a lot like latin characters because he tried to imitate the characters of a bible. Just a fun history lesson!

weechat-matrix

Paul created a dockerfile to install weechat-matrix:

since weechat-matrix is a bit involved to install, I create a dockerfile that takes care of it: https://github.com/poljar/weechat-matrix/pull/60 . And people allergic to docker can look inside to check the steps (just reading the readme doesn't give a full picture)

modular.im

Modular.im is a Matrix-as-a-SaaS offering. It's suitable for users who want the benefits of having their own Matrix homeserver, but don't want to host and run one.

There are some new announcements this week:

Today we are pleased to announce that you can now customise your Modular hosted Riot at the touch of a button, through the Modular host admin interface. Better yet, this is available to all Modular customers at no additional cost.
Today we are also launching a proof of concept for purchasing additional content via the Modular integration manager.
For the initial experiment we're offering a set of "snazzy", limited edition Matrix stickers for the princely sum of $0.50. These are digital versions of the Matrix and Riot hexagons that some of you may have seen in real life.

Still more!

decred.org are an organisation concerned with blockchain technology, and they also use Matrix for their communications! They now have a stickerpack available in Riot, so if you'd like to use their stickers you can add the pack and get going with blockchain-related memes.

If you have a stickerpack you'd like to see included, please let me know.

Celebrating the creation of a new homeserver instance at kde.org, Jonathan Riddell has written an article.

sortebill created #drums:matrix.org:

I've made a room for anyone interested in drums and percussion. Acoustic, Electronic, Played or Programmed, anything goes as long as it's rhytm related. The room is focused on both playing/programming drums and equipment.

There was a somewhat longstanding bug that affected a number of users: often manifesting as unexpected and frustrating "Unable to decrypt" messages - this has now been fixed, take a look at https://github.com/vector-im/riot-web/issues/6838

They think it's all over...

It is now! If you'd like to have your project included in this post, come chat to us in #twim:matrix.org!

Bridging Matrix with WhatsApp running on a VM

26.02.2019 00:00 — Tutorials Ben Parsons

This guide will live with the documentation at https://matrix.org/docs/guides/whatsapp-bridging-mautrix-whatsapp, but you can find the text below.


Matrix is:

an open standard for interoperable, decentralised, real-time communication.

In this article we'll benefit from all three of these attributes:

  • interoperable: we'll see how Matrix can be made to interact with WhatsApp
  • decentralised: you can perform this on your own server while still enjoying the benefits of being connected to the rest of the Matrix federation
  • real-time communication: we'll see how to send and receive messages in real-time

Install your homeserver and install mautrix-whatsapp, the WhatsApp bridge

Firstly, you need to have a Matrix homeserver installed. If you don't currently have one, take a look at the instructions at Installing Synapse, and also in the Synapse README.

Next, install mautrix-whatsapp by following the instructions at mautrix-whatsapp/wiki.

If you are starting from scratch, I suggest you take a look at matrix-docker-ansible-deploy, as this project will enable you to deploy Synapse, mautrix-whatsapp and other components easily.

For example, if you have an existing deployment using matrix-docker-ansible-deploy, you can add mautrix-whatsapp simply by adding the following line to your configuration file:

matrix_mautrix_whatsapp_enabled: true

... and re-running the setup:

ansible-playbook -i inventory/hosts setup.yml --tags=setup-all

Either way, you will soon have a functioning Matrix Synapse homeserver and mautrix-whatsapp installed with it. Next, we will set up an Android VM.

Set up an Android VM

The best way to run an Android Virtual Machine is to use the Android Studio tools from Google. First, install Android Studio, making sure to follow the post-install steps, as they will install additional tools we need, including AVD Manager.

Once installed, run AVD manager by choosing Tools -> AVD Manager from the menu.

Follow the steps to create a new virtual machine, in this example I have a Nexus 5X running Android 9, but almost any configuration is fine here. Make sure that you give the device access to the Play Store.

Install WhatsApp and sign-in

Launch the Virtual Device, the open the Play Store and sign in. Now use the Play Store to install WhatsApp on the Virtual Device.

You will be asked to verify your phone number, use your number on another device to complete this step.

Setup mautrix-whatsapp bridge

Now that you have WhatsApp working in a VM, and Matrix working on your server, it's time to bridge them together!

Per the instructions at mautrix-whatsapp/wiki, you must start a new chat with @whatsappbot:<yourdomain>. Type login to begin the authentication process.

mautrix-whatsapp operates by using the WhatsApp Web feature of WhatsApp - which means it uses a QR code that you must now scan on the device running WhatsApp - which in your case is the AVD. In order to scan the presented QR code, set your AVD camera to passthrough the camera device on your host machine - see the images below.

Once this is complete, you can type sync, to start bridging contacts, and sync --create to automatically create room invites.

And that's it! You may need to take a little time to watch the sync happen, particularly if you have a very large number of chats on the WhatsApp side, but there is no further configuration needed.

Demo!

This Week in Matrix 2019-02-22

22.02.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live S03E15 - Push To Talk and XMPP Gatewaying!

(sorry that the audio from Nad & Half-Shot went missing from the recording... :( )

nheko_reborn roadmap

red_sky has continued to work on nheko, and shared a general roadmap in #nheko-reborn:matrix.org:

The remainder of 0.6.x is expected to be bug fixes. This includes bug fixes in mtxclient as well as nheko.
0.7.0 will be the next feature release. The end goal here is to add some of the capabilities that people have been requesting, and other things that people haven't been requesting.
AFTER 0.7.0 releases, I will then focus on updating the encryption to include more than just text messages.

libQMatrixClient project, Quaternion

kitsune has been writing the codes this week, Quaternion now supports room upgrades and more:

Master branch of Quaternion can now store access token in your secure storage/keychain, better integrating into frameworks of GNOME and KDE, as well as macOS and Windows.
Also, you can see the room version and upgrade rooms in Quaternion (just like Matthew said on FOSDEM ;) ) - this feature is enabled by libQMatrixClient, so other clients are welcome to support room versions/upgrades too!

All this is within the work on the upcoming release of libQMatrixClient 0.5 and Quaternion 0.0.9.4 - stay tuned!

Oh we will. Spectral support for these new features when?

Matrix Ruby SDK

Ananace has continued his work on Ruby Matrix SDK:

Just tagged and pushed a new version (0.0.4) of the Ruby SDK, since I've completely forgotten to do that for a while now.

What's new?

A whole bunch of small stuff I did, mostly just additional exposed methods and parameters, and some fixed issues as well. I did add support for HS URL discovery using both SRV and .well-known though, which I think is probably the largest new feature.

As if all this wasn't enough, a room on Matrix!

Created a discussion room for the Ruby SDK - since it seems like there are now people who have actually used it apart from me; #ruby-matrix-sdk:kittenface.studio

synapse-netcore-workers

A project rarely seen has received a lot of attention this week!

Half-Shot has been working on federation workers:

I've been working on a federation worker for synapse written in .NET to improve outgoing federation performance. It's still pretty barebones, but progress can be followed at https://github.com/turt2live/synapse-netcore-workers/pull/5

TravisR too has been working on the project:

I'm also working on my own netcore workers project by setting up an appservice sender. It's also very barebones (doesn't even send a transaction), but is being tracked here: https://github.com/turt2live/synapse-netcore-workers/pull/6
Also, if you'd like to follow along with the project from the comfort of Matrix, head on over to #synapse-netcore-workers:t2bot.io

koma project

yuforia is working on koma:

Fix txnId generation that made sending messages unreliable. Work around a bug in OkHttp that crashed the dispatcher thread when the server certificate was not received in time.

Good thing to fix! Here's a screenshot of Continuum-desktop, the client from koma: >

yuforia continues:

Fix text processing in the bot avecho, feel free to try it out in #koma-im:matrix.org

mxisd v1.3.1 released

Max:

mxisd v1.3.1 is out. It is a maintenance release that fixes a set of regressions following the changes in v1.3.0 to massively improve performance. If you haven't updated to the v1.3 branch, now is the time!

Construct progresses toward Matrix 1.0 Spec

Over the past three weeks Construct has made rapid progress with covering the Matrix 1.0 specification!
Last week we implemented room version 1 and room version 2 authentication rules.
This week we implemented device support and management, and have nearly wrapped up successful End-To-End Encryption testing.
The Construct is a community-driven server implementation written in C++ for maximum performance. To all experienced C++ developers out there: we need your contributions to accelerate and test the 1.0 release!
Please check out https://github.com/matrix-construct/construct and stop by #test:zemos.net / #zemos-test:matrix.org today!

uMatriks planning

mariogrip announced his plans for going ahead with uMatriks:

  • Clean up c++ code
  • Make the c++ code less heavy, we should focus on speed
  • Offload js code to direct qml binding, with this i mean instead of having ablock if-else code that modifies qml object that runs on component load, we do this directly in qml: see 0a800fc and https://github.com/uMatriks/uMatriksblob/0a800fcdc0af4fa2e08526dbff88e06bcb591779/uMatriks/componentsChatItem.qml as an example for a cleaner code
  • Make all ui depended calls async, we should NEVER block ui
  • Offload heavy js logic to c++
  • Cleaner UI, with less crust
  • Async everything
  • Merge our WIP call support
  • Finish impl of call support (maybe move to a standalone webrtc module)
  • Slowly start moving to QQC2
  • Implement reply
  • Implement sending of media

Riot Android

  • Finalising version and delivery of Riot 0.8.23 on the Play Store.
  • RiotX: testing library to render events in the timeline.

Debian packaging

andrewsh:

Since Debian has entered soft freeze, updates to Synapse have been slow lately, but nevertheless we've got 0.99.1.1 in

matrix-archive-keyring

Linda is continuing to prepare matrix-archive-keyring:

matrix-archive-keyring (from last week's TWIM) is ready to be uploaded to Debian. Attempting to get it uploaded to unstable right now as I speak.

Riot breadcrumbs

We linked to the announcement last week, and have been using it for even longer, but somehow I missed a great labs feature that shipped with Riot 1.0: "room breadcrumbs", which you can enable from the Labs page of Riot settings. This gives you a series of quick links with the history of rooms you were most recently in. So if you're like me, clicking between rooms all day, you can get where you're going a little faster.

mautrix-whatsapp

There is no big news about mautrix-whatsapp this week, other than that I installed it on my own server and found that it works really really well. I'd love to switch to this as a main interface for my less-decentralised friends, but like others, I've been stung by this issue in an upstream project. If there are go-fans reading (and I know there are), I wonder if it's an issue which can be fixed?

Around the Web

A tidy little article on "non-centralised" applications. Article by Jontheniceguy helps pin down some of the terminology around decentralisation and the like. https://jon.sprig.gs/blog/post/1041

joenas wrote an article on configuring Synapse with Traefik: Matrix homeserver (Synapse v0.99.1.1) with Traefik

That's it

All good things must come to an end - and here we are!

Matrix is getting a lot of attention recently (has it been on the front page of HN every day this week? I remember that I used to be excited seeing that happen), and seeing a lot of growth as well.

If you have something to say here, something to add, come chat to us in #twim:matrix.org - I love that this is a supportive and engaged project ecosystem, so come share what you have!

This Week in Matrix 2019-02-15

16.02.2019 00:00 — This Week in Matrix Ben Parsons

Matrix Live, Synapse roadmap and Synapse 0.99.1.1

As you may have seen, Matrix Live this week features Neil and Matthew discussing the newly announced backend roadmap.

We also have Synapse v0.99.1.1 available, as the race to Synapse v1.0 gets closer and closer and closer!

Brendan also said, regarding low-bandwidth:

Some of the week has been spent finalising the components used in the low-bandwidth demo we did at FOSDEM. This required polishing some internal developments, which are now almost ready to be published to the wide world! This should happen in the next few days so stay tuned :)

Riot 1.0.0, and hotfix 1.0.1

If you're following Matrix much at all, you will surely have seen it by now: Riot, the most popular client, has announced the v1.0 milestone. I won't reiterate the features and improvements here, but do check out the blog post, or just head over to https://riot.im/app and see for yourself!

Particularly exciting is the new encryption verification process, involving sharing a list of emojis out-of-band:

thank you @matrixdotorg @RiotChat - with the new update the office is full of people yelling names of emoji at each other

— Russell Currey (@russelldotcc) February 15, 2019

MSCs update provided by MSCBot

In Progress MSCs

Work has continued on trying to resolve MSC1194.

Riot iOS

  • Last iteration on key backup UX
  • Finish reskin
  • Support Room v3 events ids
  • Key import (manual or backup restore) has been optimised. It is now 30x > quicker
  • An RC candidate will be available over the weekend

Scheduling, holidaying and illness means no update from Riot Android this week.

Artificial Intelligence Chat Bot tutorial

I like this short series on creating a Chat Bot using textgenrnn:

New(ish!) Python SDK: matrix-nio

Since we haven't featured their work here at all I wanted to give some space to poljar. They've been working on a Weechat-Matrix protocol script, but as part of this project they created a new Matrix client library, matrix-nio, "designed according to sans I/O principles".

As if this wasn't enough! python-olm is a library providing Python bindings for Olm (enabling E2E encryption for Matrix.)

FluffyChat v11 preview

FluffyChat is a pure QML Matrix client, designed to be used on smartphones running Ubuntu Touch. Krille, the author is working on:

boring refactoring stuff :-( at the moment to prepare everything for e2e encryption work

. . .which seems to me not boring at all - we can expect, in the next few months, another Matrix Client with E2EE support, and on mobile!

In my role as editor of this particular blog post, I enjoy certain luxuries that others might envy. For example, today, I tried a new preview build of FluffyChat. This I installed on my barely-repaired OnePlus One running Ubuntu Touch 16.04.

Fractal

Chris from Fractal:

Over the past week, Fractal has adapted its main view and room settings views for mobile phones, and implemented long-press for right-clicks on messages for touch devices. It's also received some changes in the backend to use the serde_derive Rust crate instead of parsing JSON by hand.

matrix-tag-manager

To celebrate tags being available again in riot-web, TravisR has created matrix-tag-manager:

If you're a power user which uses room tagging to organize your rooms, I've made a web UI for you: https://tags.t2bot.io/

mxisd v1.3.0 released

Max:

mxisd v1.3.0 is out! This release brings the massive performance improvements, bug fixes and enhancements. This release also marks the two years anniversary of the project. Thank you to all our users for your undying support!

EdimCoder new room

krixano reports that:

I made a room for my ed-inspired modern line editor called EdimCoder. Come check it out at #edimcoder:amorgan.xyz!

avecho

yuforia reports that:

a new bot avecho is created using the koma-library. It's a simple bot that echos text messages prefixed with avecho, but renders it into an image and include the sender's avatar.

Half-Shot's .NET SDK

Half-Shot reports that:

More improvements to the .NET sdk, to make it stable in this 0.4.0 world. To that end, I've written a room archiver app (for moving "old" rooms into a archive tag without removing them) and a simple caching project for bridges https://github.com/Half-Shot/matrix-cache. Progress as always can be followed in #dotnet:half-shot.uk

mautrix-telegram now at 0.5.0rc2

tulir has been working on the venerable Matrix<->Telegram bridge, mautrix-telegram:

mautrix-telegram got a bunch of changes and a release candidate.\nMain changes this week:

  • Added Matrix room upgrade handling
  • Fixed bugs
  • Added new admin commands and config options
  • Added new bugs to fix later
  • Stopped using the ORM part of SQLAlchemy

Get release notes for v0.5.0-rc1 and v0.5.0-rc2.

QMatrixClient project: libQMatrixClient and Quaternion

kitsune finds time to work on QMatrixClient!

QMatrixClient project has been busy merging PRs from contributors (close to tray and middle-click in room list and user list, to mention a couple) and streamlining the translation process before the upcoming releases of libQMatrixClient 0.5 and Quaternion 0.0.9.4. At the same time the feature branch to support room versions and room upgrades is at an advanced stage; expect the features to land in master next week.

matrix-archive-keyring

Linda has been working on new Debian package called matrix-archive-keyring:

I've paused porting Synapse to OpenBSD this week, while I attempt to both fix and revert some security issues caused by sudo apt-key add for Matrix.org and Riot.im packages for Debian-based GNU/Linux distribution users.
matrix-org/synapse PR #4609 was my first attempt to fix the problem, however I fell short this time in ease-of-use and my implementation had other issues. (Read: The repo-key.asc downloaded from Matrix.org Debian repository should go to /usr/share/keyrings, and must not be added by apt-key add or added to /etc/apt/trusted.gpg.d directly. I attempted the latter with my first PR; but that would've allowed the Matrix.org signing key to also be used to verify packages from Debian's main repositories. Yikes!)
As my second attempt, I'm now creating a new Debian package called matrix-archive-keyring. There's multiple things this package intends to do:

  • A post-install script to remove any previously added Matrix.org package signing keys from /etc/apt/trusted.gpg. (This is the file apt-key add most commonly uses, and the most commonly found bad advice on the Internet.)
  • Convert repo-key.asc to a de-armorized .gpg format, understood better by apt(8). (Essentially, gpg --dearmor.)
  • Install the converted .gpg key to /usr/share/keyrings.
  • Make sure apt(8) uses the newly added key for Matrix.org repository only?
  • Deliver any updates to repo-key.asc directly to you via apt upgrade. Your operating system might then also do it automatically for you if unattended-upgrades(8) is installed on your system. ?
  • Make sure everything goes away when this keyring package is uninstalled. No more sudo sh -c 'apt-key del C35EB17E1EAE708E6603A9B3AD0592FE47F0DF61; rm /etc/apt/sources.list.d/matrix-org.list to get rid of the repository.

I have one more interesting enhancement to disclose.
We can ask you with debconf if you want to install deb https://matrix.org/packages/debian $(lsb_release -cs) main to /etc/apt/sources.list.d/matrix-org.list while you're installing the new keyring with apt install matrix-archive-keyring.
You'll most likely notice the difference in install instructions, as a result of this package. Before and after:

# Before
sudo apt install -y lsb-release curl apt-transport-https
echo "deb https://matrix.org/packages/debian `lsb_release -cs` main" |
    sudo tee /etc/apt/sources.list.d/matrix-org.list
curl "https://matrix.org/packages/debian/repo-key.asc" |
    sudo apt-key add -
sudo apt update
sudo apt install matrix-synapse-py3
# After
sudo apt install matrix-archive-keyring
sudo sh -c 'apt update && apt install matrix-synapse-py3

If you are a Debian or Ubuntu user and Synapse homeserver operator using Matrix.org repositories, I'll be towncrying when this package becomes available as much as I can. All you should need to do then is apt install matrix-archive-keyring and it should patch the security holes in your operating system if you've formerly installed packages from Matrix.org or Riot.im! (The command may change a bit, because next Debian operating system release "Buster" has entered soft-freeze just today (2019-02-12) and not accepting new packages into that release.)
PS: I'm at #debian-matrix:matrix.org, please come talk to us if Debian packaging interests you!

For the eager early testers not afraid of building from source, matrix-archive-keyring version 2015.12.09+debian0.10 is available for early testing (attached).

# Something like this!
sudo apt install devscripts
tar -xfvJ matrix-archive-keyring_2015.12.09+debian0.10.tar.xz
cd matrix-archive-keyring_2015.12.09+debian0.10
debuild -us -uc
sudo dpkg -i dpkg -i ../matrix-archive-keyring_2015.12.09+debian0.10_all

Please follow Debian Bug#922155 for updates. Debian binary packages will be available later sometime this/next week from Debian's unstable distribution (contrib), if all goes well and there are no remaining Debian policy violations or serious bugs.

See also:

Gridepo

Max again:

Gridepo, as a Matrix Homeserver, is gaining basic support for Matrix Client API. We have basic login, room creation, message sending and sync working! A little screen recording of the progress can be viewed here for live action with Riot. As a reminder, Gridepo is a clean rewrite of mxhsd.

This is not usable yet outside of a dev environment but we should have a first usable version with federation in a couple of weeks!

Mention Bots page

We have a new location for listing bots: https://matrix.org/docs/projects/bots, message benpa with any you think should be included!

That's all I know

That's all we have for now, but come join us in #twim:matrix.org to share your project and share the fun, and I'll see you back here next week.