<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>matrix &amp;mdash; julian</title>
    <link>https://wrily.foad.me.uk/tag:matrix</link>
    <description>FOSS dev, self-hosting fan, Matrix, degoogling, small tech, indie tech, friendly tech for families and schools. Let&#39;s own our own identity &amp; data.</description>
    <pubDate>Tue, 14 Apr 2026 22:33:13 +0000</pubDate>
    <item>
      <title>PubHubs Moderation update 2024-04-29</title>
      <link>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-04-29</link>
      <description>&lt;![CDATA[Completing This Phase&#xA;&#xA;This is the last week of my funding on Moderator Tools for PubHubs. It has been a pleasure working with the PubHubs team. The time seems to go quickly.&#xA;&#xA;Over the last few weeks I have been documenting everything about the Moderator Tools for PubHubs project on my dedicated web site, https://www.ph.trax.im/.&#xA;&#xA;To summarise, these are the main work areas in this project, linking to their web site sections:&#xA;&#xA;Civilised Discourse&#xA;    Researching best practices to inform the longer term design of PubHubs moderation facilities.&#xA;&#xA;Disclosure of Identity Attributes&#xA;    Building a moderation tool specific to PubHubs&#39; special features.&#xA;&#xA;Draupnir for PubHubs&#xA;    Adapting the best existing moderation tool from the regular Matrix ecosystem (Draupnir), evaluating and extending it.&#xA;!--more--&#xA;&#xA;Looking Back&#xA;&#xA;How Did it Go? This is my own perspective.&#xA;&#xA;Draupnir for PubHubs (item 3) was the first task. At the beginning of the project, it seemed clear that a good way to start would be to integrate the best available Matrix moderation tool, Draupnir, into PubHubs. I made it work, but it turns out that at this time Draupnir is not a very good fit for PubHubs&#39;s needs. Read more in the Draupnir for PubHubs section.&#xA;&#xA;Disclosure of Identity Attributes (item 2) was undertaken next. This is about implementing a particular moderation feature, related to PubHubs&#39;s special identity system (IRMA/Yivi). Each participant is identified initially by a pseudonym. A moderator may ask a participant to disclose an attribute of their real identity, such as their registered home town), and the participant may provide a cryptographic proof (attestation) of the requested attribute, using Yivi. We now have a working implementation of this feature in PubHubs. There is a description, with screen-shots, in the Disclosure of Identity Attributes section.&#xA;&#xA;Civilised Discourse (item 1): We needed a higher level plan for how to address moderation needs in PubHubs. Research suggested that Discourse.org provides a good role model. The foundation of its successful pattern for civilised discourse is structured around the idea of &#34;Trust Levels&#34;, guiding each new user gradually through increasing power and responsibility, up to possibly becoming a community leader. The other key idea is that the best kind of moderation is more about giving positive signals guiding towards intended behaviour than it is about reacting to negative behaviours. We copy and adapt these ideas to PubHubs, suggesting how to build successive features around this concept. See the Civilised Discourse section.&#xA;&#xA;Each of these areas could be built on further. The Matrix moderation tool Draupnir turned out not to be such a useful building block as I had first assumed. However, we should keep an eye on upcoming developments from it and related projects from the wider Matrix world. Disclosure of Identity Attributes, with some work on a few aspects of its user experience, could be considered a complete feature. The Civilised Discourse concept has potential to guide the development of moderation-related features, in such a way as to promote desired behaviours as well as limiting undesired behaviours of a hub&#39;s community members.&#xA;&#xA;Looking Forward&#xA;&#xA;Where Next?&#xA;&#xA;This was a part-time assignment and the depth of exploration was limited. It would be satisfying to take this work further forward. I intend to stay in touch with PubHubs, at least as a volunteer. I might also submit another funding application. I would be glad to do further work on moderator tooling or perhaps in another area that would be useful to them.&#xA;&#xA;PubHubs is a great example of the kind of project I want to support. Software for the public good, built on freedom-respecting foundations of open standard protocols and free (libre) open source software (as listed on the Open Source page).&#xA;&#xA;Besides PubHubs I will be looking to work on other projects in the field, especially those based on Matrix which I see as having great potential as an open standard for many kinds of messaging. I am particularly interested in public-benefit and personal use cases, enabling organisations and individuals who want to take their private messaging away from the tech monopolies and into their own hands.&#xA;&#xA;---&#xA;&#xA;#PubHubs #matrix&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="completing-this-phase" id="completing-this-phase">Completing This Phase</h2>

<p>This is the last week of my funding on <a href="https://www.ph.trax.im/">Moderator Tools for PubHubs</a>. It has been a pleasure working with the PubHubs team. The time seems to go quickly.</p>

<p>Over the last few weeks I have been documenting everything about the Moderator Tools for PubHubs project on my dedicated web site, <a href="https://www.ph.trax.im/" title="Moderator Tools for PubHubs">https://www.ph.trax.im/</a>.</p>

<p>To summarise, these are the main work areas in this project, linking to their web site sections:</p>
<ol><li><p><a href="https://www.ph.trax.im/Moderation/civilised-discourse/"><strong>Civilised Discourse</strong></a></p>
<ul><li>Researching best practices to inform the longer term design of PubHubs moderation facilities.</li></ul></li>

<li><p><a href="https://www.ph.trax.im/Moderation/disclosure/"><strong>Disclosure of Identity Attributes</strong></a></p>
<ul><li>Building a moderation tool specific to PubHubs&#39; special features.</li></ul></li>

<li><p><a href="https://www.ph.trax.im/Moderation/Draupnir/draupnir-pubhubs/"><strong>Draupnir for PubHubs</strong></a></p>
<ul><li>Adapting the best existing moderation tool from the regular Matrix ecosystem (Draupnir), evaluating and extending it.
</li></ul></li></ol>

<h2 id="looking-back" id="looking-back">Looking Back</h2>

<p>How Did it Go? This is my own perspective.</p>

<p>Draupnir for PubHubs (item 3) was the first task. At the beginning of the project, it seemed clear that a good way to start would be to integrate the best available Matrix moderation tool, Draupnir, into PubHubs. I made it work, but it turns out that at this time Draupnir is not a very good fit for PubHubs&#39;s needs. Read more in the <a href="https://www.ph.trax.im/Moderation/Draupnir/draupnir-pubhubs/">Draupnir for PubHubs</a> section.</p>

<p>Disclosure of Identity Attributes (item 2) was undertaken next. This is about implementing a particular moderation feature, related to PubHubs&#39;s special identity system (IRMA/Yivi). Each participant is identified initially by a pseudonym. A moderator may ask a participant to disclose an attribute of their real identity, such as their registered home town), and the participant may provide a cryptographic proof (attestation) of the requested attribute, using Yivi. We now have a working implementation of this feature in PubHubs. There is a description, with screen-shots, in the <a href="https://www.ph.trax.im/Moderation/disclosure/">Disclosure of Identity Attributes</a> section.</p>

<p>Civilised Discourse (item 1): We needed a higher level plan for how to address moderation needs in PubHubs. Research suggested that Discourse.org provides a good role model. The foundation of its successful pattern for civilised discourse is structured around the idea of “Trust Levels”, guiding each new user gradually through increasing power and responsibility, up to possibly becoming a community leader. The other key idea is that the best kind of moderation is more about giving positive signals guiding towards intended behaviour than it is about reacting to negative behaviours. We copy and adapt these ideas to PubHubs, suggesting how to build successive features around this concept. See the <a href="https://www.ph.trax.im/Moderation/civilised-discourse/">Civilised Discourse</a> section.</p>

<p>Each of these areas could be built on further. The Matrix moderation tool Draupnir turned out not to be such a useful building block as I had first assumed. However, we should keep an eye on upcoming developments from it and related projects from the wider Matrix world. Disclosure of Identity Attributes, with some work on a few aspects of its user experience, could be considered a complete feature. The Civilised Discourse concept has potential to guide the development of moderation-related features, in such a way as to promote desired behaviours as well as limiting undesired behaviours of a hub&#39;s community members.</p>

<h2 id="looking-forward" id="looking-forward">Looking Forward</h2>

<p>Where Next?</p>

<p>This was a part-time assignment and the depth of exploration was limited. It would be satisfying to take this work further forward. I intend to stay in touch with <a href="https://pubhubs.net/en">PubHubs</a>, at least as a volunteer. I might also submit another funding application. I would be glad to do further work on moderator tooling or perhaps in another area that would be useful to them.</p>

<p>PubHubs is a great example of the kind of project I want to support. Software for the public good, built on freedom-respecting foundations of open standard protocols and free (libre) open source software (as listed on the <a href="https://www.ph.trax.im/About/open-source/" title="Moderator Tools for PubHubs - About - Open Source">Open Source</a> page).</p>

<p>Besides PubHubs I will be looking to work on other projects in the field, especially those based on Matrix which I see as having great potential as an open standard for many kinds of messaging. I am particularly interested in public-benefit and personal use cases, enabling organisations and individuals who want to take their private messaging away from the tech monopolies and into their own hands.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-04-29</guid>
      <pubDate>Mon, 29 Apr 2024 13:28:09 +0000</pubDate>
    </item>
    <item>
      <title>Matrix: Your Hi-Fi Separates</title>
      <link>https://wrily.foad.me.uk/matrix-your-hi-fi-separates</link>
      <description>&lt;![CDATA[An idea for explaining Matrix: it&#39;s hi-fi separates vs. a mini-hi-fi.&#xA;!--more--&#xA;&#xA;WhatsApp is a mini-hi-fi.&#xA;&#xA;It&#39;s packaged just the way it is. Not working the way you want? Throw it away or put up with it. But worse: it plays only the music subscription it came with. You can&#39;t choose another radio station. Want to buy independent music? Nope. Lend albums to your friends? Only if your friends subscribe to the same manufacturer&#39;s club.&#xA;&#xA;Look at those buttons on the all-in-one remote... That&#39;s all the control you get.&#xA;&#xA;Matrix is Separates.&#xA;&#xA;Basxstack11300x8751-3557905358.jpg&#xA;&#xA;Choose your loudspeakers. Choose your cd/radio/tape/record players: they all play the standard music formats. Buy or borrow or create whatever music, audio books or news you like, from wherever you wish. It plays them all. Something not working the way you want? Replace or upgrade any part, or ask an independent repair shop or friend to adjust it. Lend it to your local club, hook it up to their big stage amp. No problem. It&#39;s standardised, it&#39;s a tool, it&#39;s yours.&#xA;&#xA;Of course your friends are free to choose their own separates. Maybe neat and tidy like yours. Maybe extreme.&#xA;&#xA;maxresdefault-2414662054.jpg&#xA;&#xA;---&#xA;&#xA;#matrix #awesomeFOSS&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><em>An idea for explaining Matrix: it&#39;s hi-fi separates vs. a mini-hi-fi.</em>
</p>

<h2 id="whatsapp-is-a-mini-hi-fi" id="whatsapp-is-a-mini-hi-fi">WhatsApp is a mini-hi-fi.</h2>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/04/mini-hi-fi-wa.jpg" alt=""></p>

<p>It&#39;s packaged just the way it is. Not working the way you want? Throw it away or put up with it. But worse: it plays only the music subscription it came with. You can&#39;t choose another radio station. Want to buy independent music? Nope. Lend albums to your friends? Only if your friends subscribe to the same manufacturer&#39;s club.</p>

<p><em>Look at those buttons on the all-in-one remote... That&#39;s all the control you get.</em></p>

<h2 id="matrix-is-separates" id="matrix-is-separates">Matrix is Separates.</h2>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/04/Basx_stack_1_1300x8751-3557905358.jpg" alt="Basx_stack_1_1300x8751-3557905358.jpg"></p>

<p>Choose your loudspeakers. Choose your cd/radio/tape/record players: they all play the standard music formats. Buy or borrow or create whatever music, audio books or news you like, from wherever you wish. It plays them all. Something not working the way you want? Replace or upgrade any part, or ask an independent repair shop or friend to adjust it. Lend it to your local club, hook it up to their big stage amp. No problem. It&#39;s standardised, it&#39;s a tool, it&#39;s yours.</p>

<p><em>Of course your friends are free to choose their own separates. Maybe neat and tidy like yours. Maybe extreme.</em></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/04/maxresdefault-2414662054.jpg" alt="maxresdefault-2414662054.jpg"></p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/matrix-your-hi-fi-separates</guid>
      <pubDate>Wed, 24 Apr 2024 11:00:00 +0000</pubDate>
    </item>
    <item>
      <title>POSSE: TWIM: Moderator Tools for PubHubs</title>
      <link>https://wrily.foad.me.uk/posse-twim-moderator-tools-for-pubhubs</link>
      <description>&lt;![CDATA[This is my POSSE copy of the announcement posted in This Week in Matrix (TWIM) 2024-03-29.&#xA;!--more--&#xA;----&#xA;&#xA;This Week in Matrix 2024-03-29&#xA;&#xA;Dept of Interesting Projects&#xA;&#xA;Moderator Tools for PubHubs&#xA;&#xA;JulianF announces&#xA;&#xA;  This week I have put up a web site documenting my work on Moderator Tools for PubHubs.&#xA;    PubHubs is a Dutch research project to enable citizen-facing organisations to provide online group communications, value-aligned with their real-world presence. It uses matrix protocol, combined with an interesting and different user identity model involving pseudonyms and selective cryptographic disclosure of identity attributes such as &#34;is over 18&#34; or &#34;is a member of organisation X&#34;. Each hub is built around a non-federating Synapse server, with their own identity plugins and custom client.&#xA;    I have been working on three aspects of introducing initial moderation tooling. Some of it crosses over with general matrix (this week&#39;s Pantalaimon role is a side product of the Draupnir part), while some is different (Attribute Disclosure), and the third part is general (research and planning for Civilised Discourse).&#xA;    My funded stint is coming to an end and I am looking for ways to continue in any related area of work -- please matrix me @julian:foad.me.uk!&#xA;&#xA;---&#xA;#PubHubs #matrix #POSSE&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><em>This is my <a href="https://indieweb.org/POSSE">POSSE</a> copy of the <a href="https://matrix.org/blog/2024/03/29/this-week-in-matrix-2024-03-29/#moderator-tools-for-pubhubs">announcement posted</a> in <a href="https://matrix.org/twim">This Week in Matrix (TWIM)</a> 2024-03-29.</em>
</p>

<hr>

<h1 id="this-week-in-matrix-2024-03-29" id="this-week-in-matrix-2024-03-29">This Week in Matrix 2024-03-29</h1>

<h2 id="dept-of-interesting-projects" id="dept-of-interesting-projects">Dept of Interesting Projects</h2>

<h3 id="moderator-tools-for-pubhubs" id="moderator-tools-for-pubhubs">Moderator Tools for PubHubs</h3>

<p>JulianF announces</p>

<blockquote><p>This week I have put up a web site documenting my work on <a href="https://www.ph.trax.im/">Moderator Tools for PubHubs</a>.</p>

<p>PubHubs is a Dutch research project to enable citizen-facing organisations to provide online group communications, value-aligned with their real-world presence. It uses matrix protocol, combined with an interesting and different user identity model involving pseudonyms and selective cryptographic disclosure of identity attributes such as “is over 18” or “is a member of organisation X”. Each hub is built around a non-federating Synapse server, with their own identity plugins and custom client.</p>

<p>I have been working on three aspects of introducing initial moderation tooling. Some of it crosses over with general matrix (this week&#39;s Pantalaimon role is a side product of the <a href="https://www.ph.trax.im/Moderation/Draupnir/draupnir-pubhubs/">Draupnir part</a>), while some is different (<a href="https://www.ph.trax.im/Moderation/disclosure/">Attribute Disclosure</a>), and the third part is general (research and planning for <a href="https://www.ph.trax.im/Moderation/civilised-discourse/">Civilised Discourse</a>).</p>

<p>My funded stint is coming to an end and I am looking for ways to continue in any related area of work — please matrix me <a href="https://matrix.to/#/@julian:foad.me.uk">@julian:foad.me.uk</a>!</p></blockquote>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:POSSE" class="hashtag"><span>#</span><span class="p-category">POSSE</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/posse-twim-moderator-tools-for-pubhubs</guid>
      <pubDate>Fri, 29 Mar 2024 19:30:00 +0000</pubDate>
    </item>
    <item>
      <title>POSSE: TWIM: Pantalaimon role for matrix-docker-ansible-deploy</title>
      <link>https://wrily.foad.me.uk/posse-twim-pantalaimon-role-for-matrix-docker-ansible-deploy</link>
      <description>&lt;![CDATA[This is my POSSE copy of the announcement posted in This Week in Matrix (TWIM) 2024-03-29.&#xA;!--more--&#xA;----&#xA;&#xA;This Week in Matrix 2024-03-29&#xA;&#xA;Dept of Ops 🛠&#xA;&#xA;matrix-docker-ansible-deploy (website)&#xA;&#xA;Slavi announces&#xA;&#xA;  Thanks to Julian Foad, matrix-docker-ansible-deploy can now install the Pantalaimon E2EE aware proxy daemon for you. It&#39;s already possible to integrate it with Draupnir to allow it to work in E2EE rooms - see our Draupnir docs for details.&#xA;    See our Setting up Pantalaimon documentation to get started.&#xA;&#xA;---&#xA;#PubHubs #matrix #POSSE&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><em>This is my <a href="https://indieweb.org/POSSE">POSSE</a> copy of the <a href="https://matrix.org/blog/2024/03/29/this-week-in-matrix-2024-03-29/#matrix-docker-ansible-deploy-website">announcement posted</a> in <a href="https://matrix.org/twim">This Week in Matrix (TWIM)</a> 2024-03-29.</em>
</p>

<hr>

<h1 id="this-week-in-matrix-2024-03-29" id="this-week-in-matrix-2024-03-29">This Week in Matrix 2024-03-29</h1>

<h2 id="dept-of-ops" id="dept-of-ops">Dept of Ops 🛠</h2>

<h3 id="matrix-docker-ansible-deploy-website-https-github-com-spantaleev-matrix-docker-ansible-deploy" id="matrix-docker-ansible-deploy-website-https-github-com-spantaleev-matrix-docker-ansible-deploy">matrix-docker-ansible-deploy (<a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">website</a>)</h3>

<p><a href="https://matrix.to/#/@slavi:devture.com">Slavi</a> announces</p>

<blockquote><p>Thanks to Julian Foad, <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">matrix-docker-ansible-deploy</a> can now install the <a href="https://github.com/matrix-org/pantalaimon">Pantalaimon</a> E2EE aware proxy daemon for you. It&#39;s already possible to integrate it with <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-bot-draupnir.md">Draupnir</a> to allow it to work in E2EE rooms – see our Draupnir docs for details.</p>

<p>See our <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-pantalaimon.md">Setting up Pantalaimon</a> documentation to get started.</p></blockquote>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:POSSE" class="hashtag"><span>#</span><span class="p-category">POSSE</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/posse-twim-pantalaimon-role-for-matrix-docker-ansible-deploy</guid>
      <pubDate>Fri, 29 Mar 2024 19:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Matrix: Inconsistent Rendering of User Links</title>
      <link>https://wrily.foad.me.uk/matrix-inconsistent-rendering-of-user-links</link>
      <description>&lt;![CDATA[I wanted to write &#34;please matrix me!&#34; with &#34;matrix me&#34; being a hyperlink to my matrix identity. Why should this be hard?&#xA;&#xA;I wrote (in markdown mode, using Element-web/desktop): please matrix me!&#xA;&#xA;This was formatted into HTML (by Element-web/desktop) as: please a href=\&#34;https://matrix.to/#/@julian:foad.me.uk\&#34;matrix me/a!. Already we&#39;ve lost the &#34;title&#34; part of the mark-up. Let&#39;s consider that a separate issue and continue by looking at how clients render this resulting HTML.&#xA;&#xA;How did clients render it? Ordered roughly best to worst.&#xA;&#xA;| good? | client | rendered | notes&#xA;|:---:| --- | --- | ---&#xA;| ☑ | Hydrogen | please ((J) matrix me) | a pill with my given text &#34;matrix me&#34; inside it, and my initial in place of avatar.&#xA;| ☑ | Nheko | please [matrix me] | a plain hyperlink&#xA;| ☑ | matrix-static/view.m.o | please [matrix me] | a plain hyperlink&#xA;| ! | Element (web/desktop) edit mode | please ((☺)matrix me) | a pill with my avatar and my given text &#34;matrix me&#34; inside it. Different from view mode!&#xA;| - | Element (web/desktop, Android) | please ((☺)JulianF) | a pill with my avatar and username, losing the link text that I specified.&#xA;| - | Fluffychat (desktop, Android) | please ((☺)JulianF) | a pill with my avatar and username, losing the link text that I specified.&#xA;| - | Syphon | please matrix me | plain text, losing the hyperlink.&#xA;&#xA;Differences in styling are not the issue, such as colour and shape and whether and how they display an avatar. Clients should differ in style. The issue is about functionality: it is a problem if the link text or the link target are lost.&#xA;&#xA;The first three are good (correct link text and hyperlink). The last three are all bad. (And the middle one in that table is technically correct but is a weird inconsistency in the UI.)&#xA;&#xA;Why should this be hard? Sigh.&#xA;&#xA;---&#xA;matrix&#xA;&#xA;---&#xA;Comments&#xA;&#xA;@rookienerd:aaria-net.org on 2024-05-14:&#xA;&#xA;  The worst one seems to be Fluffychat in my opinion! I&#39;ll give a go to Nheko&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>I wanted to write “please matrix me!” with “matrix me” being a hyperlink to my matrix identity. Why should this be hard?</p>

<p>I wrote (in markdown mode, using Element-web/desktop): <code>please [matrix me](https://matrix.to/#/@julian:foad.me.uk &#34;@julian:foad.me.uk&#34;)!</code></p>

<p>This was formatted into HTML (by Element-web/desktop) as: <code>please &lt;a href=\&#34;https://matrix.to/#/@julian:foad.me.uk\&#34;&gt;matrix me&lt;/a&gt;!</code>. Already we&#39;ve lost the “title” part of the mark-up. Let&#39;s consider that a separate issue and continue by looking at how clients render this resulting HTML.</p>

<p>How did clients render it? Ordered roughly best to worst.</p>

<table>
<thead>
<tr>
<th align="center">good?</th>
<th>client</th>
<th>rendered</th>
<th>notes</th>
</tr>
</thead>

<tbody>
<tr>
<td align="center">☑</td>
<td>Hydrogen</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-hydrogen.png" alt="please ((J) matrix me)"></td>
<td>a pill with my given text “matrix me” inside it, and my initial in place of avatar.</td>
</tr>

<tr>
<td align="center">☑</td>
<td>Nheko</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-nheko.png" alt="please [matrix me]"></td>
<td>a plain hyperlink</td>
</tr>

<tr>
<td align="center">☑</td>
<td>matrix-static/view.m.o</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-static.png" alt="please [matrix me]"></td>
<td>a plain hyperlink</td>
</tr>

<tr>
<td align="center">!</td>
<td>Element (web/desktop) <strong>edit mode</strong></td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-element-web-edit.png" alt="please ((☺)matrix me)"></td>
<td>a pill with my avatar and my given text “matrix me” inside it. <strong>Different from view mode!</strong></td>
</tr>

<tr>
<td align="center">-</td>
<td>Element (web/desktop, Android)</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-element-web.png" alt="please ((☺)JulianF)"></td>
<td>a pill with my avatar and username, losing the link text that I specified.</td>
</tr>

<tr>
<td align="center">-</td>
<td>Fluffychat (desktop, Android)</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-fluffychat.png" alt="please ((☺)JulianF)"></td>
<td>a pill with my avatar and username, losing the link text that I specified.</td>
</tr>

<tr>
<td align="center">-</td>
<td>Syphon</td>
<td><img src="https://blog.foad.me.uk/wp-content/uploads/2024/03/ss-matrix-link-syphon.png" alt="please matrix me"></td>
<td>plain text, losing the hyperlink.</td>
</tr>
</tbody>
</table>

<p>Differences in styling are not the issue, such as colour and shape and whether and how they display an avatar. Clients <em>should</em> differ in style. The issue is about functionality: it is a problem if the link text or the link target are lost.</p>

<p>The first three are good (correct link text and hyperlink). The last three are all bad. (And the middle one in that table is technically correct but is a weird inconsistency in the UI.)</p>

<p>Why should this be hard? Sigh.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a></p>

<hr>

<h2 id="comments" id="comments">Comments</h2>

<p><em>@rookienerd:aaria-net.org on 2024-05-14:</em></p>

<blockquote><p>The worst one seems to be Fluffychat in my opinion! I&#39;ll give a go to Nheko</p></blockquote>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/matrix-inconsistent-rendering-of-user-links</guid>
      <pubDate>Fri, 29 Mar 2024 16:05:50 +0000</pubDate>
    </item>
    <item>
      <title>PubHubs Moderation update 2024-03: A Web Site</title>
      <link>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-03-a-web-site</link>
      <description>&lt;![CDATA[I put up a web site with details of my PubHubs work:&#xA;&#xA;https://www.ph.trax.im&#xA;&#xA;Under Moderation, there are subsections for the main work areas of the project: Draupnir+Pantalaimon, Disclosure of Identity Attributes, and Civilised Discourse.&#xA;&#xA;That last area is the one I am currently working on.&#xA;&#xA;---&#xA;&#xA;#PubHubs #matrix #awesomeFOSS&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>I put up a web site with details of my PubHubs work:</p>

<p><a href="https://www.ph.trax.im">https://www.ph.trax.im</a></p>

<p>Under Moderation, there are subsections for the main work areas of the project: Draupnir+Pantalaimon, Disclosure of Identity Attributes, and Civilised Discourse.</p>

<p>That last area is the one I am currently working on.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-03-a-web-site</guid>
      <pubDate>Thu, 28 Mar 2024 18:43:57 +0000</pubDate>
    </item>
    <item>
      <title>Matrix Needs: Homeserver Local Discovery</title>
      <link>https://wrily.foad.me.uk/matrix-needs-homeserver-local-discovery</link>
      <description>&lt;![CDATA[Towards Matrix, Properly Decentralised&#xA;&#xA;One of matrix&#39;s key properties is decentralised communication.&#xA;&#xA;  No single party controls the whole system, there is not a single service provider of whom everybody is a customer, anyone can choose who provides their service or run it themself.&#xA;&#xA;When I install a Matrix client app, I expect it to connect to my Matrix server. What happens currently: most matrix client apps invite me to connect to one particular de-facto &#34;central&#34; server called &#34;matrix.org&#34;. As a user, connecting to my own server is a chore. In Element&#39;s flagship &#34;Element X&#34; preview, for example, currently I have to choose the less obvious buttons to skip past screens inviting me to choose the &#34;matrix.org&#34; server, twice, and input my server&#39;s domain on a &#34;search&#34; screen separate from where I enter my &#34;username&#34;. &#xA;&#xA;What matrix client apps should do: discover my local server automatically, make a reasonable suggestion for my username (e.g. from my computer&#39;s or phone&#39;s user account details, address-book, etc.), and move on to asking me for my password.&#xA;&#xA;It would be nice if we could standardise a way for a local matrix homeserver to advertise itself on the local network, and for a client to detect the local homeserver(s) automatically. Home media servers do this, and some other kinds of home servers. Technically there are a few different ways to achieve Zero-configuration networking, like UPnP, mDNS, DNS-SD.&#xA;&#xA;A different and complementary approach is to integrate with the accounts already configured in the phone&#39;s settings (on Android for example). I should be able to configure one matrix account in one place, and then any matrix client app I install should pick up the settings from there.&#xA;&#xA;Which technique(s) we use is not as important as that it should Just Work, for ordinary low-tech people who have not set up their own infrastructure but are perhaps subscribing to a matrix server provider.&#xA;&#xA;(Traditional &#34;enterprise&#34; deployment techniques are still valid in an enterprise setting, for example where the enterprise IT department configures the employees&#39; devices. But that is something they have the resources to develop and deploy. I am interested in what we can do for ordinary individuals at home.)&#xA;&#xA;It seems to me that&#39;s the way things should Just Work, everywhere from homes to enterprises, if we care about decentralisation.&#xA;&#xA;---&#xA;&#xA;#matrix #awesomeFOSS&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="towards-matrix-properly-decentralised" id="towards-matrix-properly-decentralised">Towards Matrix, Properly Decentralised</h2>

<p>One of matrix&#39;s key properties is <em>decentralised</em> communication.</p>

<blockquote><p>No single party controls the whole system, there is not a single service provider of whom everybody is a customer, anyone can choose who provides their service or run it themself.</p></blockquote>

<p>When I install a Matrix client app, I expect it to connect to my Matrix server. What happens currently: most matrix client apps invite me to connect to one particular de-facto “central” server called “matrix.org”. As a user, connecting to my own server is a chore. In Element&#39;s flagship “Element X” preview, for example, currently I have to choose the less obvious buttons to skip past screens inviting me to choose the “matrix.org” server, <em>twice</em>, and input my server&#39;s domain on a “search” screen separate from where I enter my “username”.</p>

<p>What matrix client apps should do: <strong>discover my local server automatically</strong>, make a reasonable suggestion for my username (e.g. from my computer&#39;s or phone&#39;s user account details, address-book, etc.), and move on to asking me for my password.</p>

<p>It would be nice if we could standardise a way for a local matrix homeserver to advertise itself on the local network, and for a client to detect the local homeserver(s) automatically. Home media servers do this, and some other kinds of home servers. Technically there are a few different ways to achieve <a href="https://en.wikipedia.org/wiki/Zero-configuration_networking">Zero-configuration networking</a>, like UPnP, mDNS, DNS-SD.</p>

<p>A different and complementary approach is to integrate with the accounts already configured in the phone&#39;s settings (on Android for example). I should be able to configure one matrix account in one place, and then any matrix client app I install should pick up the settings from there.</p>

<p>Which technique(s) we use is not as important as that it should Just Work, for ordinary low-tech people who have not set up their own infrastructure but are perhaps subscribing to a matrix server provider.</p>

<p>(Traditional “enterprise” deployment techniques are still valid in an enterprise setting, for example where the enterprise IT department configures the employees&#39; devices. But that is something they have the resources to develop and deploy. I am interested in what we can do for ordinary individuals at home.)</p>

<p>It seems to me that&#39;s the way things should Just Work, everywhere from homes to enterprises, if we care about decentralisation.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/matrix-needs-homeserver-local-discovery</guid>
      <pubDate>Tue, 27 Feb 2024 21:16:31 +0000</pubDate>
    </item>
    <item>
      <title>PubHubs Moderation update 2024-02-02</title>
      <link>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-02-02</link>
      <description>&lt;![CDATA[Related docs: Disclosure of Identity Attributes page on Moderator Tools for PubHubs web site.&#xA;PubHubs-moderation live demo: central.ph.s.trax.im/client&#xA;  TODO: instructions; basically you need Yivi app with dev mode enabled and two sets of demo credentials (one as moderator, one as recipient)&#xA;disclosure UI live prototype: on qx.trax.im&#xA;&#xA;Disclosure Flow&#xA;&#xA;  A moderator asks someone to disclose an attribute of their real identity. The recipient provide the requested attribute, using Yivi to attach a cryptographic proof.&#xA;&#xA;In the last update I introduced a demo of attribute disclosure. I have since completed the main TODO there, making the disclosure flow happen on the recipient&#39;s account. (In the first demo the moderator&#39;s role and the recipient&#39;s role both took place in  the same login session in the same account.)&#xA;&#xA;This week I have been thinking about how we will need to improve the user experience, or flow, of this disclosure request and response.&#xA;&#xA;Writing the dialogue boxes and associated logic by hand was tedious and buggy. Rapid prototyping would be helpful. I decided it&#39;s time for me to learn a better way. Being new to UI design and fervently open-source principled, I searched for a FOSS solution and found Quant-UX.&#xA;!--more--&#xA;&#xA;Quant-UX&#xA;&#xA;Quant-UX seems well suited for this task. Unlike the better known PenPot, an open source tool for detailed visual design, Quant-UX focuses on dropping UI components into place and wiring them together for a live testable UI design, with facilities for collecting feedback from user testing. While Quant-UX is a bit rough around the edges compared to a polished commercial product like Figma, having minor bugs, inconsistencies and so on, it is nevertheless powerful and usable enough. And on the positive side, I understand it can do things that Figma can&#39;t.&#xA;&#xA;There is even a &#34;low-code&#34; sister project Luisa.cloud which promises to import a Quant-UX (or Figma) design into a real application and run it for real. I am interested to try that too, but that will have to wait.&#xA;&#xA;I set about self-hosting Quant-UX to be sure of owning my own data. Now it is running on my Trax domain, at qx.trax.im. (You can try it, but be aware I&#39;m providing it &#34;as-is&#34;, no guarantees at all, even if you create an account there (which I may or may not allow). Consider using the official site or hosting your own.)&#xA;&#xA;Live Prototype: Disclosure Flow&#xA;&#xA;I made a prototype, roughly representing the disclosure flow in the initial demo, and a wiki page about it with screen-shots and with links to the live prototype where you can click through and add comments to the screens.&#xA;&#xA;  ss-ask-disclosure-flow-overview-1b&#xA;    View, interact with and comment on the prototype&#xA;&#xA;Improvement Ideas&#xA;&#xA;Some initial ideas about improvements to the flow:&#xA;&#xA;The moderator could initiate the process by clicking an action button on a message from the intended recipient user in a hub room, or by clicking on the user&#39;s avatar or pseudonym in some list, and the relevant user would be pre-populated in the initial dialogue and not editable there.&#xA;&#xA;The recipient user should receive a more gentle notification than suddenly seeing a pop-up dialogue of any kind. Perhaps a notification consistent with other notifications, though perhaps indicating a greater &#34;urgency&#34;, from which they can then access the full details of the request when they are ready.&#xA;&#xA;I started adding some &#34;comment&#34; annotations on the UI prototype, mentioning some of these thoughts. You (dear reader) can do so too, either anonymously or after creating an account. (I have reported a bug whereby none of the existing comment annotations can be seen until you add a new comment, then they all appear.) If you add any comments there, please also contact me another way to let me know you&#39;re doing so, as I might not otherwise notice.&#xA;&#xA;---&#xA;&#xA;\[EDIT 2024-04-23: add links to Related Docs\]&#xA;&#xA;#PubHubs #matrix #QuantUX #awesomeFOSS&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<ul><li>Related docs: <a href="https://www.ph.trax.im/Moderation/disclosure/">Disclosure of Identity Attributes</a> page on <a href="https://www.ph.trax.im/">Moderator Tools for PubHubs</a> web site.</li>
<li>PubHubs-moderation live demo: <a href="https://central.ph.s.trax.im/client">central.ph.s.trax.im/client</a>
<ul><li><em>TODO: instructions; basically you need Yivi app with dev mode enabled and two sets of demo credentials (one as moderator, one as recipient)</em></li></ul></li>
<li>disclosure UI live prototype: <a href="https://qx.trax.im/#/share.html?h=a2aa10a2cRRlSMwsQ44dP4S1bZEByQzzkFvR5Zbc51ZBJGBJ3LuBU4cGS8Lu">on qx.trax.im</a></li></ul>

<h2 id="disclosure-flow" id="disclosure-flow">Disclosure Flow</h2>

<blockquote><p>A moderator asks someone to disclose an attribute of their real identity. The recipient provide the requested attribute, using Yivi to attach a cryptographic proof.</p></blockquote>

<p>In <a href="https://wrily.foad.me.uk/pubhubs-moderation-update-2024-01">the last update</a> I introduced a demo of attribute disclosure. I have since completed the main TODO there, making the disclosure flow happen on the recipient&#39;s account. (In the first demo the moderator&#39;s role and the recipient&#39;s role both took place in  the same login session in the same account.)</p>

<p>This week I have been thinking about how we will need to improve the user experience, or flow, of this disclosure request and response.</p>

<p>Writing the dialogue boxes and associated logic by hand was tedious and buggy. Rapid prototyping would be helpful. I decided it&#39;s time for me to learn a better way. Being new to UI design and fervently open-source principled, I searched for a FOSS solution and found <a href="https://quant-ux.com/">Quant-UX</a>.
</p>

<h2 id="quant-ux" id="quant-ux">Quant-UX</h2>

<p>Quant-UX seems well suited for this task. Unlike the better known <a href="https://penpot.app/self-host">PenPot</a>, an open source tool for detailed visual design, Quant-UX focuses on dropping UI components into place and wiring them together for a live testable UI design, with facilities for collecting feedback from user testing. While Quant-UX is a bit rough around the edges compared to a polished commercial product like Figma, having minor bugs, inconsistencies and so on, it is nevertheless powerful and usable enough. And on the positive side, I understand it can do things that Figma can&#39;t.</p>

<p>There is even a “low-code” sister project <a href="https://luisa.cloud/">Luisa.cloud</a> which promises to import a Quant-UX (or Figma) design into a real application and run it for real. I am interested to try that too, but that will have to wait.</p>

<p>I set about <a href="https://lab.trax.im/infra/quant-ux-docker-ansible">self-hosting Quant-UX</a> to be sure of owning my own data. Now it is running on my Trax domain, at <a href="https://qx.trax.im">qx.trax.im</a>. (You can try it, but be aware I&#39;m providing it “as-is”, no guarantees at all, even if you create an account there (which I may or may not allow). Consider using the official site or hosting your own.)</p>

<h2 id="live-prototype-disclosure-flow" id="live-prototype-disclosure-flow">Live Prototype: Disclosure Flow</h2>

<p>I made a prototype, roughly representing the disclosure flow in the initial demo, and <a href="https://lab.trax.im/PubHubs/pubhubs-moderation-designs/-/wikis/Disclosure-flow-1">a wiki page about it with screen-shots</a> and with links to <a href="https://qx.trax.im/#/share.html?h=a2aa10a2cRRlSMwsQ44dP4S1bZEByQzzkFvR5Zbc51ZBJGBJ3LuBU4cGS8Lu">the live prototype</a> where you can click through and add comments to the screens.</p>

<blockquote><p><a href="https://qx.trax.im/#/share.html?h=a2aa10a2cRRlSMwsQ44dP4S1bZEByQzzkFvR5Zbc51ZBJGBJ3LuBU4cGS8Lu"><img src="https://lab.trax.im/PubHubs/pubhubs-moderation-designs/-/wikis/uploads/134d14ce4df236825e045bd218688fca/ss-ask-disclosure-flow-overview-1b.png" alt="ss-ask-disclosure-flow-overview-1b"></a></p>

<p><a href="https://qx.trax.im/#/share.html?h=a2aa10a2cRRlSMwsQ44dP4S1bZEByQzzkFvR5Zbc51ZBJGBJ3LuBU4cGS8Lu">View, interact with and comment on the prototype</a></p></blockquote>

<h2 id="improvement-ideas" id="improvement-ideas">Improvement Ideas</h2>

<p>Some initial ideas about improvements to the flow:</p>
<ul><li><p>The moderator could initiate the process by clicking an action button on a message from the intended recipient user in a hub room, or by clicking on the user&#39;s avatar or pseudonym in some list, and the relevant user would be pre-populated in the initial dialogue and not editable there.</p></li>

<li><p>The recipient user should receive a more gentle notification than suddenly seeing a pop-up dialogue of any kind. Perhaps a notification consistent with other notifications, though perhaps indicating a greater “urgency”, from which they can then access the full details of the request when they are ready.</p></li></ul>

<p>I started adding some “comment” annotations on the UI prototype, mentioning some of these thoughts. You (dear reader) can do so too, either anonymously or after creating an account. (I have reported <a href="https://github.com/KlausSchaefers/quant-ux/issues/267">a bug</a> whereby none of the existing comment annotations can be seen until you add a new comment, then they all appear.) If you add any comments there, please also contact me another way to let me know you&#39;re doing so, as I might not otherwise notice.</p>

<hr>

<p><em>[EDIT 2024-04-23: add links to Related Docs]</em></p>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a> <a href="https://wrily.foad.me.uk/tag:QuantUX" class="hashtag"><span>#</span><span class="p-category">QuantUX</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-02-02</guid>
      <pubDate>Fri, 02 Feb 2024 12:16:45 +0000</pubDate>
    </item>
    <item>
      <title>PubHubs Moderation update 2024-01</title>
      <link>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-01</link>
      <description>&lt;![CDATA[This month I have been building a PubHubs-specific feature, the ability for a moderator to ask a someone to disclose an attribute of their real identity.&#xA;&#xA;Related docs: Disclosure of Identity Attributes page on Moderator Tools for PubHubs web site.&#xA;&#xA;When a person signs in to PubHubs hub through the Yivi verified credentials system, initially they are allocated a pseudonymous user identifier, for example @123-321:testhub.matrix.host. From this pseudonym, not even an operator or moderator of the hub can discover the user&#39;s real identity.&#xA;&#xA;A moderator may wish to ask a user to confirm their real identity, to some degree. Through Yivi it is possible to ask a user to reveal a cryptographic proof [1] of one or more of their identity attributes. Some common attributes are one&#39;s real name, physical address, or email address. An attribute could also be something like &#34;age is at least 18 years&#34;.&#xA;&#xA;First Demo Version&#xA;!--more--&#xA;&#xA;This demo may be seen and tested at https://testhub0.ph.s.trax.im (the hub-client alone) or https://central.ph.s.trax.im/client#/ (in the global-client). (This is a staging/testing deployment, not stable.)&#xA;&#xA;1a&#xA;&#xA;1b&#xA;&#xA;1c&#xA;&#xA;1d&#xA;1d2&#xA;&#xA;1e&#xA;&#xA;1f&#xA;&#xA;In this demo version:&#xA;&#xA;the moderator is concerned about a user (pseudonym &#39;bad-apple3&#39;), and starts the disclosure request&#xA;moderator chooses: a user, a message, a set of attributes&#xA;on submitting the form, a private room with the recipient is created or opened, and a request message is sent into that room&#xA;a Yivi signing session is started (DEMO: this signing session runs on the moderator&#39;s side; it should run on the recipient&#39;s side)&#xA;the recipient uses Yivi to provide the requested attributes, with which Yivi signs a (pre-filled) reply message&#xA;the reply, signed with the requested attributes, is received by the moderator in the private room&#xA;&#xA;TODO:&#xA;&#xA;The Yivi signing session must be initiated on the recipient&#39;s client, not the moderator&#39;s. \[DONE, 2024-01-30\]&#xA;&#xA;This version does not need or use Draupnir.&#xA;&#xA;---&#xA;&#xA;\[1\]: a id=&#34;1&#34;A proof that such an attribute has been attested by some mutually trusted authority./a&#xA;&#xA;\[EDIT 2024-04-23: add links to Related Docs\]&#xA;&#xA;#PubHubs #matrix&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>This month I have been building a PubHubs-specific feature, the ability for a moderator to ask a someone to disclose an attribute of their real identity.</p>
<ul><li>Related docs: <a href="https://www.ph.trax.im/Moderation/disclosure/">Disclosure of Identity Attributes</a> page on <a href="https://www.ph.trax.im/">Moderator Tools for PubHubs</a> web site.</li></ul>

<p>When a person signs in to PubHubs hub through the <a href="https://yivi.app/en/">Yivi</a> verified credentials system, initially they are allocated a pseudonymous user identifier, for example <code>@123-321:testhub.matrix.host</code>. From this pseudonym, not even an operator or moderator of the hub can discover the user&#39;s real identity.</p>

<p>A moderator may wish to ask a user to confirm their real identity, to some degree. Through Yivi it is possible to ask a user to reveal a cryptographic proof <a href="#1">[1]</a> of one or more of their identity attributes. Some common attributes are one&#39;s real name, physical address, or email address. An attribute could also be something like “age is at least 18 years”.</p>

<h2 id="first-demo-version" id="first-demo-version">First Demo Version</h2>



<p>This demo may be seen and tested at <a href="https://testhub0.ph.s.trax.im">https://testhub0.ph.s.trax.im</a> (the hub-client alone) or <a href="https://central.ph.s.trax.im/client#/">https://central.ph.s.trax.im/client#/</a> (in the global-client). (This is a staging/testing deployment, not stable.)</p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1a.png" alt="1a"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1b.png" alt="1b"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1c.png" alt="1c"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1d.png" alt="1d">
<img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1d2.png" alt="1d2"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1e.png" alt="1e"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/01/ss-ph-disclose-1f.png" alt="1f"></p>

<p>In this demo version:</p>
<ul><li>the moderator is concerned about a user (pseudonym &#39;bad-apple3&#39;), and starts the disclosure request</li>
<li>moderator chooses: a user, a message, a set of attributes</li>
<li>on submitting the form, a private room with the recipient is created or opened, and a request message is sent into that room</li>
<li>a Yivi signing session is started (DEMO: this signing session runs on the moderator&#39;s side; it should run on the recipient&#39;s side)</li>
<li>the recipient uses Yivi to provide the requested attributes, with which Yivi signs a (pre-filled) reply message</li>
<li>the reply, signed with the requested attributes, is received by the moderator in the private room</li></ul>

<p>TODO:</p>
<ul><li>The Yivi signing session must be initiated on the recipient&#39;s client, not the moderator&#39;s. <em>[DONE, 2024-01-30]</em></li></ul>

<p>This version does not need or use Draupnir.</p>

<hr>

<p>[1]: <a id="1" id="1">A proof that such an attribute has been attested by some mutually trusted authority.</a></p>

<p><em>[EDIT 2024-04-23: add links to Related Docs]</em></p>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/pubhubs-moderation-update-2024-01</guid>
      <pubDate>Tue, 23 Jan 2024 20:21:07 +0000</pubDate>
    </item>
    <item>
      <title>PubHubs Moderation update 2023-12</title>
      <link>https://wrily.foad.me.uk/pubhubs-moderation-update-2023-12</link>
      <description>&lt;![CDATA[Last week I began making this primitive Draupnir (moderation bot) UI, in my PubHubs work.&#xA;&#xA;!--more--&#xA;&#xA;The &#34;Moderation view&#34; column on the left is my new bit. The right hand side is a regular matrix timeline, showing some interaction in the Draupnir bot&#39;s management room.&#xA;&#xA;Draupnir is built to be operated by sending commands like !draupnir rooms in its management room, and reading its responses in the room timeline. That&#39;s a universal way of interacting with a bot, but it&#39;s not very friendly to a new moderator.&#xA;&#xA;So we want some sort of UI that&#39;s more friendly.&#xA;&#xA;This first attempt captures the various HTML response messages from the Draupnir status-getting commands. It shows the same displays as we can see in the timeline, only in a place where they don&#39;t scroll away and we can hide and reveal each one separately.&#xA;&#xA;Updating this view is inefficient of course. When it sees any message from the Draupnir bot in the management room, it updates the corresponding view section (based on text substring matches, ugh). If you click the &#34;refresh&#34; button, it sends all the status-getting commands, so that the responses will (soon) come back and update the view.&#xA;&#xA;Probably neither PubHubs nor Draupnir wants to continue it in this direction but anyway it&#39;s something where there was AFAIK nothing. Nevertheless, if anyone&#39;s interested, it&#39;s open-source.&#xA;&#xA;I&#39;m not sure what direction best to take the desire for a GUI. I&#39;m going to take a break from that until a better plan emerges.&#xA;&#xA;I think, more than the technical issues in getting such a view updated and displayed nicely, a bigger issue is it feels unfocused. Rather than a GUI that just has the ability to display all the possible info, it feels like we would want a GUI that focuses on specific scenarios, bringing together all the required info and control for, for example, managing a spam attack, or managing a user who violates CoC but has previously been in good standing.&#xA;&#xA;I don&#39;t have the UI design skills nor motivation nor funding to go into a big UX design, although I&#39;ll enquire into it a bit.&#xA;&#xA;What Next?&#xA;&#xA;Now I&#39;m going to build a PubHubs-specific feature, the ability to ask a user (who initially has a pseudonymous mxid) to reveal an attribute of their real identity, from the IRMA/Yivi verified credentials system, to the moderator. I don&#39;t yet know if or how much Draupnir might be involved in that.&#xA;&#xA;---&#xA;&#xA;#PubHubs #matrix&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Last week I began making this primitive Draupnir (moderation bot) UI, in my PubHubs work.</p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2023/12/2023-12-13-Draupnir-primitive-UI-2.png" alt="">
</p>

<p>The “Moderation view” column on the left is my new bit. The right hand side is a regular matrix timeline, showing some interaction in the Draupnir bot&#39;s management room.</p>

<p>Draupnir is built to be operated by sending commands like <code>!draupnir rooms</code> in its management room, and reading its responses in the room timeline. That&#39;s a universal way of interacting with a bot, but it&#39;s not very friendly to a new moderator.</p>

<p>So we want some sort of UI that&#39;s more friendly.</p>

<p>This first attempt captures the various HTML response messages from the Draupnir status-getting commands. It shows the same displays as we can see in the timeline, only in a place where they don&#39;t scroll away and we can hide and reveal each one separately.</p>

<p>Updating this view is inefficient of course. When it sees any message from the Draupnir bot in the management room, it updates the corresponding view section (based on text substring matches, ugh). If you click the “refresh” button, it sends all the status-getting commands, so that the responses will (soon) come back and update the view.</p>

<p>Probably neither PubHubs nor Draupnir wants to continue it in this direction but anyway it&#39;s something where there was AFAIK nothing. Nevertheless, if anyone&#39;s interested, <a href="https://lab.trax.im/PubHubs/PubHubs/-/tree/jf-dev">it&#39;s open-source</a>.</p>

<p>I&#39;m not sure what direction best to take the desire for a GUI. I&#39;m going to take a break from that until a better plan emerges.</p>

<p>I think, more than the technical issues in getting such a view updated and displayed nicely, a bigger issue is it feels unfocused. Rather than a GUI that just has the ability to display all the possible info, it feels like we would want a GUI that focuses on specific scenarios, bringing together all the required info and control for, for example, managing a spam attack, or managing a user who violates CoC but has previously been in good standing.</p>

<p>I don&#39;t have the UI design skills nor motivation nor funding to go into a big UX design, although I&#39;ll enquire into it a bit.</p>

<h2 id="what-next" id="what-next">What Next?</h2>

<p>Now I&#39;m going to build a PubHubs-specific feature, the ability to ask a user (who initially has a pseudonymous mxid) to reveal an attribute of their real identity, from the IRMA/Yivi verified credentials system, to the moderator. I don&#39;t yet know if or how much Draupnir might be involved in that.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:PubHubs" class="hashtag"><span>#</span><span class="p-category">PubHubs</span></a> <a href="https://wrily.foad.me.uk/tag:matrix" class="hashtag"><span>#</span><span class="p-category">matrix</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/pubhubs-moderation-update-2023-12</guid>
      <pubDate>Wed, 13 Dec 2023 13:39:33 +0000</pubDate>
    </item>
  </channel>
</rss>