2019-10-02 20:23:43 +00:00
|
|
|
---
|
|
|
|
title: "Sprint in the cold north"
|
2019-10-03 08:10:50 +00:00
|
|
|
date: 2019-10-03T10:01:38+02:00
|
2019-10-02 20:23:43 +00:00
|
|
|
tags: [XMPP, Sprint]
|
|
|
|
---
|
|
|
|
|
|
|
|
Another episode of the XMPP sprints series happened this weekend close to
|
2019-10-02 21:07:20 +00:00
|
|
|
Stockholm in the Nacka prefecture, in a house we rented. Significant
|
|
|
|
improvements to the sprint infra this time are sauna and crêpes!
|
2019-10-02 20:23:43 +00:00
|
|
|
|
2019-10-02 21:07:20 +00:00
|
|
|
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.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
![Stockholm scenery](../stockholm.jpg)
|
|
|
|
|
|
|
|
### Groupchat Bookmarks (Bookmarks 2)
|
|
|
|
|
2019-10-02 20:47:04 +00:00
|
|
|
Last year, Dave Cridland and JC Brand submitted a new specification titled
|
|
|
|
["Bookmarks 2 (This time it's Serious)"][bookmarks-pep2]. This XEP didn't get
|
|
|
|
much attention in the community until this weekend.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
As mentioned in a [previous article][cbg-sprint-bookmarks], there are multiple
|
|
|
|
specifications for bookmarks in XMPP, one using the [Private XML
|
|
|
|
storage][bookmarks-private], and another one using [PEP as
|
|
|
|
storage][bookmarks-pep1]. Not so long after the Cambridge sprint last year,
|
|
|
|
Daniel submitted a [conversion XEP][bookmarks-conversion] to facilitate client
|
|
|
|
behaviour and thus user experience.
|
|
|
|
|
2019-10-03 08:01:43 +00:00
|
|
|
This new specification also uses PEP as storage but it brings a few
|
|
|
|
improvements to the table. 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.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
The XEP came up with its share of challenges that some of us attempted to fix
|
|
|
|
in a [pull request][bookmarks-PR-835] that has been submitted and is now
|
|
|
|
awaiting feedback from the authors.
|
|
|
|
|
2019-10-02 20:35:48 +00:00
|
|
|
[Bookmarks 2][bookmarks-pep2] is now implemented in at least 5 clients,
|
2019-10-02 20:47:26 +00:00
|
|
|
([Conversations][conversations-commit], [Dino][dino-commit],
|
|
|
|
[Gajim][gajim-commit], [Movim][movim-commit], [Renga][renga-commit], and some
|
|
|
|
initial work in poezio), but will not be used as long as the feature is not
|
2019-10-03 18:06:44 +00:00
|
|
|
advertised by the server. A new [prosody module][bookmarks-prosody] is also
|
2019-10-02 20:47:26 +00:00
|
|
|
available for adventurous services operators.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
2019-10-06 16:53:43 +00:00
|
|
|
<figure>
|
|
|
|
<video controls="true" muted="true">
|
|
|
|
<source src="../bookmarks-sync.mp4" type="video/mp4" />
|
|
|
|
</video>
|
|
|
|
<figcaption style="font-size: 85%; font-weight: 400">Bookmarks synchronisation</figcaption>
|
|
|
|
</figure>
|
|
|
|
|
2019-10-02 20:23:43 +00:00
|
|
|
[cbg-sprint-bookmarks]: https://bouah.net/2018/08/cambridge-xmpp-sprint/
|
|
|
|
[bookmarks-private]: https://xmpp.org/extensions/xep-0049.html
|
|
|
|
[bookmarks-pep1]: https://xmpp.org/extensions/xep-0048.html
|
|
|
|
[bookmarks-pep2]: https://xmpp.org/extensions/xep-0402.html
|
|
|
|
[bookmarks-conversion]: https://xmpp.org/extensions/xep-0411.html
|
|
|
|
[bookmarks-PR-835]: https://github.com/xsf/xeps/pull/835
|
|
|
|
[bookmarks-prosody]: https://modules.prosody.im/mod_bookmarks2.html
|
2019-10-02 20:47:26 +00:00
|
|
|
[conversations-commit]: https://github.com/siacs/Conversations/tree/bookmarks2
|
|
|
|
[dino-commit]: https://github.com/dino/dino/commit/74c29d4df19f97b9b67bbc3c1a963a8729be69fd
|
|
|
|
[gajim-commit]: https://dev.gajim.org/gajim/gajim/commit/3d381a9863679ea97a0f33a5f6dbd2e9ee790c9c
|
|
|
|
[movim-commit]: https://github.com/movim/movim/commit/2b32cde26c27417d075f7696ee04da94e5df3df3
|
|
|
|
[renga-commit]: https://github.com/HaikuArchives/Renga/commit/d6cbfe4ad90d860c1af234219af5bd0931c4aba5
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
### New landing page
|
|
|
|
|
2019-10-02 20:33:23 +00:00
|
|
|
Roel and I worked on an idea that came up at the UX sprint in Brussels in
|
2019-10-03 08:01:43 +00:00
|
|
|
January to have a landing page for new users. This page 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][joinmastodon], or [nextcloud sign-up
|
|
|
|
process][nextcloud-signup].
|
2019-10-02 20:23:43 +00:00
|
|
|
|
2019-10-03 08:01:43 +00:00
|
|
|
Building up the website isn't the hardest part. What is hard is finding ways
|
2019-10-02 21:07:20 +00:00
|
|
|
to convey to the user what "federation" or "public network" mean. Roel teaches
|
2019-10-03 08:01:43 +00:00
|
|
|
in Interaction Design and was a great help over the weekend. We came up with a
|
|
|
|
narrative for the project and a sketch for a sign-in flow.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2019-10-03 18:06:44 +00:00
|
|
|
To know what server to recommend to users we first need to get a list of
|
2019-10-02 21:07:20 +00:00
|
|
|
servers we are confident about and willing to recommend. This would mandate
|
2019-10-03 18:06:44 +00:00
|
|
|
discussing the issue 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.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
2019-10-03 08:01:43 +00:00
|
|
|
While I am excited about all this I don't think diving in head first is a
|
2019-10-02 20:23:43 +00:00
|
|
|
good strategy and I would rather take it slow.
|
|
|
|
|
|
|
|
[joinmastodon]: https://joinmastodon.org
|
|
|
|
[nextcloud-signup]: https://nextcloud.com/signup
|
|
|
|
|
|
|
|
### And more
|
|
|
|
|
|
|
|
Pulkomando has been working on implementing IBR support in [Renga][Renga], and
|
2019-10-03 18:06:44 +00:00
|
|
|
reported with Link Mauve issues about server implementations that weren't
|
2019-10-03 08:01:43 +00:00
|
|
|
respecting the specification. The issue in prosody has been fixed and one has
|
2019-10-02 20:23:43 +00:00
|
|
|
been opened [for ejabberd][IBR_ejabberd].
|
|
|
|
|
2019-10-03 08:01:43 +00:00
|
|
|
Larma tackled issues with bot bridging where users of bridged networks are
|
|
|
|
displayed as talking through the bot. This happens for example with
|
|
|
|
[matterbridge][matterbridge]. This could be improved UI-wise but requires
|
|
|
|
some groundwork and spawned [discussions][MUC_thread] about the groupchat
|
|
|
|
protocol in some specific cases.
|
2019-10-02 20:23:43 +00:00
|
|
|
|
|
|
|
Fiaxh spent some time improving the empty placeholder for no opened
|
|
|
|
conversations in Dino. Here is a preview:
|
|
|
|
|
|
|
|
![Dino no-conversations placeholder screen](../dino-no-conversations-placeholder.png)
|
|
|
|
|
2019-10-03 08:01:43 +00:00
|
|
|
Other people worked on Jingle File Transfer interoperability. They narrowed
|
|
|
|
down the cause of a somewhat old issue [in gajim][FT_gajim], discovered an
|
|
|
|
issue with the epoll backend [in prosody][FT_prosody], and another [in
|
2019-10-02 20:23:43 +00:00
|
|
|
dino][FT_dino].
|
|
|
|
|
2019-10-02 20:47:04 +00:00
|
|
|
[Renga]: https://github.com/HaikuArchives/Renga
|
2019-10-02 20:23:43 +00:00
|
|
|
[IBR_ejabberd]: https://github.com/processone/ejabberd/issues/3045
|
|
|
|
[matterbridge]: https://github.com/42wim/matterbridge
|
|
|
|
[MUC_thread]: https://mail.jabber.org/pipermail/standards/2019-September/036495.html
|
|
|
|
[FT_gajim]: https://dev.gajim.org/gajim/gajim/issues/9692
|
|
|
|
[FT_prosody]: https://issues.prosody.im/1438
|
|
|
|
[FT_dino]: https://github.com/dino/dino/commit/5d65f047d0fd1a1ed4a3bbe076d5cb4df76e7d5f
|
|
|
|
|
|
|
|
### You can contribute too!
|
|
|
|
|
|
|
|
I would like to take this opportunity to remind you that you can also
|
|
|
|
[contribute][sprint-guidelines] 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!
|
|
|
|
|
2019-10-02 21:16:16 +00:00
|
|
|
_TODO: come up with a platform to show interest close to you._
|
|
|
|
|
2019-10-02 20:23:43 +00:00
|
|
|
The [XMPP Standards Foundation][XSF] (specifically the [SCAM][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][sprint-room]!
|
|
|
|
|
|
|
|
[sprint-guidelines]: https://wiki.xmpp.org/web/Sprints#Organizing_an_event
|
|
|
|
[XSF]: https://xmpp.org
|
|
|
|
[SCAM]: https://xmpp.org/about/xsf/scam-team
|
|
|
|
[sprint-room]: xmpp:xmpp-sprint@chat.cluxia.eu?join
|