<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>julian</title>
    <link>https://wrily.foad.me.uk/</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>Sun, 12 Apr 2026 14:04:32 +0000</pubDate>
    <item>
      <title>Wanted: Digital Dreams</title>
      <link>https://wrily.foad.me.uk/wanted-digital-dreams</link>
      <description>&lt;![CDATA[In this corner of my world, I seek a better digital life, one where I own my own digital identity, where I am not forced to be a microsoft or facebook user just because my school or family use them, one where I get to choose my digital service providers to suit my values...&#xA;&#xA;In this corner of my world, I plan how I might achieve this using open-standard protocols, open-source software, replaceable services...&#xA;&#xA;In this corner of my world, in order to get some of this digital sovereignty in my own life, and to learn skills to help build the better world, I practice &#34;self-hosting&#34;, but in great frustration knowing full well it&#39;s so far away from the needed solutions...&#xA;&#xA;In this corner of my world, I am meeting lots of people with similar views, and hearing lots of comments like X is bad, Y is an open-standard protocol, Z is an ethical service...&#xA;&#xA;But I am rarely hearing people&#39;s imagination of how it all works in this new, better world.&#xA;!--more--&#xA;&#xA;How does a family pick up a laptop and a tablet and a smart-phone and a printer and some on-line service providers in this new world, and get on with managing their family archives and their school work and their chats and calls and diaries?  How do they transfer photos between their devices, find a document they wrote or scanned earlier, verify their human identity when needed, choose and change their messaging service providers?&#xA;&#xA;A common pitfall is thinking in terms of apps.  Nextcloud, Fediverse, Jitsi-meet, Matrix, Linux, open-this, libre-that.  Great, those are useful components, but they are not the picture.&#xA;&#xA;Do we imagine each home running a little Microsoft replacement and a compressed Google compatible service in their home router box?  Do we see communities running big servers for their citizens?  Do we dream of peer-to-peer local-first apps, operating independent of network services?  Maybe some of these are involved, but how would it actually work from the user&#39;s point of view?  How do we pay for it?  In what ways can we demonstrate it working better than today&#39;s Big Tech model?&#xA;&#xA;Without this imagined new way of working, we are swimming in a sea of bits of software and protocols and services and funding campaigns for the same.  Without our shared vision, how will all these little bits ever come together?&#xA;&#xA;Once we see the big picture, we&#39;ll enjoy plugging the little bits together into a pattern.  Look! -- project Z implemented this bit of the picture, so now they interoperate with all those adjacent projects.  Look! -- project Y needs help with solving that other bit of the picture.  Look! -- two incompatible protocols -- we want to plug those areas together so let&#39;s do something about it.&#xA;&#xA;A few times I have had a go at writing down how things work &#34;in my dream world&#34;.  I&#39;m not short of ideas, but it takes time and effort, I&#39;m not so great at telling stories, and I don&#39;t have all the dreams.  I want to write and share more of my own dreams, and I also want to read how it all works in your dreams.  Bouncing ideas back and forth with others is stimulating.  It&#39;s important.  More and more I am thinking how much better we could work together if we shared these dream stories.  Stories in words.  Stories in pictures too.&#xA;&#xA;Where are our dreams?  Who will write them down, draw the big pictures, share the visions?&#xA;&#xA;---&#xA;&#xA;ownDomain&#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>In this corner of my world, I seek a better digital life, one where I own my own digital identity, where I am not forced to be a microsoft or facebook user just because my school or family use them, one where I get to choose my digital service providers to suit my values...</p>

<p>In this corner of my world, I plan how I might achieve this using open-standard protocols, open-source software, replaceable services...</p>

<p>In this corner of my world, in order to get some of this digital sovereignty in my own life, and to learn skills to help build the better world, I practice “self-hosting”, but in <a href="https://wrily.foad.me.uk/caught-in-a-self-sovereignty-self-hosting-knot">great frustration</a> knowing full well it&#39;s so far away from the needed solutions...</p>

<p>In this corner of my world, I am meeting lots of people with similar views, and hearing lots of comments like X is bad, Y is an open-standard protocol, Z is an ethical service...</p>

<p>But I am rarely hearing people&#39;s imagination of how it all works in this new, better world.
</p>

<p>How does a family pick up a laptop and a tablet and a smart-phone and a printer and some on-line service providers in this new world, and get on with managing their family archives and their school work and their chats and calls and diaries?  How do they transfer photos between their devices, find a document they wrote or scanned earlier, verify their human identity when needed, choose and change their messaging service providers?</p>

<p>A common pitfall is thinking in terms of apps.  Nextcloud, Fediverse, Jitsi-meet, Matrix, Linux, open-this, libre-that.  Great, those are useful components, but they are not the picture.</p>

<p>Do we imagine each home running a little Microsoft replacement and a compressed Google compatible service in their home router box?  Do we see communities running big servers for their citizens?  Do we dream of peer-to-peer local-first apps, operating independent of network services?  Maybe some of these are involved, but how would it actually work from the user&#39;s point of view?  How do we pay for it?  In what ways can we demonstrate it working better than today&#39;s Big Tech model?</p>

<p>Without this imagined new way of working, we are swimming in a sea of bits of software and protocols and services and funding campaigns for the same.  Without our shared vision, how will all these little bits ever come together?</p>

<p>Once we see the big picture, we&#39;ll enjoy plugging the little bits together into a pattern.  Look! — project Z implemented this bit of the picture, so now they interoperate with all those adjacent projects.  Look! — project Y needs help with solving that other bit of the picture.  Look! — two incompatible protocols — we want to plug those areas together so let&#39;s do something about it.</p>

<p>A few times <a href="https://wrily.foad.me.uk/call-me-by-my-name-in-my-dream-world">I have had a go</a> at writing down how things work “in my dream world”.  I&#39;m not short of ideas, but it takes time and effort, I&#39;m not so great at telling stories, and I don&#39;t have all the dreams.  I want to write and share more of my own dreams, and I also want to read how it all works in your dreams.  Bouncing ideas back and forth with others is stimulating.  It&#39;s important.  More and more I am thinking how much better we could work together if we shared these dream stories.  Stories in words.  Stories in pictures too.</p>

<p>Where are our dreams?  Who will write them down, draw the big pictures, share the visions?</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:ownDomain" class="hashtag"><span>#</span><span class="p-category">ownDomain</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/wanted-digital-dreams</guid>
      <pubDate>Mon, 08 Sep 2025 11:15:00 +0000</pubDate>
    </item>
    <item>
      <title>Bye Bye Facebook</title>
      <link>https://wrily.foad.me.uk/bye-bye-facebook</link>
      <description>&lt;![CDATA[Time to shake off another Big Tech and feel that delightful breath of fresh air, health and freedom.&#xA;&#xA;Pruning the old overgrowth of commercial Big Tech and letting the new shoots of indie tech flourish.&#xA;&#xA;  &#34;THE JOY OF NOT BEING SOLD ANYTHING&#34;&#xA;&#xA;Facebook Status:&#xA;&#xA;  Deactivating Facebook prior to deleting it from my life. (Not that it was in my life anyway. Hardly touched it in ten years. But because this account existed it looked like I was here. If you thought I was here, I wasn&#39;t; Zuck&#39;s system wanted you to think that. If you thought I was receiving your kind messages and rudely ignoring you, I wasn&#39;t; Zuck&#39;s system wanted you to think that.)&#xA;!--more--&#xA;&#xA;I love your stories, your pictures, your news, you as friends and family. I get that Facebook provides a way for you to share these. But I don&#39;t like Zuckerberg or any overlord controlling who I&#39;m allowed to connect with and how we are allowed to communicate.&#xA;&#xA;In Facebook I don&#39;t feel comfortable. I feel pounced-upon by the Algorithm. I feel the system is dangling your pictures and stories in front of me as a lure, as bait. I feel we are being manipulated, abused for commercial gain.&#xA;&#xA;And so I haven&#39;t visited Facebook club. Not for years, aside from a few occasions when I went in briefly to look for something or other. And so I haven&#39;t seen your delightful sharing of life events and interesting stories.&#xA;&#xA;Mind you, I&#39;m not the socialable type, so I maybe wouldn&#39;t go there nor post anything anyway, even if the place we&#39;re talking about was a delightful public park under ownership of the commons.&#xA;&#xA;Why Disconnect?&#xA;&#xA;It&#39;s a ghost account. For ten years I haven&#39;t even been looking at Facebook, let alone writing back to the friends and family who post there. I already deleted years ago the few posts and pictures that I had initially uploaded there. The only reason I kept the account so long is in case I might one day want to contact an old friend or they might want to contact me and we might not have each other&#39;s phone or email... But really, it&#39;s ridiculous, just FOMO and inertia.&#xA;&#xA;I detest the feeling of being beholden to Zuck&#39;s mega-corp. What do I get from that contract? I get the sense of maintaining what to me is merely a subsidiary way to potentially contact some people. Why should I need to keep subscribing to the Facebook club and playing its game by its rules, just for that?&#xA;&#xA;So it&#39;s Bye Bye Facebook.&#xA;&#xA;Shall I silently close my account and slink away? I considered it, and temporarily &#34;deactivated&#34; my account for a few months. But before closing it for good, first I want to tell the friends how I feel, and where to find me.&#xA;&#xA;Where To?&#xA;&#xA;I already feel great with my de-googled phones, email at my own domain, closing my Amazon account, Giving up Github, wearing an open-source smart watch.&#xA;&#xA;More about my de-googling and other freedom from Big Tech&#39;s shackles:&#xA;&#xA;https://wrily.foad.me.uk/tag:degoogled&#xA;&#xA;If you feel the urge to join the movement, the Opt Out Project has a fantastic set of practical guides for freeing oneself from all kinds of pervasive surveillance tech.&#xA;&#xA;https://www.optoutproject.net/&#xA;&#xA;See you in the Free(dom) World&#xA;&#xA;... through regular web sites and blogs like my Wrily;&#xA;&#xA;... through the non-proprietary digital communication tools like email, the telephone system and SMS, Jabber/XMPP, matrix, and the fediverse (the network that unites Mastodon and dozens of other software and services) -- we call these protocols -- that are standardised, operated by a diversity of providers, and not under a single company&#39;s control;&#xA;&#xA;... and perhaps occasionally in Real Life.&#xA;&#xA;---&#xA;&#xA;p.s. A funny thought occurs to me. I can&#39;t help wondering if among my friends there are some who might consider this event &#34;sad&#34; or that I need some kind of &#34;help&#34;. If that&#39;s your reaction, I invite you to try on a different perspective.&#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>Time to shake off another Big Tech and feel that delightful breath of fresh air, health and freedom.</p>

<p>Pruning the old overgrowth of commercial Big Tech and letting the new shoots of indie tech flourish.</p>

<blockquote><p>“THE JOY OF NOT BEING SOLD ANYTHING”</p></blockquote>

<p>Facebook Status:</p>

<blockquote><p>Deactivating Facebook prior to deleting it from my life. (Not that it was in my life anyway. Hardly touched it in ten years. But because this account existed it looked like I was here. If you thought I was here, I wasn&#39;t; Zuck&#39;s system wanted you to think that. If you thought I was receiving your kind messages and rudely ignoring you, I wasn&#39;t; Zuck&#39;s system wanted you to think that.)
</p></blockquote>

<p>I love your stories, your pictures, your news, you as friends and family. I get that Facebook provides a way for you to share these. But I don&#39;t like Zuckerberg or any overlord controlling who I&#39;m allowed to connect with and how we are allowed to communicate.</p>

<p>In Facebook I don&#39;t feel comfortable. I feel pounced-upon by the Algorithm. I feel the system is dangling your pictures and stories in front of me as a lure, as bait. I feel we are being manipulated, abused for commercial gain.</p>

<p>And so I haven&#39;t visited Facebook club. Not for years, aside from a few occasions when I went in briefly to look for something or other. And so I haven&#39;t seen your delightful sharing of life events and interesting stories.</p>

<p>Mind you, I&#39;m not the socialable type, so I maybe wouldn&#39;t go there nor post anything anyway, even if the place we&#39;re talking about was a delightful public park under ownership of the commons.</p>

<h2 id="why-disconnect" id="why-disconnect">Why Disconnect?</h2>

<p>It&#39;s a ghost account. For ten years I haven&#39;t even been looking at Facebook, let alone writing back to the friends and family who post there. I already deleted years ago the few posts and pictures that I had initially uploaded there. The only reason I kept the account so long is in case I might one day want to contact an old friend or they might want to contact me and we might not have each other&#39;s phone or email... But really, it&#39;s ridiculous, just FOMO and inertia.</p>

<p>I detest the feeling of being beholden to Zuck&#39;s mega-corp. What do I get from that contract? I get the sense of maintaining what to me is merely a subsidiary way to potentially contact some people. Why should I need to keep subscribing to the Facebook club and playing its game by its rules, just for that?</p>

<p>So it&#39;s Bye Bye Facebook.</p>

<p>Shall I silently close my account and slink away? I considered it, and temporarily “deactivated” my account for a few months. But before closing it for good, first I want to tell the friends how I feel, and where to find me.</p>

<h2 id="where-to" id="where-to">Where To?</h2>

<p>I already feel great with my <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have">de-googled phones</a>, <a href="https://wrily.foad.me.uk/my-name-at-my-domain">email at my own domain</a>, closing my Amazon account, <a href="https://wrily.foad.me.uk/open-tech-be-afraid-microsoft">Giving up Github</a>, wearing an <a href="https://wrily.foad.me.uk/pinetime-smart-watch-awesome-open-source">open-source smart watch</a>.</p>

<p>More about my <a href="https://wrily.foad.me.uk/a-degoogling-milestone">de-googling</a> and other freedom from Big Tech&#39;s shackles:</p>
<ul><li><a href="https://wrily.foad.me.uk/tag:degoogled">https://wrily.foad.me.uk/tag:degoogled</a></li></ul>

<p>If you feel the urge to join the movement, the Opt Out Project has a fantastic set of practical guides for freeing oneself from all kinds of pervasive surveillance tech.</p>
<ul><li><a href="https://www.optoutproject.net/">https://www.optoutproject.net/</a></li></ul>

<h2 id="see-you-in-the-free-dom-world" id="see-you-in-the-free-dom-world">See you in the Free(dom) World</h2>

<p>... through regular web sites and blogs like my <a href="https://wrily.foad.me.uk">Wrily</a>;</p>

<p>... through the non-proprietary digital communication tools like <strong>email</strong>, the <strong>telephone</strong> system and <strong>SMS</strong>, <strong>Jabber/XMPP</strong>, <strong>matrix</strong>, and the <strong>fediverse</strong> (the network that unites Mastodon and dozens of other software and services) — we call these protocols — that are standardised, operated by a diversity of providers, and not under a single company&#39;s control;</p>

<p>... and perhaps occasionally in Real Life.</p>

<hr>

<p><em>p.s. A funny thought occurs to me. I can&#39;t help wondering if among my friends there are some who might consider this event “sad” or that I need some kind of “help”. If that&#39;s your reaction, I invite you to try on a different perspective.</em></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/bye-bye-facebook</guid>
      <pubDate>Mon, 21 Jul 2025 13:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Music By Computers</title>
      <link>https://wrily.foad.me.uk/music-by-computers</link>
      <description>&lt;![CDATA[A computer program that generates music. How quaint.&#xA;&#xA;I remember when I first heard computer-generated music. My father showed me a book, &#34;Music By Computers,&#34; and we listened to some of the recordings of music generated by various kinds of programs.&#xA;&#xA;That was in the 1980s. &#34;Music By Computers&#34; had been published in 1969, compiled from papers presented in 1966.&#xA;!--more--&#xA;&#xA;&#34;Music By Computers&#34; at archive.org&#xA;&#xA;The recordings for the book were supplied as gramophone records. Thin, floppy, playable gramophone records, tucked in to an envelope at the back of the book.&#xA;&#xA;This was quaint, old technology. The recordings were already twenty years old. The music sounded like it had been made by a computer... and yet it was tolerably pleasant or entertaining music, perhaps, depending on one&#39;s expectations and level of musical sophistication.&#xA;&#xA;We dabbled with making our own programs... beep-booply-beep-boop... on our modern Sinclair ZX Spectrum.&#xA;&#xA;People are still playing music, and still playing with music generators. Now folks are calling their music generator programs &#34;AI&#34; to ride the latest hype wave...&#xA;&#xA;I&#39;m glad to see people are still having fun with the idea.&#xA;&#xA;---&#xA;&#xA;An excerpt from &#34;Music By Computers&#34;:&#xA;&#xA;  2. Title Music to LINK, Side 2, Band 4&#xA;    This short excerpt is the background music for the title and screen credits for the short documentary film LINK produced by the Argonne National Laboratory film group [3]. The film explains the operation of a computer program LINK, written by R. K. Clark of the Applied Mathematics Division at Argonne, for use in the automatic analysis of spark chamber photographs taken during experiments in high energy physics. Since it concerns a CDC-3600 computer program and includes com¬ puter-produced animation sequences which were photographed directly from the computer cathode-ray-tube display and which illustrate the program operation, it seemed only appropriate for the computer to provide the music with which to accompany and emphasize its accomplishments. Though the selection is only a minute long, it is in fact quite complex, accurately synchronized to the film (synchronization is a trivial problem) and contains some noteworthy illustrative effects.&#xA;&#xA;An excerpt from a review of &#34;Music By Computers&#34; by a Mr Howe in 1970:&#xA;&#xA;  ... [This work in recent years in computer synthesis of sound] involves the work of both scientists and composers, and thus raises both technological and aesthetic considerations. For people unfamiliar with this kind of research, the discussions in the book will seem very sophisticated and advanced, and it will appear that many rather general conclusions are now beginning to emerge out of quite disparate approaches to common problems. This impression, however, does not stand up under careful investigation...&#xA;&#xA;---&#xA;&#xA;Illustrations derived from scans of the title pages of the book, accessed through archive.org. First excerpt from the same. Second excerpt from a review by Hubert S. Howe, Jr. in Perspectives of New Music Vol. 8, No. 2 (1970), pp. 151-15, accessed through JSTOR.&#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 computer program that generates music. How quaint.</p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2025/06/ss-MBC-1staff-noisy.png" alt=""></p>

<p>I remember when I first heard computer-generated music. My father showed me a book, “Music By Computers,” and we listened to some of the recordings of music generated by various kinds of programs.</p>

<p>That was in the 1980s. “Music By Computers” had been published in 1969, compiled from papers presented in 1966.
</p>
<ul><li><a href="https://archive.org/details/isbn_471910309/">“Music By Computers” at archive.org</a></li></ul>

<p>The recordings for the book were supplied as gramophone records. Thin, floppy, playable gramophone records, tucked in to an envelope at the back of the book.</p>

<p>This was quaint, old technology. The recordings were already twenty years old. The music sounded like it had been made by a computer... and yet it was tolerably pleasant or entertaining music, perhaps, depending on one&#39;s expectations and level of musical sophistication.</p>

<p>We dabbled with making our own programs... beep-booply-beep-boop... on our modern Sinclair ZX Spectrum.</p>

<p>People are still playing music, and still playing with music generators. Now folks are calling their music generator programs “AI” to ride the latest hype wave...</p>

<p>I&#39;m glad to see people are still having fun with the idea.</p>

<hr>

<p>An excerpt from “Music By Computers”:</p>

<blockquote><ol><li>Title Music to LINK, Side 2, Band 4</li></ol>

<p>This short excerpt is the background music for the title and screen credits for the short documentary film LINK produced by the Argonne National Laboratory film group [3]. The film explains the operation of a computer program LINK, written by R. K. Clark of the Applied Mathematics Division at Argonne, for use in the automatic analysis of spark chamber photographs taken during experiments in high energy physics. Since it concerns a CDC-3600 computer program and includes com¬ puter-produced animation sequences which were photographed directly from the computer cathode-ray-tube display and which illustrate the program operation, it seemed only appropriate for the computer to provide the music with which to accompany and emphasize its accomplishments. Though the selection is only a minute long, it is in fact quite complex, accurately synchronized to the film (synchronization is a trivial problem) and contains some noteworthy illustrative effects.</p></blockquote>

<p>An excerpt from a review of “Music By Computers” by a Mr Howe in 1970:</p>

<blockquote><p>... [This work in recent years in computer synthesis of sound] involves the work of both scientists and composers, and thus raises both technological and aesthetic considerations. For people unfamiliar with this kind of research, the discussions in the book will seem very sophisticated and advanced, and it will appear that many rather general conclusions are now beginning to emerge out of quite disparate approaches to common problems. This impression, however, does not stand up under careful investigation...</p></blockquote>

<hr>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2025/06/ss-MBC-2staff-noisy.png" alt=""></p>

<p><em>Illustrations derived from scans of the title pages of the book, accessed through <a href="https://archive.org/details/isbn_471910309/">archive.org</a>. First excerpt from the same. Second excerpt from a review by Hubert S. Howe, Jr. in Perspectives of New Music Vol. 8, No. 2 (1970), pp. 151-15, accessed through <a href="https://www.jstor.org/stable/832454">JSTOR</a>.</em></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/music-by-computers</guid>
      <pubDate>Sat, 21 Jun 2025 13:20:00 +0000</pubDate>
    </item>
    <item>
      <title>Caught in a Self-Sovereignty Self-Hosting Knot</title>
      <link>https://wrily.foad.me.uk/caught-in-a-self-sovereignty-self-hosting-knot</link>
      <description>&lt;![CDATA[I&#39;m caught in a self-sovereignty self-hosting knot of ambition. Some days it seems everything I want to simplify or improve or upgrade is blocked by something else. I want to blog more from my WriteFreely instance, and for the time being I can, but it&#39;s bothering me that it&#39;s out of date, running on an out-of-date Yunohost-11. I&#39;m proud to have set up staging copies of much of my infrastructure so I can try a test upgrade, but that reveals the upgrade is broken, so instead I want to migrate it either to a fresh Yunohost-12, but I discover that no longer supports exactly the same way of logging in with its SSO at my base-domain which is managed separately outside Yunohost (I&#39;m skipping lots of details, they&#39;re beside the point here), and it reminds me WF is one of my last few &#34;production&#34; services still running in YNH. I want to get them out of YNH because for all its good points it&#39;s designed as a monolith, not to plug and compose with other infrastructure, so... I could migrate Writefreely instead to another hosting method outside Yunohost, like MASH, so I try that and find support for Mariadb isn&#39;t yet implemented in MASH-WriteFreely, so I could either add Mariadb support myself and then migrate the DB directly, or let it use another DB and instead try to migrate the posts and subscribers and metadata through WriteFreely&#39;s API... and so on for my other services. Ugh. I mean, I knew it would be like this. I chose this path, and I kind of like it. Sometimes I even find that software has been developed in the meantime that does indeed simplify and improve things for me, like when projects add support for SSO, and that&#39;s wonderful! But just so much still remains to do... And I&#39;m trying to skip some of the nitty-gritty by looking ahead to better technologies: want to move infrastructure from Docker in VMs in Proxmox to mostly LXCs in Incus, eventually learn Nix and K8s, want to get involved in improving, unifying, standardising some of the best of small-medium scale hosting frameworks like Yunohost, Co-op Cloud, SelfHostBlocks/Skarabox, Fediversity. I realised at this stage any more tweaking I do to my private infra is more or less a waste, now that I&#39;ve learnt from it. What matters is what I can contribute to projects that others share, so I&#39;m aiming that way now. And thinking of some ways to &#34;level up&#34; this world of personal data self-sovereignty and make things that ordinary people can use, plug-and-play kit for family and friends and schools to store and easily manage their identity and data. Have (some) skills and (maybe good) ideas; lack money and time. Must get around to writing about the ideas at least. Is my WriteFreely still holding up for now? Whew.&#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&#39;m caught in a self-sovereignty self-hosting knot of ambition. Some days it seems everything I want to simplify or improve or upgrade is blocked by something else. I want to blog more from my WriteFreely instance, and for the time being I can, but it&#39;s bothering me that it&#39;s out of date, running on an out-of-date Yunohost-11. I&#39;m proud to have set up staging copies of much of my infrastructure so I can try a test upgrade, but that reveals the upgrade is broken, so instead I want to migrate it either to a fresh Yunohost-12, but I discover that no longer supports exactly the same way of logging in with its SSO at my base-domain which is managed separately outside Yunohost (I&#39;m skipping lots of details, they&#39;re beside the point here), and it reminds me WF is one of my last few “production” services still running in YNH. I want to get them out of YNH because for all its good points it&#39;s designed as a monolith, not to plug and compose with other infrastructure, so... I could migrate Writefreely instead to another hosting method outside Yunohost, like MASH, so I try that and find support for Mariadb isn&#39;t yet implemented in MASH-WriteFreely, so I could either add Mariadb support myself and then migrate the DB directly, or let it use another DB and instead try to migrate the posts and subscribers and metadata through WriteFreely&#39;s API... and so on for my other services. Ugh. I mean, I knew it would be like this. I chose this path, and I kind of like it. Sometimes I even find that software has been developed in the meantime that does indeed simplify and improve things for me, like when projects add support for SSO, and that&#39;s wonderful! But just so much still remains to do... And I&#39;m trying to skip some of the nitty-gritty by looking ahead to better technologies: want to move infrastructure from Docker in VMs in Proxmox to mostly LXCs in Incus, eventually learn Nix and K8s, want to get involved in improving, unifying, standardising some of the best of small-medium scale hosting frameworks like Yunohost, Co-op Cloud, SelfHostBlocks/Skarabox, Fediversity. I realised at this stage any more tweaking I do to my private infra is more or less a waste, now that I&#39;ve learnt from it. What matters is what I can contribute to projects that others share, so I&#39;m aiming that way now. And thinking of some ways to “level up” this world of personal data self-sovereignty and make things that ordinary people can use, plug-and-play kit for family and friends and schools to store and easily manage their identity and data. Have (some) skills and (maybe good) ideas; lack money and time. Must get around to writing about the ideas at least. Is my WriteFreely still holding up for now? Whew.</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/caught-in-a-self-sovereignty-self-hosting-knot</guid>
      <pubDate>Fri, 06 Jun 2025 11:13:00 +0000</pubDate>
    </item>
    <item>
      <title>Enter your Bossname</title>
      <link>https://wrily.foad.me.uk/enter-your-bossname</link>
      <description>&lt;![CDATA[Polite software. Politeness in software is under-rated. And deference.\&#xA;&#xA;Software that I truly control: you are likely FOSS/SOSS. You may call me &#34;Boss&#34;. (&#34;Settings -  Boss preferences&#34;; &#34;Enter your bossname.&#34;)&#xA;&#xA;2025-05-15-Bossname-Debian-login.jpg&#xA;&#xA;2025-05-15-Bossname-Gnome-settings.jpg&#xA;&#xA;Command-line apps: you may call me &#34;Commander&#34;. (Hear me out: I&#39;m serious beyond playing with words.)&#xA;&#xA;Any system I don&#39;t control: you may refer to me as, &#34;Esteemed client&#34; or &#34;Sir/Ma&#39;am&#34;.&#xA;&#xA;Big Tech People-Farmers: you may justly call me &#34;serf&#34; or &#34;chattel&#34; (related to cattle; look it up).&#xA;&#xA;Graphic meme idea: a collage of recognisable log-in screens etc., terminology edited.&#xA;&#xA;---&#xA;&#xA;\ Deference, but not fawning. Looking at you, LLM chat bots.&#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>Polite software. Politeness in software is under-rated. And deference.*</p>

<p>Software that I truly control: you are likely FOSS/SOSS. <strong>You may call me “Boss”.</strong> (“Settings –&gt; Boss preferences”; “Enter your bossname.”)</p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2025/05/2025-05-15-Bossname-Debian-login.jpg" alt="2025-05-15-Bossname-Debian-login.jpg"></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2025/05/2025-05-15-Bossname-Gnome-settings.jpg" alt="2025-05-15-Bossname-Gnome-settings.jpg"></p>

<p>Command-line apps: you may call me “Commander”. (Hear me out: I&#39;m serious beyond playing with words.)</p>

<p>Any system I don&#39;t control: <strong>you may refer to me as, “Esteemed client” or “Sir/Ma&#39;am”.</strong></p>

<p>Big Tech People-Farmers: <strong>you may justly call me “serf” or “chattel”</strong> (related to cattle; look it up).</p>

<p>Graphic meme idea: a collage of recognisable log-in screens etc., terminology edited.</p>

<hr>

<p>* Deference, but not fawning. Looking at you, LLM chat bots.</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/enter-your-bossname</guid>
      <pubDate>Thu, 15 May 2025 08:44:10 +0000</pubDate>
    </item>
    <item>
      <title>Open Source Considered Harmful -- Choose Your Browser Wisely</title>
      <link>https://wrily.foad.me.uk/open-source-considered-harmful-choose-your-browser-wisely</link>
      <description>&lt;![CDATA[Google Chrome vs. Mozilla Firefox&#xA;&#xA;&#34;It&#39;s built with open source technology -- that&#39;s good, right?&#34;&#xA;!--more--&#xA;&#xA;Have we lost sight of the goal posts? Why do we like open source? So we can inspect our tools, modify our tools, own our tools. The browser is a tool. But we want to own tools that serve us. Here we&#39;re talking about Chrome/Chromium, a tool built to serve its creator&#39;s interests: advertising, attention economy, centralised big tech services. Built to serve the Facebooks, the Twitters, the Tiktoks, the Amazon.coms of our world. Built to support &#34;monetizing&#34; us as we use it. Should we desire that tool because its creator is letting us &#34;own&#34; it? Is owning that particular tool good for us? Should we spend our effort debating exactly how &#34;free&#34; it is?&#xA;&#xA;Not me. I reject it. I choose tools that are built to support public standards and for the good of the people who use them. There&#39;s currently no perfect independent public-spirited browser. The best fit for my values is presently Firefox derivatives. (That&#39;s despite Mozilla&#39;s abominable financial dependence on and consequent promotion of Google, which I deplore. At least Firefox lets us operate it in our own interests, by letting us install ad blockers, etc., and has a community of better-privacy derivatives.) Do we see Google building their browser to support local community low-tech protocols and practices, like Fediverse for example? We don&#39;t.&#xA;&#xA;And we don&#39;t choose a tool just for being given away as open source, when that tool is built to serve Big Tech above ourselves.&#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="google-chrome-vs-mozilla-firefox" id="google-chrome-vs-mozilla-firefox">Google Chrome vs. Mozilla Firefox</h2>

<p>“It&#39;s built with open source technology — that&#39;s good, right?”
</p>

<p>Have we lost sight of the goal posts? Why do we like open source? So we can inspect our tools, modify our tools, own our tools. The browser is a tool. But we want to own tools that serve us. Here we&#39;re talking about Chrome/Chromium, a tool built to serve its creator&#39;s interests: advertising, attention economy, centralised big tech services. Built to serve the Facebooks, the Twitters, the Tiktoks, the Amazon.coms of our world. Built to support “monetizing” us as we use it. Should we desire that tool because its creator is letting us “own” it? Is owning that particular tool good for us? Should we spend our effort debating exactly how “free” it is?</p>

<p>Not me. I reject it. I choose tools that are built to support public standards and for the good of the people who use them. There&#39;s currently no perfect independent public-spirited browser. The best fit for my values is presently Firefox derivatives. (That&#39;s despite Mozilla&#39;s abominable financial dependence on and consequent promotion of Google, which I deplore. At least Firefox lets us operate it in our own interests, by letting us install ad blockers, etc., and has a community of better-privacy derivatives.) Do we see Google building their browser to support local community low-tech protocols and practices, like Fediverse for example? We don&#39;t.</p>

<p>And we don&#39;t choose a tool just for being given away as open source, when that tool is built to serve Big Tech above ourselves.</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/open-source-considered-harmful-choose-your-browser-wisely</guid>
      <pubDate>Fri, 10 Jan 2025 10:57:16 +0000</pubDate>
    </item>
    <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>Forĝejo Team/Project Namespace</title>
      <link>https://wrily.foad.me.uk/forgejo-team-project-namespace</link>
      <description>&lt;![CDATA[POSSE: I added this as a comment on the Forgejo discussion &#34;[FEAT] Proposal to extend Forgejo URL structure...&#34; on 2024-11-14.&#xA;!--more--&#xA;---&#xA;&#xA;Something perhaps not fully explored in this conversation is: Who are we building this for? I note that the original request/suggestion was specifically for Codeberg.&#xA;&#xA;Forgejo (.org main page) says it is a &#34;self-hosted lightweight&#34; forge, but also &#34;focuses on ... scaling ...&#34; That means, apparently, Forgejo is both for personal tiny use cases, and for big multi-tenant operations like Codeberg.&#xA;&#xA;Adequately supporting both tiny and huge cases requires flexibility. Flexibility of the structure.&#xA;&#xA;This request, initially framed as extending the namespace to add one new level, and subsequent discussions to perhaps add multiple levels, is great for big, multi-tenancy deployments.&#xA;&#xA;What about the small end of the scale? In a small scale deployment I would like the ability to drop the &#34;organization&#34; level (because it all belongs to just me or my single org), and just have projects directly at the top level.&#xA;&#xA;Or even -- and let&#39;s give this thought a chance before immediately rejecting it -- the possibility to run a single-project (repo) instance. (Need more projects? Spin up more lightweight instances.)&#xA;&#xA;I am not raising this to be argumentative. I have given a lot of thought to the issues of self-sovereign identity and federated services, and the context of hosting them. The &#34;instance of one&#34; principle which applies so well to Fediverse and Matrix servers also applies here -- it is the only way for a tenant to own their own identity (as far as &#34;ownership&#34; goes for DNS), when the software platform is constrained to serving only one domain per deployment. Making services support the &#34;instance of one&#34; paradigm, and be light-weight, is a key enabler of self-sovereign identity. (Making bigger deployments support Bring Your Own Domain multi-tenancy is an alternative.)&#xA;&#xA;In my use cases, I run a personal instance and one for my tiny (personal) company. In both cases I don&#39;t need to configure &#34;organisations&#34;, and I don&#39;t want that part of the UI because it is unnecessary clutter and cognitive load.  It&#39;s not huge but just seeing &#34;organization&#34; in the UI, or seeing the panel for configuring an org&#39;s contact details, puts me off.&#xA;&#xA;However I do find nested project name-spaces to be helpful. Currently I use (abuse) the &#34;organization&#34; level for achieving a single level of nesting. I fill in the &#34;org&#34; name and sometimes the description field; and I leave all the contact details blank. This works ok but it does not give the professional look that I would like to give: I would like my work to be presented with the UI indicating name-spaces but NOT pretending they are &#34;organisations&#34; in the sense of company businesses.&#xA;&#xA;TL;DR: If we make any change, let&#39;s make sure we make life better for light-weight single-tenant use cases as well as big ones.&#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>POSSE: I added this as a comment on the Forgejo discussion <a href="https://codeberg.org/forgejo/forgejo/issues/1024#issuecomment-2446657">“[FEAT] Proposal to extend Forgejo URL structure...”</a> on 2024-11-14.</em>
</p>

<hr>

<p>Something perhaps not fully explored in this conversation is: <strong>Who are we building this for?</strong> I note that the original request/suggestion was specifically for Codeberg.</p>

<p>Forgejo (.org main page) says it is a “<strong>self-hosted lightweight</strong>” forge, but also “focuses on ... <strong>scaling</strong> ...” That means, apparently, Forgejo is both for personal tiny use cases, and for big multi-tenant operations like Codeberg.</p>

<p>Adequately supporting both tiny and huge cases requires flexibility. Flexibility of the structure.</p>

<p>This request, initially framed as <em>extending</em> the namespace to add one new level, and subsequent discussions to perhaps add multiple levels, is great for <em>big, multi-tenancy</em> deployments.</p>

<p>What about the <strong>small</strong> end of the scale? In a small scale deployment I would like the ability to drop the “organization” level (because it all belongs to just me or my single org), and just have projects directly at the top level.</p>

<p>Or even — and let&#39;s give this thought a chance before immediately rejecting it — the possibility to run a single-project (repo) instance. (Need more projects? Spin up more lightweight instances.)</p>

<p>I am not raising this to be argumentative. I have given a lot of thought to the issues of self-sovereign identity and federated services, and the context of hosting them. The “instance of one” principle which applies so well to Fediverse and Matrix servers also applies here — it is the only way for a tenant to own their own identity (as far as “ownership” goes for DNS), when the software platform is constrained to serving only one domain per deployment. Making services support the “instance of one” paradigm, and be light-weight, is a key enabler of self-sovereign identity. (Making bigger deployments support <a href="https://wrily.foad.me.uk/fediverse-ideas-41-bring-your-own-identity-byoid">Bring Your Own Domain</a> multi-tenancy is an alternative.)</p>

<p>In my use cases, I run a personal instance and one for my tiny (personal) company. In both cases I don&#39;t need to configure “organisations”, and I don&#39;t want that part of the UI because it is unnecessary clutter and cognitive load.  It&#39;s not huge but just seeing “organization” in the UI, or seeing the panel for configuring an org&#39;s contact details, puts me off.</p>

<p>However I do find nested project name-spaces to be helpful. Currently I use (abuse) the “organization” level for achieving a single level of nesting. I fill in the “org” name and sometimes the description field; and I leave all the contact details blank. This works ok but it does not give the professional look that I would like to give: I would like my work to be presented with the UI indicating name-spaces but NOT pretending they are “organisations” in the sense of company businesses.</p>

<p>TL;DR: If we make any change, let&#39;s make sure we make life better for light-weight single-tenant use cases as well as big ones.</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/forgejo-team-project-namespace</guid>
      <pubDate>Thu, 14 Nov 2024 15:11:18 +0000</pubDate>
    </item>
  </channel>
</rss>