<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>awesomeFOSS &amp;mdash; julian</title>
    <link>https://wrily.foad.me.uk/tag:awesomeFOSS</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>Sat, 25 Apr 2026 16:00:40 +0000</pubDate>
    <item>
      <title>UnifiedPush -- Wider Developments</title>
      <link>https://wrily.foad.me.uk/unifiedpush-wider-developments</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;An article about Building the Self-Agency Mobile Ecosystem: Push Messaging&#xA;&#xA;Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently. But Who Cares Who Delivers Our Notifications? Our answer is: we care, and we do not like being locked in to depending on one mega-corp&#39;s system.&#xA;&#xA;Therefore, in our libre mobile computing devices, we require a push-messaging infrastructure built from open standard technology that gives us freedom to choose our service providers and authority over them.&#xA;&#xA;Read more in Going Google-Free with UnifiedPush in /e/OS and my other articles about UnifiedPush .&#xA;&#xA;How We Get There&#xA;&#xA;How can we build this? What is needed to get widespread UnifiedPush support in /e/ and other mobile OS?&#xA;!--more--&#xA;&#xA;The big picture involves several areas of work.&#xA;&#xA;OS integration of the distributor, including how it&#39;s configured, auto-detected, optimised, etc.&#xA;Server Software: Making sure a suitable server-side component is available, supported, optimised for this use case.&#xA;Server hosting: making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems.&#xA;Apps: Working with other apps to make sure they connect and work with UP out-of-the-box.&#xA;Sharing this work among other mobile OS projects (microG, CalyxOS, GrapheneOS, PostmarketOS, ...) .&#xA;Consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and vice-versa.&#xA;&#xA;(Links in this and the following sections lead to relevant issues or discussions, where I could find any.)&#xA;&#xA;OS Integration of the UP Distributor&#xA;&#xA;Including how the UP distributor is configured, auto-detected, optimised, Android permissions, etc.&#xA;&#xA;I recently analysed how /e/OS 2.5 has started the ball rolling&#xA;&#xA;Server Software&#xA;&#xA;Making sure a suitable server-side component is available, supported, optimised for this use case&#xA;&#xA;Nextcloud: UnifiedPush Provider -- exists&#xA;It could alternatively begin with a fork of ntfy-server for example.&#xA;&#xA;Server Hosting: Technical&#xA;&#xA;Making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems, ranging from hobbyist to serious commercial systems.&#xA;&#xA;Docker ntfy -- exists&#xA;K8s ntfy helm-chart -- exists&#xA;Nextcloud: UnifiedPush Provider -- exists&#xA;Matrix-Docker-Ansible-Deploy: ntfy-server -- exists&#xA;Yunohost: ntfy-server -- exists&#xA;SelfHostBlocks -- not yet&#xA;CoopCloud -- not yet&#xA;Fediversity (an upcoming hosting project) -- not yet&#xA;&#xA;Server Hosting: Social/Business Aspects&#xA;&#xA;Work out and write up (shareable) policies about who hosts, terms and conditions, privacy, rate limiting and other special measures, etc.?&#xA;&#xA;Apps&#xA;&#xA;Working with other apps to make sure they connect and work with UP out-of-the-box.&#xA;&#xA;Category 1: default apps in /e/OS etc., like...&#xA;&#xA;Mail: K9/Thunderbird-andriod #5165 and UnifiedPush for IMAP (NGI proposal 2024-10-535)&#xA;Nextcloud -uppush #17 -notifications #1225 -android #8684&#xA;Accounts/Calendar/Contacts (DAVx5 #36 + DAV-push)&#xA;&#xA;Category 2: other popular apps like...&#xA;&#xA;HomeAssistant #446344&#xA;Fluffychat -- exists&#xA;Element -- exists&#xA;Signal forks&#xA;Telegram-FOSS #577&#xA;Conversations.im -- exists&#xA;Pixelfed #86&#xA;&#xA;See also the UnifiedPush wish list.&#xA;&#xA;Sharing with other mobile OS projects&#xA;&#xA;Sharing this work among other mobile OS projects.&#xA;&#xA;/e/OS -- exists&#xA;microG #486&#xA;CalyxOS #1395&#xA;GrapheneOS #10455&#xA;PostmarketOS -- UnifiedPush, Push notifications&#xA;SailfishOS -- mentioned in 2023-01-12 meeting minutes as blocked by much work needed to enable background services&#xA;&#xA;And even desktop OS:&#xA;&#xA;KUnifiedPush -- exists -- note also KDE runs their own (ntfy) UP server&#xA;&#xA;Standardising UP client-server protocol?&#xA;&#xA;Should we consider standardising the UP client-server protocol? At present, by design, one must choose a UP distributor and UP server together as a pair. If we standardised the protocol between them, so any distributor would work with any server, this would certainly have some benefits, but also down-sides, and is not necessarily the right thing to do. UP was designed this way on purpose and achieves its goals without needing to standardise there. No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.&#xA;&#xA;Therefore this is an exploration rather than a development. I discuss this further in a separate article.&#xA;&#xA;---&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#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><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a></p>

<p><em>An article about Building the Self-Agency Mobile Ecosystem: Push Messaging</em></p>

<p>Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently. But <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications">Who Cares Who Delivers Our Notifications?</a> Our answer is: we care, and we do not like being locked in to depending on one mega-corp&#39;s system.</p>

<p>Therefore, in our libre mobile computing devices, we require a push-messaging infrastructure built from open standard technology that gives us freedom to choose our service providers and authority over them.</p>

<p>Read more in <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">Going Google-Free with UnifiedPush in /e/OS</a> and my other <a href="https://wrily.foad.me.uk/tag:unifiedPush">articles about UnifiedPush</a> .</p>

<h2 id="how-we-get-there" id="how-we-get-there">How We Get There</h2>

<p>How can we build this? What is needed to get widespread UnifiedPush support in /e/ and other mobile OS?
</p>

<p>The big picture involves several areas of work.</p>
<ul><li>OS integration of the distributor, including how it&#39;s configured, auto-detected, optimised, etc.</li>
<li>Server Software: Making sure a suitable server-side component is available, supported, optimised for this use case.</li>
<li>Server hosting: making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems.</li>
<li>Apps: Working with other apps to make sure they connect and work with UP out-of-the-box.</li>
<li>Sharing this work among other mobile OS projects (<a href="https://github.com/microg/GmsCore/issues/486">microG</a>, <a href="https://gitlab.com/CalyxOS/calyxos/-/issues/1395">CalyxOS</a>, <a href="https://discuss.grapheneos.org/d/10455-unifiedpushntfy-integration-in-the-os">GrapheneOS</a>, <a href="https://postmarketos.org/">PostmarketOS</a>, ...) .</li>
<li>Consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and <em>vice-versa</em>.</li></ul>

<p>(Links in this and the following sections lead to relevant issues or discussions, where I could find any.)</p>

<h2 id="os-integration-of-the-up-distributor" id="os-integration-of-the-up-distributor">OS Integration of the UP Distributor</h2>

<p>Including how the UP distributor is configured, auto-detected, optimised, Android permissions, etc.</p>
<ul><li>I recently analysed how <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os" title="Going Google-Free with UnifiedPush in /e/OS">/e/OS 2.5 has started the ball rolling</a></li></ul>

<h2 id="server-software" id="server-software">Server Software</h2>

<p>Making sure a suitable server-side component is available, supported, optimised for this use case</p>
<ul><li><a href="https://apps.nextcloud.com/apps/uppush">Nextcloud: UnifiedPush Provider</a> — <strong>exists</strong></li>
<li>It could alternatively begin with a fork of ntfy-server for example.</li></ul>

<h2 id="server-hosting-technical" id="server-hosting-technical">Server Hosting: Technical</h2>

<p>Making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems, ranging from hobbyist to serious commercial systems.</p>
<ul><li><a href="https://hub.docker.com/r/binwiederhier/ntfy">Docker ntfy</a> — <strong>exists</strong></li>
<li><a href="https://codeberg.org/wrenix/helm-charts/src/branch/main/ntfy">K8s ntfy helm-chart</a> — <strong>exists</strong></li>
<li><a href="https://apps.nextcloud.com/apps/uppush">Nextcloud: UnifiedPush Provider</a> — <strong>exists</strong></li>
<li><a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-ntfy.md">Matrix-Docker-Ansible-Deploy: ntfy-server</a> — <strong>exists</strong></li>
<li><a href="https://apps.yunohost.org/app/ntfy">Yunohost: ntfy-server</a> — <strong>exists</strong></li>
<li><a href="https://shb.skarabox.com/services.html">SelfHostBlocks</a> — not yet</li>
<li><a href="https://recipes.coopcloud.tech/">CoopCloud</a> — not yet</li>
<li><a href="https://www.fediversity.eu/">Fediversity</a> (an upcoming hosting project) — not yet</li></ul>

<h2 id="server-hosting-social-business-aspects" id="server-hosting-social-business-aspects">Server Hosting: Social/Business Aspects</h2>

<p>Work out and write up (shareable) policies about who hosts, terms and conditions, privacy, rate limiting and other special measures, etc.?</p>

<h2 id="apps" id="apps">Apps</h2>

<p>Working with other apps to make sure they connect and work with UP out-of-the-box.</p>

<p>Category 1: default apps in /e/OS etc., like...</p>
<ul><li>Mail: <a href="https://github.com/thunderbird/thunderbird-android/issues/5165">K9/Thunderbird-andriod #5165</a> and <a href="https://lab.trax.im/up-for-imap/up-for-imap/-/wikis/NGI-Proposal">UnifiedPush for IMAP (NGI proposal <code>2024-10-535</code>)</a></li>
<li>Nextcloud <a href="https://codeberg.org/NextPush/uppush/pulls/17">-uppush #17</a> <a href="https://github.com/nextcloud/notifications/issues/1225#issuecomment-2262644834">-notifications #1225</a> <a href="https://github.com/nextcloud/android/issues/8684">-android #8684</a></li>
<li>Accounts/Calendar/Contacts (<a href="https://github.com/bitfireAT/webdav-push/discussions/36" title="Tutorial video- How to use Push with DAVx⁵ and your Nextcloud">DAVx5 #36</a> + <a href="https://github.com/bitfireAT/nc_ext_dav_push">DAV-push</a>)</li></ul>

<p>Category 2: other popular apps like...</p>
<ul><li><a href="https://community.home-assistant.io/t/add-unifiedpush-support-to-home-assistant-android-core/446344">HomeAssistant #446344</a></li>
<li>Fluffychat — <strong>exists</strong></li>
<li>Element — <strong>exists</strong></li>
<li>Signal forks</li>
<li><a href="https://github.com/Telegram-FOSS-Team/Telegram-FOSS/issues/577">Telegram-FOSS #577</a></li>
<li>Conversations.im — <strong>exists</strong></li>
<li><a href="https://github.com/pixelfed/ideas/issues/86">Pixelfed #86</a></li></ul>

<p>See also the <a href="https://codeberg.org/UnifiedPush/wishlist/issues">UnifiedPush wish list</a>.</p>

<h2 id="sharing-with-other-mobile-os-projects" id="sharing-with-other-mobile-os-projects">Sharing with other mobile OS projects</h2>

<p>Sharing this work among other mobile OS projects.</p>
<ul><li><a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">/e/OS</a> — <strong>exists</strong></li>
<li><a href="https://github.com/microg/GmsCore/issues/486">microG #486</a></li>
<li><a href="https://gitlab.com/CalyxOS/calyxos/-/issues/1395">CalyxOS #1395</a></li>
<li><a href="https://discuss.grapheneos.org/d/10455-unifiedpushntfy-integration-in-the-os">GrapheneOS #10455</a></li>
<li><a href="https://postmarketos.org/">PostmarketOS</a> — <a href="https://wiki.postmarketos.org/wiki/UnifiedPush" title="wiki page">UnifiedPush</a>, <a href="https://wiki.postmarketos.org/wiki/Push_notifications" title="wiki page">Push notifications</a></li>
<li><a href="https://sailfishos.org">SailfishOS</a> — mentioned <a href="https://forum.sailfishos.org/t/community-meeting-on-irc-12th-january-2023/13729/9">in 2023-01-12 meeting minutes</a> as blocked by much work needed to enable background services</li></ul>

<p>And even desktop OS:</p>
<ul><li><a href="https://blogs.kde.org/2024/10/19/kunifiedpush-1.0.0-is-out/">KUnifiedPush</a> — <strong>exists</strong> — note also KDE runs their own (ntfy) UP server</li></ul>

<h2 id="standardising-up-client-server-protocol" id="standardising-up-client-server-protocol">Standardising UP client-server protocol?</h2>

<p>Should we consider standardising the UP client-server protocol? At present, by design, one must choose a UP distributor and UP server together as a pair. If we standardised the protocol between them, so any distributor would work with any server, this would certainly have some benefits, but also down-sides, and is not necessarily the right thing to do. UP was designed this way on purpose and achieves its goals without needing to standardise there. No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.</p>

<p>Therefore this is an exploration rather than a development. I discuss this further in <a href="https://wrily.foad.me.uk/unifiedpush-standardise-up-client-server-protocol">a separate article</a>.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</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/unifiedpush-wider-developments</guid>
      <pubDate>Wed, 27 Nov 2024 14:48:00 +0000</pubDate>
    </item>
    <item>
      <title>UnifiedPush: Standardise UP Client-Server Protocol?</title>
      <link>https://wrily.foad.me.uk/unifiedpush-standardise-up-client-server-protocol</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;This is a technical article. For a more general introduction to UnifiedPush you might read the first half of Going Google-Free with UnifiedPush in /e/OS or my other articles about UnifiedPush .&#xA;&#xA;Should we consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and vice-versa?&#xA;&#xA;Not necessarily, and I will attempt to explain why.&#xA;!--more--&#xA;&#xA;UnifiedPush High Level Architecture&#xA;&#xA;UnifiedPush animation.svg&#xA;&#xA;Look at the diagrams on the unifiedpush.org home page. There are four connections involved, shown arranged in a square. UP standardises the protocol for one of the connections, the bottom one (UP distributor - app). It also standardises something about how the whole system works.&#xA;&#xA;The protocol on the top connection (App server -  UP server) has recently been upgraded to be compatible with WebPush.&#xA;&#xA;The other two (App - app-server and UP - UP-server) are two other, separate, independent protocols. The protocol the app developer uses for app - app-server is not relevant to UnifiedPush. At present, UnifiedPush standards also do not specify a protocol to be used for the connection between the UP server and the UP distributor (shown on the left).&#xA;&#xA;The ntfy distributor requires a ntfy server, whereas the nextpush distributor requires a nextpush server, and so on. They use different protocols for that link in the chain.&#xA;&#xA;Multiple Protocols or Standardised Protocol&#xA;&#xA;It would be possible to make a UP server that supports (for example) both the NextPush and ntfy protocol(s). In fact ntfy supports two different protocols (the &#34;json&#34; one and the &#34;websocket&#34; one) and you choose one in the settings. The ntfy server supports both of those.&#xA;&#xA;The point is, UP achieves its goals without needing to standardise there. In some respects it&#39;s beneficial that the user and/or service provider can choose those components and protocol that best suit their needs, while the end-user apps and app servers all still remain completely compatible (standardised) no matter what UP components are used.&#xA;&#xA;Additionally standardising the UP - UP-server protocol could make different UP servers and distributors interoperable. It could potentially help with users bringing their own choice of device (assuming it has a UP distributor built in) from one service provider to another, for example.&#xA;&#xA;But that&#39;s more of a deployment-level standard: something that service providers might want to standardise. Android-compatible mobile OS&#39;s (for example) might get together and declare &#34;we&#34; (as a loose group) like to standardise on (let&#39;s say) ntfy-websocket protocol here, because (suppose) it works best with android&#39;s OS network layer and sleep optimisations. (Just examples; I have not researched what protocol actually works best in each scenario.) Then, Linux-based mobile OS&#39;s might choose a different protocol that works better with Linux&#39;s networking and sleep optimisations. Then, if a certain libre mobile service provider wanted to support both android-compatible and linux-based devices, they might choose to support two protocols. Or would standardising on one protocol be more helpful in such a scenario? It&#39;s not clear.&#xA;&#xA;No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.&#xA;&#xA;So, at this stage this is perhaps the least important of all the areas to work on.&#xA;&#xA;---&#xA;&#xA;First explained in #unifiedpush:matrix.org.&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#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><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a></p>

<p><em>This is a technical article. For a more general introduction to UnifiedPush you might read the first half of <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">Going Google-Free with UnifiedPush in /e/OS</a> or my other <a href="https://wrily.foad.me.uk/tag:unifiedPush">articles about UnifiedPush</a> .</em></p>

<p>Should we consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and <em>vice-versa</em>?</p>

<p>Not necessarily, and I will attempt to explain why.
</p>

<h2 id="unifiedpush-high-level-architecture" id="unifiedpush-high-level-architecture">UnifiedPush High Level Architecture</h2>

<p><a href="https://unifiedpush.org/"><img src="https://unifiedpush.org/img/animation.svg" alt="UnifiedPush animation.svg" title="UnifiedPush High Level Architecture diagram, from its home page"></a></p>

<p>Look at the diagrams on the <a href="https://unifiedpush.org/">unifiedpush.org</a> home page. There are four connections involved, shown arranged in a square. UP standardises the protocol for one of the connections, the bottom one (UP distributor &lt;–&gt; app). It also standardises something about how the whole system works.</p>

<p>The protocol on the top connection (App server –&gt; UP server) has recently been upgraded to be compatible with WebPush.</p>

<p>The other two (App &lt;–&gt; app-server and UP &lt;–&gt; UP-server) are two other, separate, independent protocols. The protocol the app developer uses for app &lt;–&gt; app-server is not relevant to UnifiedPush. At present, UnifiedPush standards also do not specify a protocol to be used for the connection between the UP server and the UP distributor (shown on the left).</p>

<p>The ntfy distributor requires a ntfy server, whereas the nextpush distributor requires a nextpush server, and so on. They use different protocols for <em>that</em> link in the chain.</p>

<h2 id="multiple-protocols-or-standardised-protocol" id="multiple-protocols-or-standardised-protocol">Multiple Protocols or Standardised Protocol</h2>

<p>It would be possible to make a UP server that supports (for example) both the NextPush and ntfy protocol(s). In fact ntfy supports two different protocols (the “json” one and the “websocket” one) and you choose one in the settings. The ntfy server supports both of those.</p>

<p>The point is, UP achieves its goals without needing to standardise there. In some respects it&#39;s beneficial that the user and/or service provider can choose those components and protocol that best suit their needs, while the end-user apps and app servers all still remain completely compatible (standardised) no matter what UP components are used.</p>

<p>Additionally standardising the UP &lt;–&gt; UP-server protocol could make different UP servers and distributors interoperable. It could potentially help with users bringing their own choice of device (assuming it has a UP distributor built in) from one service provider to another, for example.</p>

<p>But that&#39;s more of a deployment-level standard: something that service providers might want to standardise. Android-compatible mobile OS&#39;s (for example) might get together and declare “we” (as a loose group) like to standardise on (let&#39;s say) ntfy-websocket protocol here, because (suppose) it works best with android&#39;s OS network layer and sleep optimisations. (Just examples; I have not researched what protocol actually works best in each scenario.) Then, Linux-based mobile OS&#39;s might choose a different protocol that works better with Linux&#39;s networking and sleep optimisations. Then, if a certain libre mobile service provider wanted to support both android-compatible and linux-based devices, they might choose to support two protocols. Or would standardising on one protocol be more helpful in such a scenario? It&#39;s not clear.</p>

<p>No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.</p>

<p>So, at this stage this is perhaps the least important of all the areas to work on.</p>

<hr>

<p><em>First explained in <a href="https://matrix.to/#/%23unifiedpush:matrix.org"><code>#unifiedpush:matrix.org</code></a>.</em></p>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</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/unifiedpush-standardise-up-client-server-protocol</guid>
      <pubDate>Tue, 26 Nov 2024 20:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Going Google-Free with UnifiedPush in /e/OS</title>
      <link>https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; / img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/eos-logose-logo-color.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;Congratulations UnifiedPush! Congratulations Murena!&#xA;&#xA;Murena&#39;s /e/OS 2.5 ships with UnifiedPush support included as announced by a small note in the 2.5-t release notes .&#xA;&#xA;This exciting development brings Google-free push messaging to the regular users of an important player in the freedom mobile OS space.&#xA;!--more--&#xA;&#xA;So What?&#xA;&#xA;Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently.&#xA;&#xA;To achieve this, the phone operating system keeps a single network connection open to a push messaging server. The apps don&#39;t need to keep running in the background: they can go to sleep. When a push message arrives, the OS wakes up the relevant app and hands it the message.&#xA;&#xA;All our apps share this push service -- even the &#34;private&#34; ones -- if they want push messaging. &#xA;&#xA;That&#39;s great, except... Who Cares Who Delivers Our Notifications?&#xA;&#xA;Until now, most people&#39;s phones run Google or Apple software. The Big Techs operate and control those phones. Along with everything else, they provide the push messaging service. And so they, Big Tech, control it.&#xA;&#xA;The UnifiedPush public open standard changes this. With UnifiedPush, we are no longer merely &#34;users&#34; of our devices but are in charge of them. With UnifiedPush, we can choose which service provider will deliver our push messaging. Thereby we are in control of who has the ability to monitor or block our push messaging.&#xA;&#xA;UnifiedPush has been available to those interested, for a while now, but until now it has required installing extra software.&#xA;&#xA;Putting the support for push messaging into the operating system means delusers/del people who choose not to be operated by Big Tech will now be able to simply install the apps they care about and immediately have the alternative system working for them.&#xA;&#xA;Technical&#xA;&#xA;I&#39;m going to delve into the technical side of this initial release, because it&#39;s a big interest area of mine. If you are a regular user, I suggest at this stage you might concentrate on switching to /e/OS or another freedom mobile OS and expect this functionality will be maturing quickly from now on and soon be seamless. If you&#39;re an early adopter or interested in its development, read on.&#xA;&#xA;I am trying it out. I already run /e/OS on my main phone and upgrading to version 2.5 was simple with the built-in upgrader.&#xA;&#xA;The OS embeds a custom fork of ntfy, calling itself &#34;foundation.e.ntfy 1.17.0&#34;. So, congratulations also to ntfy! At this stage the developer of ntfy, Philip Heckel, told me in #ntfy room he was &#34;not yet involved&#34; in this development and this is the &#34;First I&#39;m hearing about it.&#34;&#xA;&#xA;ntfy is a notification system that can also provide UnifiedPush service. It is so good at this job that it has for some time been the UnifiedPush implementation recommended for most people. One can install the ntfy app and it provides UnifiedPush service to our other apps.&#xA;&#xA;When we install the ntfy app ourself, we may either let it use the creator&#39;s default server (at ntfy.sh) or configure it to use our choice of ntfy server, if we know of one or if we run our own. As with anything, using someone else&#39;s server comes with conditions and restrictions, especially if we don&#39;t pay for the service, so we need to think about that.&#xA;&#xA;Let&#39;s see what /e/OS does.&#xA;&#xA;If not Google&#39;s then Whose Server?&#xA;&#xA;In this push service built in to /e/OS, there is no configuration UI. There is a tiny settings UI where we have to &#34;enable&#34; the service -- see below. Technically, the full ntfy UI is also available, but not accessible through the normal system UI -- neither the app launcher nor the settings. But as curious techies we can hack in to it if we like. See below.&#xA;&#xA;What we can do is install and use the UP-example app. Click the &#34;REGISTER&#34; button, and we discover it&#39;s preconfigured to connect to... . o O (their own ntfy server?) No! It connects to ntfy.sh, the server run by the author of ntfy. Hmm.&#xA;&#xA;I should say that I found this while not signed in to Murena&#39;s &#34;e cloud&#34; services. It&#39;s possible and would make some sense if it would point to a different server if signed in. I will be interested to find out.&#xA;&#xA;The first thing to comment on, then, is Murena will surely need to run their own push server, for privacy and scaling and economic reasons, or else make an agreement with ntfy. In the short term, to get things started, it may be acceptable for everyone to be subject to the free (gratis) ntfy service&#39;s rate limits and other conditions. That&#39;s something that can be changed later, seamlessly, because UnifiedPush doesn&#39;t require app (server) developers to know or care which service provider they will eventually be connecting to.&#xA;&#xA;Secondly, for privacy and self-determination reasons, there should be a way to use our own choice of server, but not necessarily as a dedicated configuration option. A better way might be to tie it to the main Nextcloud account through a single-sign-on, so that when we set up the phone we have only to make that one choice of service provider and expect it to cover all services. That would give people the advantage of simplicity which is how the Big Techs play that game, but now with open standard technologies enabling us to have a choice among service providers.&#xA;&#xA;When an app registers for UnifiedPush service, if more than one distributor is installed, it asks which to use. A normal user would have only one, and would not see this. Here as an experimentor and developer I already had both ntfy and NextPush installed:&#xA;&#xA;  It&#39;s not ideal that it identifies as &#34;ntfy&#34;, exactly the same as the official ntfy app. I expect this will soon be changed to /e/OS branding.&#xA;&#xA;The tiny settings UI is found a the bottom of the system settings menu.&#xA;&#xA;    It&#39;s disabled by default. In this state, the UnifiedPush service is still advertised to apps, and they can register, but push messages are not delivered. (I suspect this isn&#39;t how we want the disabled state to be. Probably it should not advertise as available.)&#xA;&#xA;That&#39;s all the configuration we get in this version of /e/OS.&#xA;&#xA;(Aside: I couldn&#39;t find this in settings, to begin with. Searching in settings for &#34;ntfy&#34; or &#34;push&#34; or &#34;unifiedpush&#34; doesn&#39;t return any results, for me.)&#xA;&#xA;Let&#39;s Hack In&#xA;&#xA;As a developer we can access the ntfy UI through the system terminal, for example through an ADB shell (running this command on a USB-connected computer with &#34;adb&#34; tool installed, with ADB USB debugging enabled in the phone&#39;s developer settings):&#xA;&#xA;adb shell am start -n foundation.e.ntfy/io.heckel.ntfy.ui.MainActivity&#xA;&#xA;  Just the same as in the user-installed ntfy app. (I can compare them side by side because I also have it installed, because I was already using it before this upgrade.)&#xA;&#xA;We first notice this screen prominently shows some warnings about battery optimisation and choice of connection protocol. Are these warnings relevant to this version?, I wonder. (At first it showed only the first, and later both.)&#xA;&#xA;And it lets us open its settings. In the ntfy settings we can choose our own server, and I can confirm this takes effect and works.&#xA;&#xA;  This screen also shows the currently subscribed topics -- here, the &#34;example&#34; one -- and after configuring it to use my own server, the displayed URL confirms that. (Generally one &#34;topic&#34; corresponds to one app.)&#xA;&#xA;Ntfy Not NextPush?&#xA;&#xA;I&#39;m a little surprised Murena chose ntfy, seeing as their system is closely coupled to Nextcloud: there is also Nextpush (source on Codeberg, yay!), a Nextcloud-hosted UnifiedPush server module and its client app, that could be used instead. Perhaps they found ntfy is more stable or refined than Nextpush.&#xA;&#xA;UnifiedPush developer S1m says the &#34;Next version of NextPush will be a lot more stable, and I&#39;ve rewritten the UI.&#34;&#xA;&#xA;The Future&#xA;&#xA;While UnifiedPush is pretty good standard already, it is still maturing. Some important, recent improvements are making their way into the standard and into implementations like ntfy right now. These include full compatibility with the WebPush standard, and a better way to wake an app without it needing permission for unrestricted battery usage.&#xA;&#xA;An adjacent recent development is DAV Push, an open standard for pushing instant updates to our shared files, calendars and contacts through CalDAV, CardDAV and WebDAV, which can also work through UnifiedPush.&#xA;&#xA;To ensure people can exercise their right NOT to depend on Google, we have wider work to do. Integrating a UnifiedPush distributor is one useful step towards it. Beyond this, we need to be working with the developers of popular apps to get them supported, sharing this development across the freedom mobile OS ecosystem, deploying servers, ensuring reliability, and more. I write about this in a follow-up post: UnifiedPush — Wider Developments .&#xA;&#xA;Conclusion&#xA;&#xA;The details of this initial implementation seem to me to indicate an early preview release, with significant changes still needed. But that&#39;s OK: these technical implementation details can be changed.&#xA;&#xA;Leaving that aside, the social side of this is amazing: it&#39;s making UP available to main-stream users. That&#39;s a big deal for the libre mobile ecosystem. Hurray!&#xA;&#xA;---&#xA;&#xA;Add UnifiedPush to /e/OS to make it possible for developers to avoid FCM and better support F-Droid applications -- an /e/ community forum thread requesting UP support.&#xA;Source code of /e/ fork of ntfy: https://gitlab.e.foundation/e/os/ntfy-android&#xA;&#34;Integrate ntfy in /e/OS&#34; --merge request, including a simple settings UI (just enable/disable).&#xA;Romain Hunault of Murena is presenting it at Capitole du Libre 2024 this afternoon.&#xA;&#xA;---&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#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><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a> <a href="https://e.foundation/" title="/e/ foundation"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/eos-logos_e-logo-color.png" style="max-height: 5em"/></a></p>

<p>Congratulations UnifiedPush! Congratulations Murena!</p>

<p>Murena&#39;s /e/OS 2.5 <a href="https://community.e.foundation/t/add-unifiedpush-to-e-os-to-make-it-possible-for-developers-to-avoid-fcm-and-better-support-f-droid-applications/46197/28" title="an /e/ community forum thread requesting UP support">ships with UnifiedPush support included</a> as announced by a small note in <a href="https://gitlab.e.foundation/e/os/releases/-/releases/v2.5-t">the 2.5-t release notes</a> .</p>

<p>This exciting development brings Google-free push messaging to the regular users of an important player in the freedom mobile OS space.
</p>

<h2 id="so-what" id="so-what">So What?</h2>

<p>Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently.</p>

<p>To achieve this, the phone operating system keeps a single network connection open to a push messaging server. The apps don&#39;t need to keep running in the background: they can go to sleep. When a push message arrives, the OS wakes up the relevant app and hands it the message.</p>

<p>All our apps share this push service — even the “private” ones — if they want push messaging.</p>

<p>That&#39;s great, except... <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications">Who Cares Who Delivers Our Notifications?</a></p>

<p>Until now, most people&#39;s phones run Google or Apple software. The Big Techs operate and control those phones. Along with everything else, they provide the push messaging service. And so they, Big Tech, control it.</p>

<p>The <a href="https://unifiedpush.org/">UnifiedPush</a> public open standard changes this. With UnifiedPush, we are no longer merely “users” of our devices but are in charge of them. With UnifiedPush, we can choose which service provider will deliver our push messaging. Thereby we are in control of who has the ability to monitor or block our push messaging.</p>

<p>UnifiedPush has been available to those interested, for a while now, but until now it has required installing extra software.</p>

<p>Putting the support for push messaging into the operating system means <del>users</del> people who choose not to be operated by Big Tech will now be able to simply install the apps they care about and immediately have the alternative system working for them.</p>

<h2 id="technical" id="technical">Technical</h2>

<p>I&#39;m going to delve into the technical side of this initial release, because it&#39;s a big interest area of mine. If you are a regular user, I suggest at this stage you might concentrate on <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone!">switching to /e/OS or another freedom mobile OS</a> and expect this functionality will be maturing quickly from now on and soon be seamless. If you&#39;re an early adopter or interested in its development, read on.</p>

<p>I am trying it out. I already run /e/OS on my main phone and upgrading to version 2.5 was simple with the built-in upgrader.</p>

<p>The OS embeds a custom fork of <a href="https://ntfy.sh">ntfy</a>, calling itself “foundation.e.ntfy 1.17.0”. So, congratulations also to <a href="https://ntfy.sh">ntfy</a>! At this stage the developer of ntfy, Philip Heckel, <a href="https://matrix.to/#/!KQaqifczWbCaidLETg:matrix.org/$Fpj8SD6Cih0sFmtGgLgxWINMWrHJs2711YzLP5zhWMM?via=foad.me.uk&amp;amp;via=t2bot.io&amp;amp;via=matrix.org">told me</a> in <a href="https://matrix.to/#/%23ntfy:matrix.org"><code>#ntfy</code></a> room he was “not yet involved” in this development and this is the “First I&#39;m hearing about it.”</p>

<p><a href="https://ntfy.sh">ntfy</a> is a notification system that can also provide UnifiedPush service. It is so good at this job that it has for some time been the UnifiedPush implementation recommended for most people. One can install the <a href="https://ntfy.sh">ntfy</a> app and it provides UnifiedPush service to our other apps.</p>

<p>When we install the ntfy app ourself, we may either let it use the creator&#39;s default server (at <code>ntfy.sh</code>) or configure it to use our choice of ntfy server, if we know of one or if we run our own. As with anything, using someone else&#39;s server comes with conditions and restrictions, especially if we don&#39;t pay for the service, so we need to think about that.</p>

<p>Let&#39;s see what /e/OS does.</p>

<h2 id="if-not-google-s-then-whose-server" id="if-not-google-s-then-whose-server">If not Google&#39;s then Whose Server?</h2>

<p>In this push service built in to /e/OS, there is no configuration UI. There is a tiny settings UI where we have to “enable” the service — see below. Technically, the full ntfy UI is also available, but not accessible through the normal system UI — neither the app launcher nor the settings. But as curious techies we can hack in to it if we like. See below.</p>

<p>What we can do is install and use the <a href="https://f-droid.org/en/packages/org.unifiedpush.example/">UP-example</a> app. Click the “REGISTER” button, and we discover it&#39;s preconfigured to connect to... . o O (their own ntfy server?) No! It connects to ntfy.sh, the server run by the author of ntfy. Hmm.</p>

<p>I should say that I found this while <strong>not</strong> signed in to Murena&#39;s “e cloud” services. It&#39;s possible and would make some sense if it would point to a different server if signed in. I will be interested to find out.</p>

<p>The first thing to comment on, then, is Murena will surely need to run their own push server, for privacy and scaling and economic reasons, or else make an agreement with ntfy. In the short term, to get things started, it may be acceptable for everyone to be subject to the free (gratis) ntfy service&#39;s rate limits and other conditions. That&#39;s something that can be changed later, seamlessly, because UnifiedPush doesn&#39;t require app (server) developers to know or care which service provider they will eventually be connecting to.</p>

<p>Secondly, for privacy and self-determination reasons, there should be a way to use our own choice of server, but not necessarily as a dedicated configuration option. A better way might be to tie it to the main Nextcloud account through a single-sign-on, so that when we set up the phone we have only to make that one choice of service provider and expect it to cover all services. That would give people the advantage of simplicity which is how the Big Techs play that game, but now with open standard technologies enabling us to have a choice among service providers.</p>

<p>When an app registers for UnifiedPush service, if more than one distributor is installed, it asks which to use. A normal user would have only one, and would not see this. Here as an experimentor and developer I already had both ntfy and NextPush installed:</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-UP-chooser.png" alt=""></p></blockquote>

<p>It&#39;s not ideal that it identifies as “ntfy”, exactly the same as the official ntfy app. I expect this will soon be changed to /e/OS branding.</p>

<p>The tiny settings UI is found a the bottom of the system settings menu.</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241116-eOS-ntfy-Settings1.png" alt=""></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241116-eOS-ntfy-Settings2.png" alt=""></p></blockquote>

<p>It&#39;s disabled by default. In this state, the UnifiedPush service is still advertised to apps, and they can register, but push messages are not delivered. (I suspect this isn&#39;t how we want the disabled state to be. Probably it should not advertise as available.)</p>

<p>That&#39;s all the configuration we get in this version of /e/OS.</p>

<p>(Aside: I couldn&#39;t find this in settings, to begin with. Searching in settings for “ntfy” or “push” or “unifiedpush” doesn&#39;t return any results, for me.)</p>

<h2 id="let-s-hack-in" id="let-s-hack-in">Let&#39;s Hack In</h2>

<p>As a developer we can access the ntfy UI through the system terminal, for example through an ADB shell (running this command on a USB-connected computer with “adb” tool installed, with ADB USB debugging enabled in the phone&#39;s developer settings):</p>

<pre><code class="language-sh">adb shell am start -n foundation.e.ntfy/io.heckel.ntfy.ui.MainActivity
</code></pre>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-eOS-ntfy-UI-main.png" alt=""></p></blockquote>

<p>Just the same as in the user-installed ntfy app. (I can compare them side by side because I also have it installed, because I was already using it before this upgrade.)</p>

<p>We first notice this screen prominently shows some warnings about battery optimisation and choice of connection protocol. Are these warnings relevant to this version?, I wonder. (At first it showed only the first, and later both.)</p>

<p>And it lets us open its settings. In the ntfy settings we can choose our own server, and I can confirm this takes effect and works.</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-eOS-ntfy-UI-settings.png" alt=""></p></blockquote>

<p>This screen also shows the currently subscribed topics — here, the “example” one — and after configuring it to use my own server, the displayed URL confirms that. (Generally one “topic” corresponds to one app.)</p>

<h2 id="ntfy-not-nextpush" id="ntfy-not-nextpush">Ntfy Not NextPush?</h2>

<p>I&#39;m a little surprised Murena chose ntfy, seeing as their system is closely coupled to Nextcloud: there is also <a href="https://unifiedpush.org/users/distributors/nextpush/">Nextpush</a> (source <a href="https://codeberg.org/NextPush/">on Codeberg</a>, yay!), a Nextcloud-hosted UnifiedPush server module and its client app, that could be used instead. Perhaps they found ntfy is more stable or refined than Nextpush.</p>

<p>UnifiedPush developer S1m says the “Next version of NextPush will be a lot more stable, and I&#39;ve rewritten the UI.”</p>

<h2 id="the-future" id="the-future">The Future</h2>

<p>While UnifiedPush is pretty good standard already, it is still maturing. Some important, recent improvements are making their way into the standard and into implementations like ntfy right now. These include full compatibility with the WebPush standard, and a <a href="https://unifiedpush.org/developers/spec/android/#service-to-raise-to-the-foreground">better way to wake an app</a> without it needing permission for unrestricted battery usage.</p>

<p>An adjacent recent development is <a href="https://wrily.foad.me.uk/davx5-developing-dav-push-standard">DAV Push</a>, an open standard for pushing instant updates to our shared files, calendars and contacts through CalDAV, CardDAV and WebDAV, which can also work through UnifiedPush.</p>

<p>To ensure people can exercise their right NOT to depend on Google, we have wider work to do. Integrating a UnifiedPush distributor is one useful step towards it. Beyond this, we need to be working with the developers of popular apps to get them supported, sharing this development across the freedom mobile OS ecosystem, deploying servers, ensuring reliability, and more. I write about this in a follow-up post: <a href="https://wrily.foad.me.uk/unifiedpush-wider-developments">UnifiedPush — Wider Developments</a> .</p>

<h2 id="conclusion" id="conclusion">Conclusion</h2>

<p>The details of this initial implementation seem to me to indicate an early preview release, with significant changes still needed. But that&#39;s OK: these technical implementation details can be changed.</p>

<p>Leaving that aside, the social side of this is amazing: it&#39;s making UP available to main-stream users. That&#39;s a big deal for the libre mobile ecosystem. Hurray!</p>

<hr>
<ul><li><a href="https://community.e.foundation/t/add-unifiedpush-to-e-os-to-make-it-possible-for-developers-to-avoid-fcm-and-better-support-f-droid-applications/46197/28">Add UnifiedPush to /e/OS to make it possible for developers to avoid FCM and better support F-Droid applications</a> — an /e/ community forum thread requesting UP support.</li>
<li>Source code of /e/ fork of ntfy: <a href="https://gitlab.e.foundation/e/os/ntfy-android">https://gitlab.e.foundation/e/os/ntfy-android</a></li>
<li><a href="https://gitlab.e.foundation/e/os/ntfy-android/-/merge_requests/12">“Integrate ntfy in /e/OS”</a> —merge request, including a simple settings UI (just enable/disable).</li>
<li>Romain Hunault of Murena is <a href="https://cfp.capitoledulibre.org/cdl-2024/talk/89HG8E/">presenting it at Capitole du Libre 2024</a> this afternoon.</li></ul>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</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/going-google-free-with-unifiedpush-in-e-os</guid>
      <pubDate>Tue, 19 Nov 2024 12:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Immich -- Awesome Open Source</title>
      <link>https://wrily.foad.me.uk/immich-awesome-open-source</link>
      <description>&lt;![CDATA[immich-logo.svg&#xA;&#xA;In our family we look after our own photos -- we don&#39;t want Google or any other company deciding what we can and can&#39;t do with them.&#xA;&#xA;In the past we used various desktop/laptop based open source viewer software, with storage on local disks. More recently we have been running the awesome open source PhotoPrism, with its smartphone-compatible web interface and photo library management features. Although PhotoPrism is impressive judged on its own merits, and has indeed allowed us to manage our photos ourselves, it&#39;s just not quite as usable as we&#39;d wish.&#xA;&#xA;Next up is Immich.&#xA;!--more--&#xA;&#xA;feature-panel.png&#xA;&#xA;Immich promises &#34;partner sharing&#34;, where for example husband and wife might choose to share their whole photo libraries with each other. Immich offers stronger photo library management such as tagging, metadata manipulation, and deduplication of identical photos. Immich performs face recognition. Immich viewer apps seem to be user friendly and slick.&#xA;&#xA;What&#39;s Good, What&#39;s Not So Good&#xA;&#xA;For viewer apps we use the official Immich app from F-Droid on our degoogled phones and tablet, and the Immich web interface which works well on both mobile and desktop. The general impression is slick. It&#39;s fun to see a selection from &#34;N years ago&#34;. It&#39;s nice that various features of the viewer, such as the side-bar options to view by folder and view by people, can be turned on or off in the settings, depending on how we prefer to use the system. The main &#34;time line&#34; view works very well. Other views such as the view by people, by tags, on a map, and so on are functional but much less developed.&#xA;&#xA;The user interface could be improved a lot by allowing us to use the different selection criteria together: having begun to explore a region on the map, we then want to narrow the results by people or by tags. As it stands, the interface is an example of the all-too-common anti-pattern in which every time we select a new option the computer &#34;forgets&#34; what we just told it a moment ago. (Nearly every shopping web site is a dire example of that anti-pattern. We might filter our results by &#34;category=hardware&#34; and by &#34;material=metal&#34;, and then adjust our search terms, and watch the computer immediately throw away our carefully chosen filters.)&#xA;&#xA;Face Recognition&#xA;&#xA;Face recognition is impressive. I set Immich to scanning my existing library of thousands or tens of thousands of photos dating back twenty years, which took it a few hours on my few-years-old server. Immich created groups of faces that the algorithm considered to be the same person. These groupings were amazingly accurate. The few false matches were predominantly small blurry faces picked out of the background (but still the majority of these appeared accurate), or baby faces (where to be fair I can&#39;t tell the difference even among members of my own family), or where only a small part of a face could be seen (and even many of these were accurate).&#xA;&#xA;For naming the people, Immich presented a list of faces, one from each identified &#34;person&#34; group. The faces it chose were unfortunately often a small blurry image. It would be helpful if it could choose a &#34;clear&#34; image as the representative of each &#34;person&#34; group. On clicking this image we get to see all the photos in which that same person was identified, and there we can set the name of that person, and we can also choose a different representative image. This view of all the photos containing that person doesn&#39;t indicate where in the photo the person was detected, which in some cases puzzles me as they don&#39;t seem to be there at all, but perhaps knowing what the algorithm &#34;saw&#34; would just give me somewhere to direct my scorn and derision at its folly and might not really add anything helpful to the overall purpose.&#xA;&#xA;An enthusiast has created a better user interface for naming and managing the faces more quickly, all on one screen. It&#39;s the main feature so far of Varun Raj Manoharan&#39;s Immich Power Tools, and the demo video there shows it in action.&#xA;&#xA;Partner Sharing&#xA;&#xA;The partner sharing works by including both my photos and my wife&#39;s photos in my time line view. The same for her view, if it is set up reciprocally. That is a good start. It would be more useful if we could see which photos are &#34;ours&#34; and which are &#34;theirs&#34;. I would like to see them tagged with our initials, or perhaps distinguished by a colour or styling. I would like to be able to quickly show or hide each set, and to select by partner in the search.&#xA;&#xA;I hoped the partners would be able to share the same categorisation, tagging, face recognition and so on. At present unfortunately this is not possible. It is discussed as a potential future improvement in Show Face Recognition for Partner #5089.&#xA;&#xA;Because the current implementation of Partner Sharing isn&#39;t close enough, I am thinking about using just one &#34;family&#34; account in Immich, with both (or all) partners&#39; photo libraries in it. That might be the best way for our family to use the existing capability. Whether this would suit us depends on whether we use the upload/sync feature from our smartphones. If we do, then Immich&#39;s sync feature would place all of our photos into the same library. (I haven&#39;t found a feature to separate or tag them on upload based on which camera-phone they came from, although there might be a way.) Currently we are not using Immich&#39;s upload: we are using &#39;syncthing&#39; for that, copying our photos directly to our respective photo libraries on the server. Then in Immich we define these as &#34;external&#34; libraries (meaning they are outside Immich&#39;s built-in upload storage area).&#xA;&#xA;Folders, Albums, Tags&#xA;&#xA;I have a collection of (older) photos that I already organised into folders with descriptive names. I would like these to be shown as &#34;Albums&#34; or &#34;Tags&#34;. Immich imports tags if found in embedded metadata, and a few of my photos had these. Due to the sad state of standardisation of photo metadata, however, naming the files and folders is a more universal solution than embedding descriptions and tags in the photo metadata.&#xA;&#xA;The way I would expect or wish to get albums and tags from my collection would be to specify a set of patterns that match my folder and file names, and to specify rules to derive album names and tags from these patterns.&#xA;&#xA;There are open issues about potential future development of folder imports in Immich. In the meantime I might try the extension Salvoxia/immich-folder-album-creator noted below.&#xA;&#xA;Extensions&#xA;&#xA;Extensions I have noted to investigate further:&#xA;&#xA;    immich-folder-album-creator -- &#34;Automatically create and populate albums in Immich from a folder structure in external libraries&#34;&#xA;    Immich Power Tools -- alternative UI for face naming and management&#xA;    Immich-Kiosk -- &#34;A web slideshow for Immich&#34;&#xA;&#xA;---&#xA;&#xA;Freedom Software Ethics&#xA;&#xA;In terms of open source &#34;freedom software&#34; ethics, Immich sits somewhere in the middle of the spectrum.&#xA;&#xA;On the positive side, Immich is open source under the GNU AGPL v3 license: that&#39;s very good for maintaining the freedoms granted to its users. Immich has its own website at its own domain, immich.app, where it hosts its blog and documentation.&#xA;&#xA;On the other hand, like too many other good projects, the development is hosted in Microsoft Github rather than in a freedom-respecting forge such as Codeberg or at its own address. Use of MS Github is a real and present danger to the open source ecosystem: freedom software lives in freedom-respecting software forges. And development discussion is invited inside the proprietary Discord instead of through a freedom-respecting method such as Matrix: see Discord vs community values. Immich in its website footer also promotes other proprietary silos (Reddit, Youtube) and does not even mention any open/freedom tech channels such as the Fediverse.&#xA;&#xA;Immich advertise that their client app is available through the big silo stores (Google, Apple). They also also distribute it through the freedom-respecting app store F-Droid, for Android and android-compatible degoogled phones. They mention this in the docs but not on the main page.&#xA;&#xA;---&#xA;&#xA;#awesomeFOSS #selfHosted #degoogled&#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><a href="https://immich.app" title="immich.app"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/09/immich-logo-inline-light.png" alt="immich-logo.svg"></a></p>

<p>In our family we look after our own photos — we don&#39;t want Google or any other company deciding what we can and can&#39;t do with them.</p>

<p>In the past we used various desktop/laptop based open source viewer software, with storage on local disks. More recently we have been running the awesome open source <a href="https://photoprism.app/">PhotoPrism</a>, with its smartphone-compatible web interface and photo library management features. Although PhotoPrism is impressive judged on its own merits, and has indeed allowed us to manage our photos ourselves, it&#39;s just not quite as usable as we&#39;d wish.</p>

<p>Next up is <a href="https://immich.app" title="immich.app">Immich</a>.
</p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/09/feature-panel-e29ae95e6015f5c3c7328bef6aa7682c.png" alt="feature-panel.png"></p>

<p>Immich promises “partner sharing”, where for example husband and wife might choose to share their whole photo libraries with each other. Immich offers stronger photo library management such as tagging, metadata manipulation, and deduplication of identical photos. Immich performs face recognition. Immich viewer apps seem to be user friendly and slick.</p>

<h2 id="what-s-good-what-s-not-so-good" id="what-s-good-what-s-not-so-good">What&#39;s Good, What&#39;s Not So Good</h2>

<p>For viewer apps we use <a href="https://f-droid.org/en/packages/app.alextran.immich">the official Immich app from F-Droid</a> on our <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone">degoogled phones</a> and tablet, and the Immich web interface which works well on both mobile and desktop. The general impression is slick. It&#39;s fun to see a selection from “N years ago”. It&#39;s nice that various features of the viewer, such as the side-bar options to view by folder and view by people, can be turned on or off in the settings, depending on how we prefer to use the system. The main “time line” view works very well. Other views such as the view by people, by tags, on a map, and so on are functional but much less developed.</p>

<p>The user interface could be improved a lot by allowing us to use the different selection criteria together: having begun to explore a region on the map, we then want to narrow the results by people or by tags. As it stands, the interface is an example of the all-too-common anti-pattern in which every time we select a new option the computer “forgets” what we just told it a moment ago. (Nearly every shopping web site is a dire example of that anti-pattern. We might filter our results by “category=hardware” and by “material=metal”, and then adjust our search terms, and watch the computer immediately throw away our carefully chosen filters.)</p>

<h2 id="face-recognition" id="face-recognition">Face Recognition</h2>

<p>Face recognition is impressive. I set Immich to scanning my existing library of thousands or tens of thousands of photos dating back twenty years, which took it a few hours on my few-years-old server. Immich created groups of faces that the algorithm considered to be the same person. These groupings were amazingly accurate. The few false matches were predominantly small blurry faces picked out of the background (but still the majority of these appeared accurate), or baby faces (where to be fair I can&#39;t tell the difference even among members of my own family), or where only a small part of a face could be seen (and even many of these were accurate).</p>

<p>For naming the people, Immich presented a list of faces, one from each identified “person” group. The faces it chose were unfortunately often a small blurry image. It would be helpful if it could choose a “clear” image as the representative of each “person” group. On clicking this image we get to see all the photos in which that same person was identified, and there we can set the name of that person, and we can also choose a different representative image. This view of all the photos containing that person doesn&#39;t indicate where in the photo the person was detected, which in some cases puzzles me as they don&#39;t seem to be there at all, but perhaps knowing what the algorithm “saw” would just give me somewhere to direct my scorn and derision at its folly and might not really add anything helpful to the overall purpose.</p>

<p>An enthusiast has created a better user interface for naming and managing the faces more quickly, all on one screen. It&#39;s the main feature so far of Varun Raj Manoharan&#39;s <a href="https://github.com/varun-raj/immich-power-tools">Immich Power Tools</a>, and the demo video there shows it in action.</p>

<h2 id="partner-sharing" id="partner-sharing">Partner Sharing</h2>

<p>The partner sharing works by including both my photos and my wife&#39;s photos in my time line view. The same for her view, if it is set up reciprocally. That is a good start. It would be more useful if we could see which photos are “ours” and which are “theirs”. I would like to see them tagged with our initials, or perhaps distinguished by a colour or styling. I would like to be able to quickly show or hide each set, and to select by partner in the search.</p>

<p>I hoped the partners would be able to share the same categorisation, tagging, face recognition and so on. At present unfortunately this is not possible. It is discussed as a potential future improvement in <a href="https://github.com/immich-app/immich/discussions/5089">Show Face Recognition for Partner #5089</a>.</p>

<p>Because the current implementation of Partner Sharing isn&#39;t close enough, I am thinking about using just one “family” account in Immich, with both (or all) partners&#39; photo libraries in it. That might be the best way for our family to use the existing capability. Whether this would suit us depends on whether we use the upload/sync feature from our smartphones. If we do, then Immich&#39;s sync feature would place all of our photos into the same library. (I haven&#39;t found a feature to separate or tag them on upload based on which camera-phone they came from, although there might be a way.) Currently we are not using Immich&#39;s upload: we are using &#39;syncthing&#39; for that, copying our photos directly to our respective photo libraries on the server. Then in Immich we define these as “external” libraries (meaning they are outside Immich&#39;s built-in upload storage area).</p>

<h2 id="folders-albums-tags" id="folders-albums-tags">Folders, Albums, Tags</h2>

<p>I have a collection of (older) photos that I already organised into folders with descriptive names. I would like these to be shown as “Albums” or “Tags”. Immich imports tags if found in embedded metadata, and a few of my photos had these. Due to the sad state of standardisation of photo metadata, however, naming the files and folders is a more universal solution than embedding descriptions and tags in the photo metadata.</p>

<p>The way I would expect or wish to get albums and tags from my collection would be to specify a set of patterns that match my folder and file names, and to specify rules to derive album names and tags from these patterns.</p>

<p>There are open issues about potential future development of folder imports in Immich. In the meantime I might try the extension <a href="https://github.com/Salvoxia/immich-folder-album-creator">Salvoxia/immich-folder-album-creator</a> noted below.</p>

<h2 id="extensions" id="extensions">Extensions</h2>

<p>Extensions I have noted to investigate further:</p>

<p>    – <a href="https://github.com/Salvoxia/immich-folder-album-creator">immich-folder-album-creator</a> — “Automatically create and populate albums in Immich from a folder structure in external libraries”
    – <a href="https://github.com/varun-raj/immich-power-tools">Immich Power Tools</a> — alternative UI for face naming and management
    – <a href="https://github.com/damongolding/immich-kiosk">Immich-Kiosk</a> — “A web slideshow for Immich”</p>

<hr>

<h2 id="freedom-software-ethics" id="freedom-software-ethics">Freedom Software Ethics</h2>

<p>In terms of open source “freedom software” ethics, Immich sits somewhere in the middle of the spectrum.</p>

<p>On the positive side, Immich is open source under the GNU AGPL v3 license: that&#39;s very good for maintaining the freedoms granted to its users. Immich has its own website at its own domain, <a href="https://immich.app"><code>immich.app</code></a>, where it hosts its blog and documentation.</p>

<p>On the other hand, like too many other good projects, the development is hosted in Microsoft Github rather than in a freedom-respecting forge such as Codeberg or at its own address. Use of MS Github is a real and present danger to the open source ecosystem: <a href="https://wrily.foad.me.uk/foss-apps-live-in-foss-forges">freedom software lives in freedom-respecting software forges</a>. And development discussion is invited inside the proprietary Discord instead of through a freedom-respecting method such as Matrix: see <a href="https://wrily.foad.me.uk/discord-vs-community-values">Discord vs community values</a>. Immich in its website footer also promotes other proprietary silos (Reddit, Youtube) and does not even mention any open/freedom tech channels such as the Fediverse.</p>

<p>Immich advertise that their client app is available through the big silo stores (Google, Apple). They also also distribute it through the freedom-respecting app store <a href="https://f-droid.org/en/packages/app.alextran.immich/">F-Droid</a>, for Android and <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone">android-compatible degoogled phones</a>. They mention this in the docs but not on the main page.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:selfHosted" class="hashtag"><span>#</span><span class="p-category">selfHosted</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</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/immich-awesome-open-source</guid>
      <pubDate>Thu, 12 Sep 2024 10:00:00 +0000</pubDate>
    </item>
    <item>
      <title>WhoBIRD -- Awesome Open Source</title>
      <link>https://wrily.foad.me.uk/whobird-awesome-open-source</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/06/whoBIRD-icon.png&#34; style=&#34;max-height: 5em&#34;&#xA;&#xA;I recently learned something new about those tweety birds we hear in the tall trees all along our school run, cycling or walking past the golf course. Near the school end, lots of coal tits, a name with which I was barely familiar. Near our end, lots of wrens. I had an idea that wrens were rare and secretive and tiny, so it had not occurred to me they were responsible for that noisy cheerful chatter. Perhaps it&#39;s hard to spot one but they&#39;re loudly singing.&#xA;&#xA;These I learnt last week helped by an app named &#34;whoBIRD&#34; which, as you may guess, listens for bird calls and displays the most likely matches. It&#39;s delightful to identify real birds, and surprisingly successful if they&#39;re not too far away.&#xA;!--more--&#xA;&#xA;img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/06/ss-whoBIRD-dove.jpg&#34; style=&#34;float: right; width: 50%; max-width: 20em; padding: 2em;&#34;&#xA;&#xA;It&#39;s also fun trying to imitate bird calls, and satisfyingly hard to get past&#39;s WhoBIRD&#39;s correct identification of &#34;human whistle&#34;.&#xA;&#xA;My eye was drawn to WhoBIRD when I stumbled across it while browsing for another open-source app in F-Droid. It is a little volunteer/hobbyist app which matches the sound from the microphone against Cornell University&#39;s bird call data, displaying a name and a picture of the most likely match. That&#39;s all it does. &#xA;&#xA;Another family member has been using an app named &#34;Merlin&#34;, I soon found out, so I tried it too. Merlin is Cornell&#39;s own app, using the same data source. By contrast with WhoBird, Merlin seems aimed at serious amateur birders for research data collection, professionally produced, multi-featured and slick -- and on the other hand being a huge download and demanding sign-up into their club. (For a quick try-out I found that entering the fake email address &#34;a@b.c&#34; on every start suffices to access the sound identification feature with just names but no pictures or additional information.)&#xA;&#xA;It&#39;s nice to have the choice, which Cornell University enabled by publishing their research results as Open Data in their BirdNET project so that others can re-use it in other ways. Birders and ornithologists interested in the sightings and soundings side of this should consider Merlin or the other BirdNET apps. Technologists and researchers on the data analysis side might like to study and modify whoBIRD. As a builder and tinkerer myself, I value open source software on principle. Already I am imagining how I or anyone could modify whoBIRD to do things like send a picture of each identification to my smart watch. Or send the identifications through my Matrix network to co-ordinate the listening among multiple devices left near open windows at home, with a separate display standing on the kitchen table.&#xA;&#xA;---&#xA;&#xA;#awesomeFOSS #freedomSoftware #degoogled&#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><a href="https://f-droid.org/en/packages/org.woheller69.whobird/" title="get whoBIRD from F-Droid, the installable catalogue of freedom-software apps for android-compatibles"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/06/whoBIRD-icon.png" style="max-height: 5em"></a></p>

<p>I recently learned something new about those tweety birds we hear in the tall trees all along our school run, cycling or walking past the golf course. Near the school end, lots of coal tits, a name with which I was barely familiar. Near our end, lots of wrens. I had an idea that wrens were rare and secretive and tiny, so it had not occurred to me they were responsible for that noisy cheerful chatter. Perhaps it&#39;s hard to spot one but they&#39;re loudly singing.</p>

<p>These I learnt last week helped by an app named <a href="https://f-droid.org/en/packages/org.woheller69.whobird/" title="get whoBIRD from F-Droid, the installable catalogue of freedom-software apps for android-compatibles">“whoBIRD”</a> which, as you may guess, listens for bird calls and displays the most likely matches. It&#39;s delightful to identify real birds, and surprisingly successful if they&#39;re not too far away.
</p>

<p><a href="https://f-droid.org/en/packages/org.woheller69.whobird/" title="get whoBIRD from F-Droid, the installable catalogue of freedom-software apps for android-compatibles"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/06/ss-whoBIRD-dove.jpg" style="float: right; width: 50%; max-width: 20em; padding: 2em;"></a></p>

<p>It&#39;s also fun trying to imitate bird calls, and satisfyingly hard to get past&#39;s WhoBIRD&#39;s correct identification of “human whistle”.</p>

<p>My eye was drawn to WhoBIRD when I stumbled across it while browsing for another open-source app in <a href="https://f-droid.org" title="the installable catalogue of freedom-software apps for android-compatibles">F-Droid</a>. It is a little volunteer/hobbyist app which matches the sound from the microphone against Cornell University&#39;s bird call data, displaying a name and a picture of the most likely match. That&#39;s all it does.</p>

<p>Another family member has been using an app named “Merlin”, I soon found out, so I tried it too. Merlin is Cornell&#39;s own app, using the same data source. By contrast with WhoBird, Merlin seems aimed at serious amateur birders for research data collection, professionally produced, multi-featured and slick — and on the other hand being a huge download and demanding sign-up into their club. (For a quick try-out I found that entering the fake email address “a@b.c” on every start suffices to access the sound identification feature with just names but no pictures or additional information.)</p>

<p>It&#39;s nice to have the choice, which Cornell University enabled by publishing their research results as Open Data in their <a href="https://birdnet.cornell.edu/">BirdNET</a> project so that others can re-use it in other ways. Birders and ornithologists interested in the sightings and soundings side of this should consider Merlin or the other BirdNET apps. Technologists and researchers on the data analysis side might like to study and modify whoBIRD. As a builder and tinkerer myself, I value open source software on principle. Already I am imagining how I or anyone could modify whoBIRD to do things like send a picture of each identification to my smart watch. Or send the identifications through my Matrix network to co-ordinate the listening among multiple devices left near open windows at home, with a separate display standing on the kitchen table.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:freedomSoftware" class="hashtag"><span>#</span><span class="p-category">freedomSoftware</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</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/whobird-awesome-open-source</guid>
      <pubDate>Thu, 27 Jun 2024 08:19:16 +0000</pubDate>
    </item>
    <item>
      <title>Troubleshooting UnifiedPush</title>
      <link>https://wrily.foad.me.uk/troubleshooting-unifiedpush</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;Let&#39;s take charge of another part of our digital life! Must we be beholden to Google for delivering our push notifications? No! No longer! With apps that support UnifiedPush neither Google nor the app makers get to determine where our data goes and who gets to monitor it. We get the control, the freedom to choose.&#xA;&#xA;To me this feels like a breath of fresh air!&#xA;&#xA;You might find your way here while installing an app that uses UnifiedPush. Let&#39;s see how to make sure the notifications work properly.&#xA;!--more--&#xA;&#xA;The official UnifiedPush Troubleshooting page is, at the time of this writing, rather bare. (Perhaps, as an open source project, I can contribute to it. EDIT: Here&#39;s a preview I have submitted on Codeberg, that&#39;s becoming better than this article.) Meanwhile, read on.&#xA;&#xA;Following my earlier articles such as Who Cares Who Delivers Our Notifications? and how to self-host UnifiedPush notifications for your Matrix server with ntfy, here are some tips for using a UnifiedPush-compatible app on your Android phone or your freedom-supporting (degoogled) android-compatible.&#xA;&#xA;Install a Distributor to Enable UnifiedPush&#xA;&#xA;Some U-P Distributors: ntfy, NextPush, Conversations, ...&#xA;&#xA;The first step to using UnifiedPush is to get a UnifiedPush &#34;distributor&#34; app running and configured. A distributor is the one app that will be listening all the time on your device, on behalf of all the apps that want to receive UnifiedPush notifications. When notifications arrive, it will distribute them to the correct target apps (usually messaging apps).&#xA;&#xA;Ideally, in the near future, freedom phones would include a UnifiedPush distributor built-in. For now, you have to install one.&#xA;&#xA;You choose your distributor app once, the first time you want to start using UnifiedPush. The distributor works in concert with one UnifiedPush server (again, your choice, depending on what the distributor supports), so consider which server or service provider you want to use. Install the distributor app, and configure it according to its documentation. Some are preconfigured to use one particular server, while others allow or require you to choose a server.&#xA;&#xA;The distributor must be working before any U-P-compatible app will be able to use UnifiedPush. If no distributor is detected, most apps will choose an alternative method, usually either polling or the proprietary Google system. However, if a distributor is installed but not working properly, notifications may not arrive promptly and consistently or at all.&#xA;&#xA;Follow the instructions for your chosen combination of server and distributor, or start from the UnifiedPush Distributors page.&#xA;&#xA;Troubleshooting UnifiedPush&#xA;&#xA;Now we assume you have installed a U-P-compatible client app, perhaps a messaging app, and are expecting it to use UnifiedPush.&#xA;&#xA;The general expectation is the app should &#34;just work&#34;, without even telling you, if it detects a functioning UnifiedPush distributor as described above.&#xA;&#xA;How does this magic work? Three steps. First, your app asks the distributor on the same device for the details of your chosen UnifiedPush service. Second, your app passes those details on to its own server (wherever that is). Third, even after your app has disconnected from its own server or &#34;gone to sleep&#34;, your app&#39;s server continues to use those details to push notifications to your UnifiedPush server, which delivers them to your distributor, which delivers them to your app, waking it up.&#xA;&#xA;Let&#39;s see what we can check if it does not seem to &#34;just work&#34;.&#xA;&#xA;Check your app is supported and the right variant&#xA;&#xA;First check that the client app you are using supports UnifiedPush. The UnifiedPush web site lists some of the first U-P-compatible apps. Some apps come in different variants, with for instance the variant available through the Google Play store using Google&#39;s notification system while the variant available though the F-Droid freedom-software store uses UnifiedPush. Some apps give you a choice if they detect both methods are available, and some choose one method without asking you.&#xA;&#xA;Use the simple UP-Example app&#xA;&#xA;Install the UnifiedPush troubleshooting app UP-Example from F-Droid. Use it to manually test UnifiedPush registration and operation: simply press the &#34;register&#34; button and then the &#34;test&#34; button, and you should immediately receive an example notification named &#34;Test&#34;.&#xA;&#xA;If this simple test fails, you need to debug your UnifiedPush distributor app and its configuration.&#xA;&#xA;(TODO: see troubleshooting for specific distributors &#39;ntfy&#39;, &#39;Conversations&#39;, &#39;NextPush&#39;, etc.)&#xA;&#xA;Use advanced notification troubleshooting tools&#xA;&#xA;You can find more advanced notification troubleshooting tools in some apps.&#xA;&#xA;Element-Android and Schildichat-Android have a useful, active, troubleshooting tool in &#34;Settings -  Notifications -  Troubleshoot Notifications&#34;. In particular the &#34;Gateway&#34; and &#34;Endpoint&#34; steps of that troubleshooter should display your ntfy server&#39;s URL that it has discovered from the ntfy client app.&#xA;&#xA;Check also &#34;Settings -  Notifications -  Notification Targets&#34; in Element or SchildiChat, or &#34;Settings -  Notifications -  Devices&#34; in FluffyChat. There should be one entry for each matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server&#39;s URL.&#xA;&#xA;In the &#34;Notification Targets&#34; screen in Element or SchildiChat, two relevant URLs are shown, &#34;push\key&#34; and &#34;Url&#34;, and both should begin with your ntfy server&#39;s URL. If &#34;push\key&#34; shows your server but &#34;Url&#34; shows an external server such as up.schildi.chat then push notifications are being routed through that external server before they reach your ntfy server, which might or might not be what you want.&#xA;&#xA;Using your own UnifiedPush server&#xA;&#xA;If you are running your own UnifiedPush server, of course you should also look at its logs and debugging capabilities. That is out of scope for this article.&#xA;&#xA;These tips should help you resolve any issues&#xA;&#xA;For further help, contact the most relevant or specific of the projects involved, such as your client app provider or your U-P distributor provider, or for more general help contact the UnifiedPush project, through the links provided here. (Note: The blog comments are for discussing the blog post, not for getting help.)&#xA;&#xA;Once it is working, enjoy one more Google-free, self-determined aspect of your digital life!&#xA;&#xA;---&#xA;&#xA;Read More about UnifiedPush&#xA;&#xA;UnifiedPush.org web site&#xA;On F-Droid News: UnifiedPush: a decentralized, open-source push notification protocol&#xA;On my blog: articles tagged #unifiedPush, including Devs - Please Use UnifiedPush&#xA;#WebDAV-Push (repo) standardisation initiative for CalDAV and CardDAV&#xA;&#xA;#degoogled #unifiedPush #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><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></p>

<p>Let&#39;s take charge of another part of our digital life! <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications" title="Who Cares Who Delivers Our Notifications">Must we be beholden to Google for delivering our push notifications?</a> No! No longer! With apps that support <a href="https://unifiedpush.org/">UnifiedPush</a> neither Google nor the app makers get to determine where our data goes and who gets to monitor it. We get the control, the freedom to choose.</p>

<p>To me this feels like a breath of fresh air!</p>

<p>You might find your way here while installing an app that uses <a href="https://unifiedpush.org/">UnifiedPush</a>. Let&#39;s see how to make sure the notifications work properly.
</p>

<p>The official <a href="https://unifiedpush.org/users/troubleshooting/">UnifiedPush Troubleshooting</a> page is, at the time of this writing, rather bare. (Perhaps, as an open source project, I can contribute to it. <em>EDIT: <a href="https://unifiedpush.s.trax.im/users/troubleshooting/">Here&#39;s a preview</a> I have <a href="https://codeberg.org/UnifiedPush/documentation/pulls/1">submitted on Codeberg</a>, that&#39;s becoming better than this article.</em>) Meanwhile, read on.</p>

<p>Following my earlier articles such as <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications">Who Cares Who Delivers Our Notifications?</a> and how to self-host <a href="https://wrily.foad.me.uk/unifiedpush-notifications-for-your-matrix-server-with-ntfy">UnifiedPush notifications for your Matrix server with ntfy</a>, here are some tips for using a UnifiedPush-compatible app on your Android phone or your <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone!">freedom-supporting (degoogled) android-compatible</a>.</p>

<h2 id="install-a-distributor-to-enable-unifiedpush" id="install-a-distributor-to-enable-unifiedpush">Install a Distributor to Enable UnifiedPush</h2>

<p>Some <a href="https://unifiedpush.org/users/distributors/" title="U-P Distributors">U-P Distributors</a>: <a href="https://unifiedpush.org/users/distributors/ntfy/" title="ntfy as a U-P distributor"><strong>ntfy</strong></a>, <a href="https://unifiedpush.org/users/distributors/nextpush/" title="NextPush as a U-P distributor"><strong>NextPush</strong></a>, <a href="https://unifiedpush.org/users/distributors/conversations/" title="Conversations as a U-P distributor"><strong>Conversations</strong></a>, ...</p>

<p>The first step to using UnifiedPush is to get a <a href="https://unifiedpush.org/users/distributors/" title="U-P Distributors">UnifiedPush “distributor” app</a> running and configured. A distributor is the one app that will be listening all the time on your device, on behalf of all the apps that want to receive UnifiedPush notifications. When notifications arrive, it will distribute them to the correct target apps (usually messaging apps).</p>

<p>Ideally, in the near future, <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone!">freedom phones</a> would include a UnifiedPush distributor built-in. For now, you have to install one.</p>

<p>You choose your distributor app once, the first time you want to start using UnifiedPush. The distributor works in concert with one UnifiedPush server (again, your choice, depending on what the distributor supports), so consider which server or service provider you want to use. Install the distributor app, and configure it according to its documentation. Some are preconfigured to use one particular server, while others allow or require you to choose a server.</p>

<p>The distributor must be working before any U-P-compatible app will be able to use UnifiedPush. If no distributor is detected, most apps will choose an alternative method, usually either polling or the proprietary Google system. However, if a distributor is installed but not working properly, notifications may not arrive promptly and consistently or at all.</p>

<p>Follow the instructions for your chosen combination of server and distributor, or start from the <a href="https://unifiedpush.org/users/distributors/">UnifiedPush Distributors</a> page.</p>

<h2 id="troubleshooting-unifiedpush" id="troubleshooting-unifiedpush">Troubleshooting UnifiedPush</h2>

<p>Now we assume you have installed a U-P-compatible client app, perhaps a messaging app, and are expecting it to use UnifiedPush.</p>

<p>The general expectation is the app should “just work”, without even telling you, if it detects a functioning UnifiedPush distributor as described above.</p>

<p>How does this magic work? Three steps. First, your app asks the distributor on the same device for the details of your chosen UnifiedPush service. Second, your app passes those details on to its own server (wherever that is). Third, even after your app has disconnected from its own server or “gone to sleep”, your app&#39;s server continues to use those details to push notifications to your UnifiedPush server, which delivers them to your distributor, which delivers them to your app, waking it up.</p>

<p>Let&#39;s see what we can check if it does not seem to “just work”.</p>

<h3 id="check-your-app-is-supported-and-the-right-variant" id="check-your-app-is-supported-and-the-right-variant">Check your app is supported and the right variant</h3>

<p>First check that the client app you are using supports UnifiedPush. The UnifiedPush web site lists some of the first <a href="https://unifiedpush.org/users/apps/" title="Apps using UnifiedPush">U-P-compatible apps</a>. Some apps come in different variants, with for instance the variant available through the Google Play store using Google&#39;s notification system while the variant available though the <a href="https://wrily.foad.me.uk/foss-apps-live-in-foss-app-stores" title="FOSS Apps Live in FOSS App Stores">F-Droid freedom-software store</a> uses UnifiedPush. Some apps give you a choice if they detect both methods are available, and some choose one method without asking you.</p>

<h3 id="use-the-simple-up-example-app" id="use-the-simple-up-example-app">Use the simple UP-Example app</h3>

<p>Install the <a href="https://unifiedpush.org/users/troubleshooting/">UnifiedPush troubleshooting</a> app <a href="https://f-droid.org/en/packages/org.unifiedpush.example/">UP-Example</a> from F-Droid. Use it to manually test UnifiedPush registration and operation: simply press the “register” button and then the “test” button, and you should immediately receive an example notification named “Test”.</p>

<p>If this simple test fails, you need to debug your UnifiedPush distributor app and its configuration.</p>

<p>(<em>TODO: see troubleshooting for specific distributors &#39;ntfy&#39;, &#39;Conversations&#39;, &#39;NextPush&#39;, etc.</em>)</p>

<h3 id="use-advanced-notification-troubleshooting-tools" id="use-advanced-notification-troubleshooting-tools">Use advanced notification troubleshooting tools</h3>

<p>You can find more advanced notification troubleshooting tools in some apps.</p>

<p>Element-Android and Schildichat-Android have a useful, active, troubleshooting tool in “Settings –&gt; Notifications –&gt; Troubleshoot Notifications”. In particular the “Gateway” and “Endpoint” steps of that troubleshooter should display your ntfy server&#39;s URL that it has discovered from the ntfy client app.</p>

<p>Check also “Settings –&gt; Notifications –&gt; Notification Targets” in Element or SchildiChat, or “Settings –&gt; Notifications –&gt; Devices” in FluffyChat. There should be one entry for each matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server&#39;s URL.</p>

<p>In the “Notification Targets” screen in Element or SchildiChat, two relevant URLs are shown, “push_key” and “Url”, and both should begin with your ntfy server&#39;s URL. If “push_key” shows your server but “Url” shows an external server such as <code>up.schildi.chat</code> then push notifications are being routed through that external server before they reach your ntfy server, which might or might not be what you want.</p>

<h3 id="using-your-own-unifiedpush-server" id="using-your-own-unifiedpush-server">Using your own UnifiedPush server</h3>

<p>If you are running your own UnifiedPush server, of course you should also look at its logs and debugging capabilities. That is out of scope for this article.</p>

<h3 id="these-tips-should-help-you-resolve-any-issues" id="these-tips-should-help-you-resolve-any-issues">These tips should help you resolve any issues</h3>

<p>For further help, contact the most relevant or specific of the projects involved, such as your client app provider or your U-P distributor provider, or for more general help contact the UnifiedPush project, through the links provided here. (<em>Note: The blog comments are for discussing the blog post, not for getting help.</em>)</p>

<p>Once it is working, enjoy one more Google-free, self-determined aspect of your digital life!</p>

<hr>

<h2 id="read-more-about-unifiedpush" id="read-more-about-unifiedpush">Read More about UnifiedPush</h2>
<ul><li><a href="https://unifiedpush.org/">UnifiedPush.org</a> web site</li>
<li>On F-Droid News: <a href="https://f-droid.org/en/2022/12/18/unifiedpush.html">UnifiedPush: a decentralized, open-source push notification protocol</a></li>
<li>On my blog: articles tagged <a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a>, including <a href="https://wrily.foad.me.uk/devs-please-use-unifiedpush">Devs – Please Use UnifiedPush</a></li>
<li><a href="https://matrix.to/#/%23webdav-push:matrix.org" title="matrix discussion room"><code>#WebDAV-Push</code></a> (<a href="https://github.com/bitfireAT/webdav-push">repo</a>) standardisation initiative for CalDAV and CardDAV</li></ul>

<p><a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</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/troubleshooting-unifiedpush</guid>
      <pubDate>Fri, 21 Jun 2024 05:39:46 +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>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>Transfer Photos Between PC and Phone, Locally</title>
      <link>https://wrily.foad.me.uk/transfer-photos-between-pc-and-phone-locally</link>
      <description>&lt;![CDATA[  &#34;How can I transfer photos between my PC and my phone?&#34;&#xA;&#xA;perhaps to get a digital camera photo from the PC into a phone app&#xA;perhaps to get a few phone photos onto the PC for editing&#xA;perhaps any other kinds of files, not only photos&#xA;perhaps Internet access is slow&#xA;&#xA;Here we are not looking at ways to manage our whole photo collection, we are looking at simple ways to transfer files between our devices.&#xA;!--more--&#xA;&#xA;What we&#39;re looking for is a local transfer method, the wi-fi equivalent of a USB cable connection. Actually we can use a USB cable and the phone storage may show up in our desktop file manager and we can copy files to/from the other device that way. (Probably/depending.) But let&#39;s look for a more convenient wireless equivalent.&#xA;&#xA;It doesn&#39;t make sense to email our files to Microsoft&#39;s mail server or Google&#39;s or our ISP&#39;s mail server and then download them back into our home onto the other device, neither for privacy (they get to see our photos) nor for practicality if we have a slow internet connection. And it doesn&#39;t make any more sense to use any other server based method, such as iTunes or Dropbox, where the server is run by someone else outside our home.&#xA;&#xA;What we need is either a serverless (peer-to-peer) solution, where the two devices talk directly over the local network connection, like they would over a wire; or else we could happily use a server-based solution if the server were inside our home and under our control. The latter is not crazy -- a server doesn&#39;t have to be a new or powerful box, it could be just a tiny app running on our PC, providing this service. We&#39;ll come to that later. First, let&#39;s look at peer-to-peer solutions.&#xA;&#xA;I would expect of computing devices in the 21st century that one should be able to transfer files in a standard way, over whatever connection method the hardware supports -- USB, Bluetooth, WiFi, and more. I can&#39;t believe this isn&#39;t standard functionality on every device nowadays, but such is the power of Apple and Microsoft and Google who want us to use their services for everything instead of looking after our own data ourselves. (Thanks for tolerating me getting that off my chest once again.)&#xA;&#xA;PairDrop: Peer-to-Peer Transfer as a Handy Web App&#xA;&#xA;Here&#39;s a peer-to-peer solution. That is, a way to send from one device to the other without going through any middle-man server.&#xA;&#xA;&#34;PairDrop&#34; is a nice Freedom-software web-app to do this. (I always look for free-as-in-freedom software, constructed to values that align with mine, such as not stealing or mining my data.) We can load it here:&#xA;&#xA;https://pairdrop.foad.me.uk/&#xA;&#xA;It&#39;s a serverless web app, which means the application code is all in the web page.  There is no attached server behind this, no database or anything on my side. When we open this web app, it just finds our other device(s) on our local network and transfers the files directly between them. It doesn&#39;t send our files or anything about us outside our local network. (I didn&#39;t create this software, I just deployed a copy of it. It&#39;s also available at &#39;pairdrop.net&#39; and there are other similar ones with similar names.) &#xA;&#xA; | &#xA;---|---&#xA;&#xA;To get started, open that web page, in a web browser, on both devices.  Each one should show an icon at the bottom, with a made-up name for itself, and an icon in the middle of the screen representing the other device once it sees it in the local network.  If they don&#39;t both show the other device, refresh/reload the page.  Click that other device icon to choose files, and it sends them to that device. On the receiving side, it presents the files ready for you to save to a folder.&#xA;&#xA;Getting a little more advanced, you can transfer a folder or arbitrary selection of files in one go. You can use multi-select in the file picker, or drag-and-drop on the desktop, or &#34;Share&#34; function from a phone&#39;s file manager. PairDrop puts multiple files in a zip file and assumes (I think) you already have a zip file extractor installed at the other end, which you probably already do on a PC, and you can easily install a zip extractor app on your phone if there isn&#39;t one yet.&#xA;&#xA;A (Little) File Server Inside Our Home&#xA;&#xA;Now for another way.&#xA;&#xA;As we said earlier, a &#34;server&#34; need not be a big new box, it could be just a tiny app running on our own PC, providing a service. The server software won&#39;t care if one of the clients requesting a file transfer is another application running on the same PC, while the other client is a phone or another PC.&#xA;&#xA;There is a simple built-in file server in Windows and most desktop operating systems, which can be enabled by the &#34;file sharing&#34; feature. Method 3 in a Guiding Tech article has step-by-step instructions with screenshots, for setting up a Windows file share and accessing it from an iPhone&#39;s Files app. Once we get that connection set up, we can copy files in and out of the shared folder on either end. I just found this article from a quick search and am not endorsing it but at a quick read through it looks generally sound.&#xA;&#xA;(If you are interested in running a more long term and dedicated home file server, you could look at Nextcloud or other options. However, that&#39;s another topic.)&#xA;&#xA;Continuous Sync: SyncThing&#xA;&#xA;What I do for most of my file synchronisation needs is install Syncthing on both devices, and configure it to sync my phone&#39;s &#34;DCIM&#34; folder with a same-named folder on my laptop, and similarly for my &#34;Documents&#34; folder on both.&#xA;&#xA;This kind of synchronisation runs locally (within the local network), continuously, in the background, whenever the devices are on and connected to WiFi.&#xA;&#xA;For now I refer you to Syncthing&#39;s documentation at https://syncthing.net/ to learn more about this method.&#xA;&#xA;---&#xA;&#xA;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[<blockquote><p>“How can I transfer photos between my PC and my phone?”</p></blockquote>
<ul><li>perhaps to get a digital camera photo from the PC into a phone app</li>
<li>perhaps to get a few phone photos onto the PC for editing</li>
<li>perhaps any other kinds of files, not only photos</li>
<li>perhaps Internet access is slow</li></ul>

<p>Here we are not looking at ways to manage our whole photo collection, we are looking at simple ways to transfer files between our devices.
</p>

<p>What we&#39;re looking for is a local transfer method, the wi-fi equivalent of a USB cable connection. Actually we <em>can</em> use a USB cable and the phone storage may show up in our desktop file manager and we can copy files to/from the other device that way. (Probably/depending.) But let&#39;s look for a more convenient wireless equivalent.</p>

<p>It doesn&#39;t make sense to email our files to Microsoft&#39;s mail server or Google&#39;s or our ISP&#39;s mail server and then download them back into our home onto the other device, neither for privacy (they get to see our photos) nor for practicality if we have a slow internet connection. And it doesn&#39;t make any more sense to use any other server based method, such as iTunes or Dropbox, where the server is run by someone else outside our home.</p>

<p>What we need is either a serverless (peer-to-peer) solution, where the two devices talk directly over the local network connection, like they would over a wire; or else we could happily use a server-based solution if the server were inside our home and under our control. The latter is not crazy — a server doesn&#39;t have to be a new or powerful box, it could be just a tiny app running on our PC, providing this service. We&#39;ll come to that later. First, let&#39;s look at peer-to-peer solutions.</p>

<p>I would expect of computing devices in the 21st century that one should be able to transfer files in a standard way, over whatever connection method the hardware supports — USB, Bluetooth, WiFi, and more. I can&#39;t believe this isn&#39;t standard functionality on every device nowadays, but such is the power of Apple and Microsoft and Google who want us to use their services for everything instead of looking after our own data ourselves. (Thanks for tolerating me getting that off my chest once again.)</p>

<h2 id="pairdrop-peer-to-peer-transfer-as-a-handy-web-app" id="pairdrop-peer-to-peer-transfer-as-a-handy-web-app">PairDrop: Peer-to-Peer Transfer as a Handy Web App</h2>

<p>Here&#39;s a peer-to-peer solution. That is, a way to send from one device to the other without going through any middle-man server.</p>

<p>“PairDrop” is a nice Freedom-software web-app to do this. (I always look for free-as-in-freedom software, constructed to values that align with mine, such as not stealing or mining my data.) We can load it here:</p>

<p><strong><a href="https://pairdrop.foad.me.uk/">https://pairdrop.foad.me.uk/</a></strong></p>

<p>It&#39;s a serverless web app, which means the application code is all in the web page.  There is no attached server behind this, no database or anything on my side. When we open this web app, it just finds our other device(s) on our local network and transfers the files directly between them. It doesn&#39;t send our files or anything about us outside our local network. (I didn&#39;t create this software, I just deployed a copy of it. It&#39;s also available at &#39;pairdrop.net&#39; and there are other similar ones with similar names.)</p>

<table>
<thead>
<tr>
<th><img src="https://blog.foad.me.uk/wp-content/uploads/2024/02/ss-pairdrop-Firefox-1.png" alt=""></th>
<th><img src="https://blog.foad.me.uk/wp-content/uploads/2024/02/ss-pairdrop-Fennec-1-1.png" alt=""></th>
</tr>
</thead>

<tbody>
</tbody>
</table>

<p>To get started, open that web page, in a web browser, on both devices.  Each one should show an icon at the bottom, with a made-up name for itself, and an icon in the middle of the screen representing the <em>other</em> device once it sees it in the local network.  If they don&#39;t both show the other device, refresh/reload the page.  Click that other device icon to choose files, and it sends them to that device. On the receiving side, it presents the files ready for you to save to a folder.</p>

<p>Getting a little more advanced, you can transfer a folder or arbitrary selection of files in one go. You can use multi-select in the file picker, or drag-and-drop on the desktop, or “Share” function from a phone&#39;s file manager. PairDrop puts multiple files in a zip file and assumes (I think) you already have a zip file extractor installed at the other end, which you probably already do on a PC, and you can easily install a zip extractor app on your phone if there isn&#39;t one yet.</p>

<h2 id="a-little-file-server-inside-our-home" id="a-little-file-server-inside-our-home">A (Little) File Server Inside Our Home</h2>

<p>Now for another way.</p>

<p>As we said earlier, a “server” need not be a big new box, it could be just a tiny app running on our own PC, providing a service. The server software won&#39;t care if one of the clients requesting a file transfer is another application running on the same PC, while the other client is a phone or another PC.</p>

<p>There is a simple built-in file server in Windows and most desktop operating systems, which can be enabled by the “file sharing” feature. Method 3 in <a href="https://www.guidingtech.com/how-to-transfer-files-between-iphone-windows-pc/">a Guiding Tech article</a> has step-by-step instructions with screenshots, for setting up a Windows file share and accessing it from an iPhone&#39;s Files app. Once we get that connection set up, we can copy files in and out of the shared folder on either end. I just found this article from a quick search and am not endorsing it but at a quick read through it looks generally sound.</p>

<p>(If you are interested in running a more long term and dedicated home file server, you could look at Nextcloud or other options. However, that&#39;s another topic.)</p>

<h2 id="continuous-sync-syncthing" id="continuous-sync-syncthing">Continuous Sync: SyncThing</h2>

<p>What I do for most of my file synchronisation needs is install Syncthing on both devices, and configure it to sync my phone&#39;s “DCIM” folder with a same-named folder on my laptop, and similarly for my “Documents” folder on both.</p>

<p>This kind of synchronisation runs locally (within the local network), continuously, in the background, whenever the devices are on and connected to WiFi.</p>

<p>For now I refer you to Syncthing&#39;s documentation at <a href="https://syncthing.net/">https://syncthing.net/</a> to learn more about this method.</p>

<hr>

<p><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/transfer-photos-between-pc-and-phone-locally</guid>
      <pubDate>Wed, 28 Feb 2024 12:40:06 +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>
  </channel>
</rss>