matrix.org/content/blog/2020/06/2020-06-26-this-week-in-mat...

604 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "This Week in Matrix 2020-06-26"
path = "/blog/2020/06/26/this-week-in-matrix-2020-06-26"
[taxonomies]
author = ["Ben Parsons"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/2020-06-26-ml.png"
+++
## Matrix Live 🎙
It's demos this week!
* Riot X video calls (valere)
* Room list (TravisR)
* Notifications - (Michael (t3chguy) & richvdh)
* E2E Onboarding (Dave & Nad)
* Modular SAML support (ChristianP)
{{ youtube_player(video_id="40FiPUmT0gc") }}
## Dept of *Status of Matrix* 🌡
### Merch Returns!
Yes it's back! For the first time in months we are shipping branded IRL-items featuring Matrix branding. Head to [The Shop](https://shop.matrix.org/) to stock-up.
## Dept of Spec 📜
[anoa](https://matrix.to/#/@andrewm:amorgan.xyz) announced:
> Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at <https://matrix.org/docs/spec/proposals.>
>
> #### MSC Status
>
> **Merged MSCs:**
>
> * [MSC2631: Add default_payload to PusherData](https://github.com/matrix-org/matrix-doc/pull/2631)
>
> **MSCs in Final Comment Period:**
>
> * [MSC2604: Accept device information for the login fallback endpoint](https://github.com/matrix-org/matrix-doc/pull/2604) (merge)
>
> **New MSCs:**
>
> * [\[WIP\] MSC2654: Unread counts](https://github.com/matrix-org/matrix-doc/pull/2654)
> #### Spec Core Team
>
> In terms of Spec Core Team MSC focus for this week, unfortunately our three MSCs from last week ( [MSC2366](https://github.com/matrix-org/matrix-doc/issues/2366) (verification flows), [MSC2403](https://github.com/matrix-org/matrix-doc/issues/2403) (knocking), and [MSC2630](https://github.com/matrix-org/matrix-doc/issues/2630) (SAS security)) are still pre-FCP. Most of the team has been quite busy with implementation for the past few weeks. Instead of advertising those 3 MSCs again, we're going to switch the focus to "implementation" for a bit until we're freed up again.
>
> So the focus for this week is: MSC implementation work. However, this should not discourage any MSC authors from responding to MSC feedback in the meantime 🙂
![2020-06-26-MxzSP-plot.png](/blog/img/2020-06-26-MxzSP-plot.png)
## Dept of GSoC 🎓
### Ruma GSoC
[devinr528](https://matrix.to/#/@devinr528:matrix.org) reported:
> This week in the ruma/matrix Google Summer of Code project, ruma-events was made ready for use! After adding stripped and sync event generation to the [`event_enum!` macro](https://github.com/ruma/ruma/commit/fdf87a38a219933ffe99b17baf87841a79702f28) there were only a few small tweaks needed to try it out in some dependent rust crates. I spent a few days converting [matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/pull/63) to use the ruma-monorepo. Since ruma is used on both client and server-side, I also opened a PR to update [Conduit](https://git.koesters.xyz/timo/conduit/pulls/133), a homeserver implementation written in Rust. To test that everything worked together, I updated [rumatui](https://github.com/DevinR528/rumatui/commit/1ae8776f9a59c297c8c9b2287f7c830ab67302b1), my command-line client written in rust.
>
> Then I could test that Conduit sent, and matrix-rust-sdk received the new ruma events successfully. While updating, I felt the pain of not having accessor methods for the `Any*Event` enums to get at the event fields held within. I have opened a [pull request](https://github.com/ruma/ruma/pull/97) to add the generation of these methods to the `event_enums!` macro. Hopefully, the Conduit and matrix-sdk PR's will be merged and the ruma monorepo can be tested in the wild!
### matrix-ircd GSOC
[karlik](https://matrix.to/#/@karlik:matrix.org) told us:
> Moved matrix protocol, irc protocol, and bridge module to futures 0.3. Converted some utility functions to new futures, and updated the http implementation to use the standardized Hyper library instead of using a custom http implementation.
### go-neb
[nikofil](https://matrix.to/#/@nikofil:matrix.org) said:
> * Created PR for enabling e2ee across all services! This required a few changes to how the bot client is initialised, as well as changes to all services to use the new functionality instead of directly sending messages to a room. <https://github.com/matrix-org/go-neb/pull/324>
>
> * Added code from another of tulir's projects to Mautrix to allow storing the crypto material (olm / megolm sessions, accounts etc.) in a SQL database, adding a second way besides using Gob storage. <https://github.com/tulir/mautrix-go/pull/10>
> * Future plans are to work on the library itself to add any features that might be missing.
### HTML embeddable chat rooms
[arnav-t](https://matrix.to/#/@arnav-t:matrix.org) told us:
> This week I've worked on the following features for the project "HTML embeddable chat rooms" under GSoC '20:
> #### Added support for signing-in
>
> #### Via sign-in popup
>
> The user can enter their credentials into the modal dialogue box.
>
> #### Via `postMessage` interface
> ```js
>
> iframe.contentWindow.postMessage({
> cmd: 'login',
>
> args: {
> user: 'username',
>
> passwd: 'password'
> }
>
> }, origin);
> ```
>
> _Arguments:_
>
> `args` (object):
>
> * `username` (string) - Username
>
> * `passwd` (string) - Password
>
> _Response:_
>
> ```js
> {
>
> status: 'success',
> message: 'Attempting sign in...'
>
> }
> ```
>
> #### Added support for default avatars
>
> Using the same design as Riot. However, I am just using flexbox and text instead of drawing on an HTML5 canvas. The HSL color is generated by hashing the user ID.
>
> #### Quoting and replying
>
> Added on-hover buttons and reply popup above message composer similar to Riot web. Quoting prepends the message (quoted) to the message composer similar to Riot web and replying would also work similar to Riot web. It will be fully functional once markdown parsing is added.
>
> #### Guest access
>
> The client now supports guest access. If no access token or user ID is provided in the configuration file, the client attempts to register a guest account on the home server. Room contents are viewed using `peekInRoom`.
>
> If the guest attempts to send a message, only then `joinRoom` is called to avoid spam (each page load would lead to a guest joining the room).
### Nheko
[Chethan](https://matrix.to/#/@crdy2k1:matrix.org) told us:
> SAS Verification is completed and works !
>
> Supports both Emoji and Decimal Verification
> Only uses **curve25519-hkdf-sha256** as key_agreement protocol
>
> Brand new UserProfile written entirely in qml.
> <https://github.com/Nheko-Reborn/nheko/pull/203>
>
> #### Mtxclient
>
> Updated with needed APIs for SAS verification.
>
> <https://github.com/Nheko-Reborn/mtxclient/pull/32>
{{ youtube_player(video_id="KZ4krRplCtg") }}
### Opsdroid
[tyagdit](https://matrix.to/#/@tyagdit:matrix.org) reported:
> #### Port to Matrix-nio
>
> * The matrix connector is now using matrix-nio!
>
> * Bots can send and receive texts, images, files as before
> * No change in configuration required, just update opsdroid and run as before
>
> * Encryption is not yet implemented
> * You can check out the PR [here](https://github.com/opsdroid/opsdroid/pull/1418)
>
> #### Enabling E2EE
>
> * Sending and receiving encrypted texts, edits, replies works just as normal messages
>
> * Images and files are being worked on
> * User shouldn't have to change much about their configuration to use encryption
>
> * Some testing is due
> * Check out the progress [here](https://github.com/opsdroid/opsdroid/pull/1548)
## Dept of Servers 🏢
### Dendrite
Dendrite is a next-generation homeserver written in Go
[kegan](https://matrix.to/#/@kegan:matrix.org) reported:
> This week has been mainly about testing to ensure that all the progress over the past few months is kept up-to-date and correct. We've also added a few features in order to get certain sytests working. To that end:
>
> * Invites can now be declined over federation and they will be reflected in `/sync` responses.
>
> * Errors encountered when joining a room over federation are now sent back to the client.
> * Errors encountered when accepting an invite over federation are now sent back to the client.
>
> * Dendrite will now check server names meet the server name grammar in the specification.
> * A bug which caused `client-api-proxy` to not actually proxy correctly has been fixed, thanks @fantashley !
>
> * `/send` now abides by the limits in the specification: 50 PDUs / 100 EDUs.
> * The docker-compose scripts now include `appservice_api`, thanks @fantashley !
>
> * Sending invites over federation will now fall back to v1 if v2 fails with a 404.
> * Dendrite now implements `room.timeline.limit` completely (in both in-line and stored filter formats).
>
> * Dendrite now sets the `limited` flag on `/sync` responses correctly.
>
> In addition, we now have support for collecting code coverage output from SyTest. This indicates we are testing roughly 70% of the Dendrite codebase. The remaining 30% are hard to reach via integration tests (e.g database failures, communication problems between internal APIs).
>
> Spec compliance:
>
> * Client-Server APIs: 45%, up from 40% last week
>
> * Server-Server APIs: 50%, up from 38% last week
>
> In total, we've made an additional 45 sytests pass this week.
### Mascarene
[Nico](https://matrix.to/#/@nico:beerfactory.org) reported:
> [Mascarene v0.2.0](https://gitlab.com/mascarene/mascarene/-/releases/v0.2.0) has been released.
>
> This version implements a minimal set of client API endpoints to work with Riot and allow user registration,
>
> room creation, invitation and messages sending on the same running instance (no federation support).
>
> [Docker image](https://hub.docker.com/r/mascarene/mascarene-homeserver) are also available. See [this documentation](https://gitlab.com/mascarene/mascarene/-/blob/master/docs/install.md)
>
> for rough installation instructions.
>
> Join us at [#mascarene:beerfactory.org](https://matrix.to/#/#mascarene:beerfactory.org)
### Conduit
Conduit is a Matrix homeserver written in Rust <https://conduit.rs>
[timo](https://matrix.to/#/@timo:koesters.xyz) told us:
> This week I finished the cross-signing PR:
{{ youtube_player(video_id="lPAAxyg2UD4") }}
> To try it out yourself, open Riot (preferably <https://riot.im/develop)> and join the `<https://conduit.koesters.xyz:14004>` homeserver.
>
> Thanks to everyone who supports me on Liberapay or Bitcoin!
### Synapse
[Neil](https://matrix.to/#/@neilj:matrix.org) told us:
> This week weve been working on further improvements to event persistence and ironed out a nasty bug where an unusually long state resolution could block the reactor overall and impact send times. We seem to have got to the bottom of this and m.org has improved a lot as of today.
>
> More generally weve been trying to characterise matrix.org performance so that we can continue to improve over the coming months.
>
> We are going to focus on:-
>
> * Client send event
> * Outbound Federation Latency
>
> * Inbound Federation Latency
> * Room joins
>
> As well as tracking the CS API generally.
>
> We are using [apdex](https://en.wikipedia.org/wiki/Apdex) with a satisfied limit of 250 ms and a tolerating limit of 1000 ms. By the end of the Summer we will aim to hit an apdex score of 0.9 for each area.
>
> For instance here is Federation Send Event Apdex graphed overtime. You can see that we are averaging about ~0.8 currently, so plenty to keeping us busy!
![2020-06-26-JR9Vx-Screenshot2020-06-26at17.51.57.png](/blog/img/2020-06-26-JR9Vx-Screenshot2020-06-26at17.51.57.png)
> Next up will be to work on Outbound Federation Latency
>
> Aside from that weve been working hard on the upcoming Notifications improvements. Mapping the push rules to the demands of the UI has been challenging and weve been through several iterations. If youd like to learn more take a look at Michael and Richs explanation in this weeks Matrix Live. Richs presentation has Sheltie pictures #justsayin
## Dept of Bridges 🌉
It's a Tulir kind of week.
### mautrix-whatsapp
[Tulir](https://matrix.to/#/@tulir:maunium.net) told us:
> The WhatsApp bridge got a bunch of improvements this week, such as:
>
> * Matrix -> WhatsApp gif bridging
>
> * Bridge status notices if your phone battery is low
> * A command to get group invite links and another command to join groups using invite links
>
> * Matrix <-> WhatsApp bridging of most membership changes
### mautrix-facebook
[Tulir](https://matrix.to/#/@tulir:maunium.net) reported:
> The Messenger bridge mostly got bugfixes, but also Matrix->Facebook bridging of all media and location messages
### mautrix-telegram
[Tulir](https://matrix.to/#/@tulir:maunium.net) offered:
> The Telegram bridge now supports logging in by scanning a QR code, although it requires using the master branch of Telethon instead of a release. I also fixed bridging captions in file messages, so they're now bridged as separate messages like with images
### Half-Shot bridges roundup
[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) offered:
> Hey all, I've got several releases to talk about this week!
>
> First, `matrix-appservice-slack` has been updated to [1.4.0](https://github.com/matrix-org/matrix-appservice-slack/releases/tag/1.4.0) with several quality of life changes such as automatically setting the bot profile on startup, supporting logging out of slack accounts and adding a health checkpoint. There are also quite a few bugfixes so make sure you update.
>
> `matrix-appservice-irc` was also bumped to [0.18.0](https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.18.0) with the headline features being Node 14.x support.
>
> We've also shipped [0.19.0-rc1](https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.19.0-rc1) which has stopped support for Node 10.x. Why? Because we're adding worker support to the bridge! This release starts to make use of the new(ish) `worker_threads` feature so that we can dish out processing to separate threads (running their own UV event loops, for node enthusiasts). The first thing to be workerized is metrics, so that metrics may still be reported should the bridge become saturated, but we plan to split out more work as things progress.
>
> Finally `matrix-appservice-bridge` got a few fixes to support our new worker land, as well as being updated to support `matrix-js-sdk` 6.0.0. You can checkout the changes for [1.13.1 here](https://github.com/matrix-org/matrix-appservice-bridge/releases/tag/1.13.1).
## Dept of Clients 📱
### Fluffychat
[sorunome](https://matrix.to/#/@sorunome:sorunome.de) offered:
> Fluffychat Version 0.15.0 is released, and should be available in the Play Store, on F-Droid and in IOS Testflight soon! This makes Fluffychat the first non-Riot matrix client that supports Cross-Signing.
>
> #### Features:
>
> * New room list app bar design
>
> * Chat app bar transparent
> * Implement web file picker
>
> * Minor design and UX improvements
> * Implement Cross Signing
>
> * Restore keys from online key backup
> * Added translations: Czech, Spanish, Slovakian
>
> #### Changes:
>
> * Show presences of users sharing a direct chat
>
> * Big refactoring
>
> #### Fixes:
>
> * Various fixes, including e2ee fixes and olm session recovery
![2020-06-26-rN8uB-scaled_screenshot_20200619-173753_fluffychat.png.jpg](/blog/img/2020-06-26-rN8uB-scaled_screenshot_20200619-173753_fluffychat.png.jpg)
### Pattle: version 0.18.0
[Wilko](https://matrix.to/#/@wilko:pattle.im) said:
> A new version has been released and will soon become available on Google Play, TestFlight and F-Droid!
>
> #### Changes
>
> * You can now play videos!
>
> * The main public address (room alias) of chats are now shown in chat's details
> * The time of sending is now always show on the right side for images
>
> * Notifications are grouped nicer, there's now one notification for Pattle, grouped by chat
> * Fix sending an image crashing the app
>
> * Fix urls not being accounted for in time placement ([#132](https://pattle.dev/pattle/app/-/issues/132))
> * Fix chat input not scrolling
>
> * Fix multiple issues regarding showing notifications
> * F-Droid: All left-over proprietary code is now removed, thanks to Bubu for notifying me!
>
> #### Get Pattle
>
> * **Android**
>
> * **[F-Droid](https://f-droid.org/en/packages/im.pattle.app/)**
> * **[Google Play](https://play.google.com/store/apps/details?id=im.pattle.app)**
>
> * **[iOS (TestFlight)](https://testflight.apple.com/join/uTytydST)**
>
> #### Get involved
>
> * **Follow development**: [#app:pattle.im](https://matrix.to/#/#app:pattle.im)
>
> * **Issues or suggestions**: [Post them here!](https://pattle.dev/pattle/app/issues)
> * **Donate**: If you want to support Pattle, [you can donate!](https://liberapay.com/wilko/)
{{ youtube_player(video_id="Nh-x4px_6v0") }}
### Mirage
[miruka*](https://matrix.to/#/@miruka:privacytools.io) reported:
> 0.5.2 is now out:
>
> #### Added
>
> * **Sessions/device list**: you can now inspect, rename and manually verify
>
> your devices from the account settings page.
> The interface is still work in progress, keyboard navigation and signing
>
> out sessions will be added in a next version.
>
> * Re-add client-side unread/highlight room indicators.
>
> If your account has push notifications disabled, which precise cross-client
> counters depend on, the local indicators will be used as fallback.
>
> * Support the `MIRAGE_CACHE_DIR` environment variable to override where
>
> files and thumbnails are downloaded
>
> * A bunch of theme additions, check the [full log](https://github.com/mirukana/mirage/releases/tag/v0.5.2)
>
> #### Changed
>
> * Overhauled account settings to match the design of other tabbed pages.
>
> The horizontal layout design has been removed due to complicated code and
> being impossible to extend without breaking it.
>
> * The display name field in account settings is now colored,
>
> preview your new display name's color as you type
>
> * For rooms without image avatars set, the room settings's avatar color now
>
> responds to the name field as you type
>
> * Overhauled scrollbars:
>
> * Now match the Mirage theme and much better visibility
> * No more right margin for the timeline's bar
>
> * Minimum height to prevent the bar from becoming impossible to grab
>
> * Use brighter text for room names of rooms that have unread messages
>
> * Buttons, tabs, text fields and areas now have animated bottom borders
>
> to represent keyboard focus instead of being highlighted like when hovered
>
> * Text fields and areas can now have rounded corners, following the theme
>
> * Tabbed pages (Sign In, Add Chat, etc) can now be swiped left and right
>
> * Popups can now be scrolled when their content is bigger than the
>
> window's height
>
> * Replace most generic checkmark icons for apply buttons in popups
>
> * Pressing escape in forms will consistently trigger corresponding
>
> cancel buttons
>
> #### Fixed
>
> * Various fixes, see [full changelog](https://github.com/mirukana/mirage/releases/tag/v0.5.2)
![2020-06-26-KSsyD-sessions.png](/blog/img/2020-06-26-KSsyD-sessions.png)
### Nheko
[Nheko](https://github.com/Nheko-Reborn/nheko) is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at
[Nico (@deepbluev7:neko.dev)](https://matrix.to/#/@deepbluev7:neko.dev) offered:
> * Most of our time this week was spent trying out device verification with Chethan. It's fun and I could finally file bugs in Nheko against someone else!
>
> * We fixed some issues that should hopefully make text in the timeline less blurry again.
> * Fixed a bug which cause some clients like fluffychat to break in E2EE rooms (we accidentally sent a null relation when not replying...)
>
> * Fixed an issue, where Nheko didn't verify the format of html formatted messages correctly, causing it to render messages in a way which wasn't compliant to the spec.
> * Thanks to the work of a Pirate and his friends, current versions of Nheko should be available in backports for Debian Buster once again!
### Riot Chat for Nextcloud
[Gary Kim](https://matrix.to/#/@gary:garykim.dev) announced:
> [Riot Chat for Nextcloud 0.5.0](https://github.com/gary-kim/riotchat/releases/tag/v0.5.0) The new version updated the Riot.im version to 1.6.6 and added the ability for admins to set their own custom config for Riot rather then using the settings interface in addition to a few bug fixes.
>
> Riot Chat for Nextcloud allows individuals and organizations with a Nextcloud instance to easily set up and configure their own Riot instance with just a few clicks on a web interface without the need to write a config file.
>
> Join the development Matrix room at [#riotchatfornextcloud-general:garykim.dev](https://matrix.to/#/#riotchatfornextcloud-general:garykim.dev). Check out the source code [here](https://github.com/gary-kim/riotchat).
### Riot-iOS
[Manu](https://matrix.to/#/@Manu:matrix.org) told us:
> This week, we completed UX for cross-signing and secure backup. We made associated settings but we still need to polish them.
>
> Sygnal and the new push extension have been updated to match Apple requirement and our privacy concerns. Events content are no more sent anymore.
> We started to implement the new room notifications settings UI.
### RiotX
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) told us:
> This week we were mainly working on cross-signing, room settings, VoIP stabilization and performance improvement.
### Riot-Android
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) reported:
> We will publish at the beginning of next week a beta version of the migration to RiotX codebase on the beta channel of the PlayStore, to be able to ensure the migration works fine, before release it to production.
## Dept of SDKs and Frameworks 🧰
### Matrix Dart SDK: v0.33.0
[Wilko](https://matrix.to/#/@wilko:pattle.im) told us:
> * Support custom events using `RawRoomEvent` and `RawStateEvent`
>
> Check the [README](https://pub.dev/packages/matrix_sdk/versions/0.33.0+1#custom-events) for details.
>
> * Add ability to register using `Homeserver.register`
>
> * Add `VideoMessageEvent`
> * Add `Room.canonicalAlias` and `Room.alternativeAliases`
>
> * Add `format` field to `TextMessage` (thank you [Cyril](https://matrix.to/#/@scappino:matrix.org)!)
> * Remove `equatable` dependency
>
> [Get it on pub!](https://pub.dev/packages/matrix_sdk/)
### Net::Matrix::Webhook
[joepie91](https://matrix.to/#/@joepie91:pixie.town) discovered this project, presented yesterday at Conference in the Cloud:
{{ youtube_player(video_id="Fby5i2sDHCY") }}
> Net::Matrix::Webhook implements a webhook, so you can easily post messages to your matrix chat rooms via HTTP requests. It uses IO::Async to start a web server and connect as a client to matrix. It will then forward your messages.
### matrix_scrape_emoji_translations script project
[sorunome](https://matrix.to/#/@sorunome:sorunome.de) announced:
> Soru wrote a quick program that scrapes riot-web, riot-x and riot-ios for translations of the emoji names for emoji verification and combines them all into an easily-readable json file, so that other client developers can use it. Since all three riot versions have a different set of translations, it might also be helpful for them. You can find the source code along with the outputted json files [here](https://github.com/Sorunome/matrix_scrape_emoji_translations).
## Dept of Bots 🤖
### "Scandinavia and the World" comic bot
[Tulir](https://matrix.to/#/@tulir:maunium.net) offered:
> To add to my existing xkcd and CommitStrip maubot plugins, there's now a similar plugin for [Scandinavia and the World](https://satwcomic.com/) comics: <https://github.com/maubot/satwcomic>
>
> Like the other bots, you can self-host it, use my instance (@satw:maunium.net) in your own room or simply join [#satwcomic:maunium.net](https://matrix.to/#/#satwcomic:maunium.net) to automatically get the latest comics in Matrix.
### matrix-webhooker
[kinta](https://matrix.to/#/@kinta:communia.org) announced:
> A bot that will allow to room administrators and moderators to generate room custom commands (in a similar way how telegram commands are thought).
>
> When they are invoked it will post the message event object data and a predefined context object along with a token to a custom url. More information in: <https://gitlab.com/communia/matrix-webhooker>
### Matrix webhook
[kinta](https://matrix.to/#/@kinta:communia.org) told us:
> <https://www.drupal.org/project/matrix_webhook>
>
> Drupal module to receive links shared from a matrix room. Get links provided by a matrix bot in a room.
> With this module one can get media from a matrix own bot to any drupal site. Once installed and bot is created through matrix-webhooker bot.
> A blog entry about it (in spanish) in <https://planet.communia.org/content/enlaces-desde-matrix>
## Dept of Interesting Projects 🛰
### Pollvis - new poll visualiser project
We have a couple of conferences coming up who are planning to use Matrix as part of their offering, much as we do with [Open Tech Will Save Us](https://matrix.org/open-tech-will-save-us/). To help add some more features, I created an MVP "poll visualiser", which watches a room and works in tandem with the [poll-bot](https://github.com/babolivier/matrix-poll-bot) from Brendan Abolivier . This project is still at the beginning, but might be interesting to some! Find the code at <https://github.com/benparsons/pollvis>.
## Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server. Join [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) to experience the fun live, and to find out how to add YOUR server to the game.
|Rank|Hostname|Median MS|
|:---:|:---:|:---:|
|1|fairydust.space|331|
|2|services.pyrahex.com|537|
|3|heitkoetter.net|604|
|4|nitro.chat|646.5|
|5|mchus.pro|660|
|6|privacytools.io|671|
|7|matrix.vgorcum.com|727.5|
|8|eiselecloud.de|740|
|9|aruiz.io|855|
|10|neko.dev|923.5|
## That's all I know 🏁
See you next week, and be sure to stop by [#twim:matrix.org] with your updates!
[#TWIM:matrix.org]: <https://matrix.to/#/#TWIM:matrix.org>