We're hiring!
*

Cambridge XMPP Sprint

Maxime Buquet avatar

Maxime Buquet
August 30, 2018

Share this post:

Earlier this month, on August 18-19th, was held the first developer event in the XMPP community for a long time.

The idea came up at the Gulaschprogrammiernacht, in Karlsruhe earlier this year, talking with Daniel Gultsch, and JC Brand. We gathered there to work on an implementation of the OMEMO encryption mechanism for Converse.js, and Poezio. Converse.js is currently seeing the changes merged. It’s taking a bit more time for Poezio, but we’ll get there.

JC mentioned sprints organised by the Plone community, and I felt that was something we were missing for XMPP. While the XMPP summit is held every year before FOSDEM, it is often more oriented towards protocol discussions. Developer events are scarce.

I set a goal for myself to start a movement in the community, gather interested people, and work together to improve the ecosystem.

The first event – of this hopefully long series of events – was held this month, sponsored by my employer, Collabora, in their UK offices in Cambridge!

Who attended

And remotely:

Objectives

We started the sprint with a short standup, to discuss ideas gathered during the previous weeks online, and to narrow the focus to a few feasible items. At this point it became clear that User Experience (UX) would be an important topic during the weekend, as it is also within the XMPP community of late.

Here is roughly what was mentioned, and what we planned to work on:

  1. Bookmarks: Sync Private XML bookmarks with PEP ones.
    XMPP has different standard places to store bookmarks, and this has often proven to be a painful experience to the user, when using different clients for example. The objective here was to transparently synchronize both stores, so that the user gets an overall nicer experience.
  2. Message Attaching and Reactions.
    Message Attaching defines a way by which one can indicate that a message is semantically related, “attached”, to an earlier message in the discussion. This can be useful for reactions, for example, or even for previews of links.
  3. In-Band Registration in clients that don’t support it, namely Dino and Poezio.
    In-Band Registration is a mechanism that allows clients to provide an interface to create accounts on servers that allow it. This way the user doesn’t have to go through multiple hops to start chatting with their friends.
  4. Consistent color generation.
    This specification aims at providing algorithms that will be used to generate deterministic colors, so that they stay consistent across clients, and thus help with recognition, for nicknames in groupchats, for example.
  5. Hats.
    Hats allow for customised roles and affiliations in chatrooms, an extension of the usual roles and affiliations. They can be used as regular “titles” that are displayed to other users, (e.g., “Teacher”, “Student”, “Developer of XYZ”), but can also carry permission information. The current specification needed reworking as it has been left with lots of TODOs, and was not really finished nor implementable.

Hard working developers

Accomplishments

Not everything that was mentioned on the saturday morning was worked on, but we did manage to get quite a few things done. This was also the opportunity to discuss about various topics.

As this is also something I would like to encourage, I am happy to say that first-time XMPP users were able to contribute on projects, by providing feedback as well as patches.

Here is a non-exhaustive list of issues/topics we worked on:

Conversations

  • Use PEP Bookmarks if urn:xmpp:bookmarks-conversion:0 is announced. commit
  • Experiments with Consistent Color Generation:
    Disabled by default variant that uses HSLUV instead of YCbCr. HSLUV provides more uniform colors and also ‘nicer’ colors by default. commit
  • Updated Conversations Compliance Checker help for Prosody: pull/6

Converse.js

Dino

Packaging

Poezio

Prosody

XEPs (specifications)

  • Synchronisation between vCard-based and PEP avatars: pull/700
  • Started XEP for synchronisation between Private XML and PEP bookmarks
  • Message attachments XEP updated: pull/696
  • Started writing of a counter-proposal XEP for Hats.

Original information about the event is now listed in the wiki.

I would like to thank everybody who participated, helped organise the event, and made all this possible. Thanks Collabora again for sponsoring the event and providing the venue.

What’s Next

Talks of organising a next sprint this year in Düsseldorf, or Paris, are already happening. I would also like to encourage anybody who wants to organize similar events in their region. If you are interested and want to help organize, or participate, please join the chatroom for more information.


Visit Maxime's blog.

Related Posts

Related Posts

Comments (0)


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


Search the newsroom

Latest Blog Posts

An xrdesktop summer of code

10/09/2021

This summer, Christoph Haag and I had the pleasure of taking part in Google Summer of Code as mentors for xrdesktop, the Open Source project…

Adding VP9 and MPEG2 stateless support in v4l2codecs for GStreamer

23/06/2021

Earlier this year, from January to April 2021, I worked on adding support for stateless decoders for GStreamer as part of a multimedia internship…

Bag of Freebies for XR Hand Tracking: Machine Learning & OpenXR

17/06/2021

In our previous post, we presented a project backed by INVEST-AI which introduces a multi-stage neural network-based solution. Now let's…

Testing cameras with lc-compliance on KernelCI

15/06/2021

Initiated as a joint effort by the Google Chrome OS team and Collabora, the recent KernelCI hackfest brought the addition of new tests including…

Zink: Summer 2021 update

14/06/2021

There's a lot that has happened in the world of Zink since my last update, so let's see if I can bring you up to date on the most important…

Open Source OpenGL ES 3.1 on Mali GPUs with Panfrost

11/06/2021

Panfrost, the open source driver for Arm Mali, now supports OpenGL ES 3.1 on both Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52,…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2021. All rights reserved. Privacy Notice. Sitemap.

Collabora Limited is registered in England and Wales. Company Registration number: 5513718. Registered office: The Platinum Building, St John's Innovation Park, Cambridge, CB4 0DS, United Kingdom. VAT number: 874 1630 19.