diff --git a/content/posts/stockholm-sprint.md b/content/posts/stockholm-sprint.md new file mode 100644 index 0000000..1717c6d --- /dev/null +++ b/content/posts/stockholm-sprint.md @@ -0,0 +1,131 @@ +--- +title: "Sprint in the cold north" +date: 2019-10-01T20:57:38+02:00 +tags: [XMPP, Sprint] +draft: true +--- + +Another episode of the XMPP sprints series happened this weekend close to +Stockholm in the Nacka prefecture, in a house we rented. 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](../stockholm.jpg) + +### Groupchat Bookmarks (Bookmarks 2) + +Last year's summer, 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. + +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. + +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][bookmarks-PR-835] that has been submitted and is now +awaiting feedback from the authors. + +[Bookmarks 2][bookmarks-pep2] is now implemented in at least 4 clients, +(Gajim, Conversations, Dino, Renga, some initial work in Movim and poezio), +but will not be used as long as the feature is not advertized by the server. A +new [prosody module][bookmarks-prosody] is also available for adventurous +services operators. + +[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 + +### New landing page + +Roal 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][joinmastodon], or [nextcloud sign-up process][nextcloud-signup]. + +While I am no designer at all, building up a website isn't the hardest part, +what is hard is finding a way 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 are willing to recommend. This would +certainly mandate discussing with server operators to get feedback. And this +would then be fed into usability testing sessions for user 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. + +[joinmastodon]: https://joinmastodon.org +[nextcloud-signup]: https://nextcloud.com/signup + +### And more + +Pulkomando has been working on implementing IBR support in [Renga][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][IBR_ejabberd]. + +Larma tackled issues with bot bridging, where for example with +[matterbridge][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][MUC_thread] 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](../dino-no-conversations-placeholder.png) + +Other people worked on Jingle File Transfer interoperability and narrowed down +the cause of a somewhat old issue [in gajim][FT_gajim], and also discovered +an issue with the epoll backend [in prosody][FT_prosody], and another [in +dino][FT_dino]. + +[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! + +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 diff --git a/static/2019/10/dino-no-conversations-placeholder.png b/static/2019/10/dino-no-conversations-placeholder.png new file mode 100644 index 0000000..b271c30 Binary files /dev/null and b/static/2019/10/dino-no-conversations-placeholder.png differ diff --git a/static/2019/10/stockholm.jpg b/static/2019/10/stockholm.jpg new file mode 100644 index 0000000..bc77687 Binary files /dev/null and b/static/2019/10/stockholm.jpg differ