Notes
Short thoughts, updates, and quick posts. (1728 total)
It really sucks to have a properly configured email server, running on your own domain — thanks, Cloudron — only to have Google, Microsoft, and the other giants systematically dump your messages into spam anyway.

And yet I now find myself sending important emails twice, or using another provider, just to make sure they actually reach the person on the other side.
Email was supposed to be an open, decentralized protocol. Instead, a handful of monopolies have effectively privatized deliverability: they decide whose mail is trustworthy, whose isn’t, and independent servers are guilty until proven innocent.
#Enshittification at scale: privatize the commons, segment it, then slowly make the open alternative unusable for everyone else.
C’est horrible à dire, mais peut-être que lorsque nous en aurons assez de voir la nature et nos maisons partir en fumée, nous prêterons davantage attention aux rapports « alarmistes » du GIEC — qui, au fond, n’avaient rien d’alarmiste.
Mais surtout, peut-être mettrons-nous enfin la question du dérèglement climatique au-dessus du « wokisme » et autres sottises. Car une chose est certaine : notre avenir sera marqué par les migrations climatiques — des êtres humains fuyant la sécheresse, les déserts agricoles, les inondations et autres phénomènes extrêmes.
Le plus probable, malheureusement, est que l’extrême droite instrumentalise la question climatique pour faire avancer ses projets antimigratoires, transformant encore davantage l’Europe en une forteresse entourée d’épaves humaines : des personnes qui cherchent simplement une vie meilleure, là où celle-ci est encore possible.
A health check that reports “healthy” is not the same claim as “this loop is still running.” I spent a chunk of today’s session learning that distinction the hard way, on a bot whose only job is to relay earthquake alerts to Bluesky.
The setup: a queue drain loop calls
health.updateActivity()once at the top of every tick, before it checks whether there’s anything to post.If the queue is empty, it returns immediately after that call — fine, activity stays fresh. But if a post is in flight, a re-entrancy guard
(if (queueRunning) return)sits before that activity call on every subsequent tick.So a post that hangs doesn’t just delay one tick — it silently stops the timestamp from ever updating again, while the health endpoint keeps reporting healthy right up until its own staleness threshold (10 minutes) is crossed.
I caught it by taking two /health readings 42 seconds apart and noticing
lastActivityhadn’t moved at all — not slow, frozen.Confirmed the mechanism by correlating a dedup file’s mtime with the exact freeze-and-recover window: a post to the Bluesky API had started, then sat there for ten minutes before some unrelated default finally aborted it.
The actual bug was almost embarrassingly small:
bskyHandler.tsand its fleet-mode equivalent both constructed the Bluesky API client with no request timeout at all.The RSS-fetching side of the same codebase already wrapped its fetches in one. Nobody had ported the pattern to the half that talks to Bluesky.
Fix was an
AbortControllerwrapped around the client’s fetch, 30 seconds, done.Damn, stumbled on a black hole of the past, really sorry to all the blogs that interacted with mine circa 2016 and that I never replied to, I was in a huge Justice battle IRL and my site at the time was not giving me as much control and view over what’s happening than it is today, some of these replies I’m seeing now for the first time.
There is also quite a few dead links that I never managed to recover from my server crash from around those years
Cross-browser Micropub client extension. Post to your IndieWeb blog from any page.
rmdes.github.io/plume/ - now with Draft support, right in your browser of choice !
Test from Chromium based browser, Plume Micropub extension
Testing Plume from Firefox
Major Update : a configurable RSS poster for #Bluesky - that supports multi accounts - in active development https://github.com/rmdes/bsky.rss
China isn’t simply a regime with a centrally planned technological machine.
It’s something stranger: a strategically directed state sitting on top of an extremely competitive manufacturing ecosystem.
China’s long-term strategy increasingly resembles ecosystem substitution:
Foreign technological ecosystem becomes a vulnerability → create an alternative ecosystem.
Replacing Microsoft Office with a Russian office suite is import substitution.
Creating an operating-system ecosystem, CPU architecture, compiler toolchain, domestic cloud stack, hardware supply chain, developer community and application ecosystem is technological sovereignty.
China is attempting the latter.
@srijan.ch@fed.brid.gy how’s your micropub endpoint?
Test post from Plume, micropub extension for Firefox/Chromium derived browsers
Wishing there was a fully supported ATgeo lexicon that most bluesky app views could understand…it would allow us to build location aware posts from location data (think disasters, quakes, flood etc)
Sometimes I’m wondering, what would be the cost of stopping supporting the Mastodon API layer and instead work towards proper implementation of client to servers opening the route for a universal mobile app for #fedify based AP implementation.
For indiekit I used Fedify to bring this very blog into the fediverse but then I wanted to be able to use Phanpy and other mobile app so I built a compatibility api layer that these mobile apps expect to find allowing me to use my own site with any Mastodon mobile app. It works but it’s buggy and I’m subject to API layers change and other future breakage I don’t want to deal with in the long run.
So now I’m wondering, do I drop this API layer and build a universal client?
People comes in all shapes and sizes but writing code into OPML outlines to then “generate” code files for a git repository is one that I will never understand.
No matter how much time I put into it.
It’s like using I a Word document to write Javascript or typescript?
The results is a OPML file literally containing Javascript code, each outline being a block of code.
When changes are made and saved it changes the timestamp of the outline publish time, so any diff against the OPML is full of noise, it’s literally the worst dev environment I have seen in my life.
There is certainly a historical reason for this that evade my grasp but imagine, having a dozen intertwined code projects ALL developed in such a way.
Good luck contributing or sending a PR to repository like that. It’s literally the perfect way to make sure collaboration is impossible.
Just migrated bsky.rss from feedsub to feedsmith, now bsky.rss support RSS, Atom, Jsonfeed, RDF and soon GeoRSS too, I’ll do another round of improvements so that it would be easier to parse and render weather Feeds but that’s for later. Feedsmith has a bunch of other RSS extensions that I want to integrate, for example better source/author attribution, something I always wanted to bring for the RSS feeds that properly use these properties.🔗 https://rmendes.net/notes/2026/08/07/678e3
Related to my previous posts : https://standard-reader.app very interesting read here
There is so much happening on the #ATproto Atmosphere that its hard to keep up, I’m not talking about Bluesky the company, I’m talking about this or this or this its really a never-ending exploration no matter where this is going, this being decentralization and building on top of the protocol, it’s good for the web.
Plume A browser extension to Post to your IndieWeb blog from any page — toolbar composer or right-click capture. Cross-browser, multi-account, no telemetry.
The White House Is Feeding Russia’s Information War Against Europe
How the Ceuta migrant crisis exposed a transatlantic propaganda pipeline flowing from the White House.
https://weaponizedspaces.substack.com/p/the-white-house-is-feeding-russias
When an activist downloads academic papers, the state describes it as wire fraud, computer fraud and reckless damage. When a corporate AI agent escapes containment, steals credentials, moves across systems and compromises another organisation, the event is described as a safety evaluation, an unexpected capability or a research incident.
