blog.bouah.net/content/posts/stockholm-sprint.md
Maxime “pep” Buquet ffad0c1257 Stockholm sprint: Reword some sections
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-02 23:35:07 +02:00

6.7 KiB

title date tags draft
Sprint in the cold north 2019-10-01T20:57:38+02:00
XMPP
Sprint
true

Another episode of the XMPP sprints series happened this weekend close to Stockholm in the Nacka prefecture, in a house we rented. Significant improvements to the sprint infra this time are sauna and crêpes!

We worked together on improving a new groupchat bookmarks specification, file transfer interoperability issues, and a future landing page for new XMPP users! As usual, every developer meetup comes up with its share of bug fixes, new ideas, and improvements.

Stockholm scenery

Groupchat Bookmarks (Bookmarks 2)

Last year, Dave Cridland and JC Brand submitted a new specification titled "Bookmarks 2 (This time it's Serious)". This XEP didn't get much attention in the community until this weekend.

As mentioned in a previous article, there are multiple specifications for bookmarks in XMPP, one using the Private XML storage, and another one using PEP as storage. Not so long after the Cambridge sprint last year, Daniel submitted a conversion XEP to facilitate client behaviour and thus user experience.

This new specification also uses PEP as storage, but it brings a few improvement to the table, specifically because it splits updates to the bookmark storage into per entry operations instead of updating the whole storage at once. This allows for finer grained handling in clients, and prevents some race conditions.

The XEP came up with its share of challenges that some of us attempted to fix in a pull request that has been submitted and is now awaiting feedback from the authors.

Bookmarks 2 is now implemented in at least 5 clients, (Conversations, Dino, Gajim, Movim, Renga, and some initial work in poezio), but will not be used as long as the feature is not advertized by the server. A new prosody module is also available for adventurous services operators.

New landing page

Roel and I worked on an idea that came up at the UX sprint in Brussels in January, to have a landing page for new users that would recommend a specific server depending on different factors that would be gathered automatically for the most part (if not all). This is more or less similar to other portals like joinmastodon, or nextcloud sign-up process.

Building up the website isn't the hardest part, what is hard is finding ways to convey to the user what "federation" or "public network" mean. Roel teaches in Interaction Design, and so he was a great help over the weekend. We came up with a narrative for the project, and a sketch for a sign-in flow.

The project is far from being over, this is only the tip of the iceberg. Lots of work needs to be done with the "stakeholders", that is mainly users and server operators.

To know what server to recommend to users, we need to first get a list a servers we are confident about and willing to recommend. This would mandate discussing with server operators to get feedback on a required "feature set" and policies. All this would then be fed into usability testing sessions for users to validate all of it. After that, we would need lots of promotion around it, and that's also going to take a significant amount of effort.

While I am excited about all this, I don't think diving in head first is a good strategy and I would rather take it slow.

And more

Pulkomando has been working on implementing IBR support in Renga, and reported with Link Mauve issues to server implementations that weren't respecting the specification. The issue in prosody has been fixed, and one has been opened for ejabberd.

Larma tackled issues with bot bridging, where for example with matterbridge, users of the bridged network are displayed as talking through the bot. This could be improved UI-wise, but requires some groundwork and spawned discussions about the groupchat protocol in some specific cases.

Fiaxh spent some time improving the empty placeholder for no opened conversations in Dino. Here is a preview:

Dino no-conversations placeholder screen

Other people worked on Jingle File Transfer interoperability and narrowed down the cause of a somewhat old issue in gajim, and also discovered an issue with the epoll backend in prosody, and another in dino.

You can contribute too!

I would like to take this opportunity to remind you that you can also contribute to sprints! If you are a developer, a translator, working on documentation, or in any other way contributing to an XMPP implementation, we encourage you to find 2-3 other people close to you and organize a sprint!

The XMPP Standards Foundation (specifically the SCAM team) will be happy to help you get it all sorted, and also provide some budget for your event if necessary. Please do contact us!