Ricardo Mendes

Ricardo Mendes

I'm a middleware engineer/devops, Dad, writer, and digital autonomy advocate based in Brussels. I geek out on politics, technology, information systems, democracy, justice, coercive groups, and discernment.

This site is my personal hub for long-form writing, curated bookmarks, and open-web experiments — where ideas about tech, autonomy, democracy, and digital culture meet. Since February 2026, this site is also my personal ActivityPub instance, every posts you see on this blog can be fetched from the fediverse. Read more →

Featured

Vous saviez.

Nous savons prévoir. Vous avez décidé de ne pas gouverner. Les enfants qui entreront à l’école en septembre 2031 sont nés. Vous les avez comptés. 643 905. Vous savez où ils vivent. Vous avez publié des projections jusqu’en 2070. Et en septembre 2031,...

I don’t know how USians aren’t more bothered — even humiliated — by watching Canadians resist Trump more coherently than the United States itself.

And I don’t mean that Americans aren’t resisting. They are. People protest, states sue the federal government, judges block illegal decisions, Trump’s approval is collapsing.

But look at Canada.

Canadian consumers are boycotting American products. Businesses are finding new suppliers. Travel to the United States remains dramatically below 2024 levels. The Canadian government now has an explicit strategy to double exports outside the United States. And Canada is moving closer to Europe economically, strategically and militarily — to the point that Mark Carney is reportedly exploring some kind of unprecedented “associate” relationship with the EU.

That’s not just anger anymore.

That’s adaptation.

And I think this is the part Americans haven’t fully reckoned with yet.

The United States hasn’t lost its military power. It hasn’t stopped being one of the largest economies on Earth. It hasn’t magically ceased to matter.

What it is losing is something much harder to rebuild: trust.

The assumption that the United States is a reasonably predictable ally, a stable trading partner and a country whose commitments will survive the next election.

That assumption is dying.

International polling already shows an extraordinary deterioration in America’s reputation. Even indexes that still rank the United States first in global soft power recorded the largest decline of any country in 2026.

And once countries start reorganizing themselves around the possibility that America cannot be trusted, replacing Trump with another president doesn’t simply reset the clock.

Supply chains get rebuilt. Trade goes elsewhere. Defence industries develop alternatives. Alliances deepen. Infrastructure gets constructed. Companies learn how to operate without American suppliers. Governments discover that strategic autonomy is not merely an ideological slogan but insurance against Washington.

That is the extraordinary self-harm of Trumpism.

Trump promised to make America so powerful that everyone would have to bend to it.

Instead, he is teaching everyone how to live without it.

Canada is doing it. Europe is doing it. Other countries will do it in their own ways — sometimes because they want to, sometimes because they have no choice.

And that may ultimately be healthy.

A world less dependent on a single country is potentially more resilient. Europe should have developed greater autonomy decades ago. Canada probably should never have allowed such overwhelming dependence on one trading partner. Countries in Africa and Latin America have every reason to diversify relationships rather than constantly choose between great powers.

The irony is brutal.

No terrorist organization, foreign adversary or grassroots revolutionary movement could realistically have inflicted this kind of strategic damage on the United States.

It required the United States itself.

There is something almost Brexit-like about it: external enemies can hurt you, but self-harm has a completely different scale. You know where your institutions are. You know which alliances matter. You know which foundations are load-bearing.

And then you dismantle them yourself.

The United States will survive Trump. Of course it will.

But the world that existed before Trump may not return.

Because the rest of us are learning a lesson that will survive him:

never again build a world in which so much depends on the political sanity of one country.

It’s over.

Permalink

Trump’s Third Term May Not Need Trump

There are at least two obvious ways to imagine Donald Trump trying to remain president after 2028. The first is the constitutional loophole: someone close to him — perhaps one of his children — runs for president with Trump as vice president, wins, t...

Open-source collaboration in the age of AI

I am not going to reconstruct the entire disagreement that prompted this post.

Some of the public exchanges have been deleted. Other parts happened privately or by email. I have no interest in tracing every sentence, assigning blame line by line, or producing a forensic account of who said what. That would only prolong a conflict that has already taken up too much space.

But people noticed that I removed my participation from the project, and I have started receiving emails from strangers asking what happened. So I want to explain the broader issue, without turning a personal disagreement into public theatre.

Open-source collaboration does not necessarily become easier because AI makes it easier to inspect code, identify bugs, produce patches, and write detailed issues. In some ways, it becomes considerably harder.

You can spend time formulating an issue carefully and professionally, only for it to be perceived by the repository owner as a list of orders.

That owner is, of course, entirely free to reject the contribution. They can close the issue, say that it is outside the project’s scope, explain that it is not on the roadmap, or simply decide that they do not want to pursue it. There are thousands of legitimate ways to govern an open-source project.

Governance by burnout is not one of them.

When you use an AI tool to help document a problem, the resulting issue may contain precise examples, references to specific lines, screenshots, reproduction steps, and concrete observations gathered by running the software outside the environment of its original author.

That can be useful. It can also be overwhelming.

The problem is that the intention behind such a contribution may not survive the way it is received. You may believe that you are documenting a bug thoroughly. The maintainer may see a wall of text, an unsolicited audit, or an attempt to dictate the project’s direction.

You can ask questions first. You can soften the language. You can repeatedly state that the maintainer is free to ignore the suggestion. None of that guarantees collaboration when the other side does not experience the contribution as collaborative.

Most of my experiences have been different.

I have submitted issues and pull requests to several projects, including repositories connected to my professional work. Some of those contributions were written with the help of AI—not because I could not be bothered to write them myself, but because the tool already had the context: the code, the logs, the behaviour I had observed, and the steps that exposed the bug.

When the issue was valid, it was investigated. When the patch fixed a real problem, it was reviewed. Sometimes it was merged directly. Sometimes the maintainer rewrote it to match the project’s architecture, conventions, or preferred way of working.

That is normal. A contribution is not an instruction. It is material offered to the project.

For Indiekit, for example, I submitted a skeleton pull request of roughly two thousand lines containing the foundations of a Microsub plugin. It was not something the lead developer could review immediately. It required time and several email exchanges. But the contribution was handled professionally.

That first pull request opened the way for further work, with the plugin I already use in production gradually being reviewed and reconstructed under the oversight of the person responsible for the project.

I have seen similar responses in projects such as Dolibarr, Odysseus, and ComfyUI. A suspected bug was investigated. Its existence was corroborated. A fix was discussed or implemented. Everyone using the project could then benefit.

That is one of the core ideas behind open source.

This is not an argument that AI is inherently good or bad. It is an argument that collaboration still depends on people who actually want to collaborate.

A project can publish its code under an open-source licence without being socially open to outside participation. That is entirely legitimate, but it should be understood honestly. Otherwise, openness risks becoming more of a posture than a practice.

The recent conflict also showed me how easily both sides can misread each other.

The maintainer indicated that they could not follow or process what I had written because it was too much. I interpreted this as a request for greater clarity and replied with another comment summarizing my previous points, together with screenshots from my implementation.

I believed I was reducing the burden.

In reality, the person was angry. They had perceived my earlier issues as orders and felt overwhelmed by my participation as a whole. My attempt to clarify the situation therefore became another contribution to the very problem they were describing.

I later tried to explain myself privately and apologized. I was also transparent that some of the issues and comments had been written partly, or sometimes almost entirely, with Claude’s assistance.

Again, this was not because I had randomly asked a model to invent criticisms of somebody else’s project. The tool was helping me work on the implementation. It already held the context of the bugs and limitations I had encountered, so using that context to draft an issue was the most direct workflow.

But the origin of the text does not erase its effect on the person receiving it.

Everyone is overwhelmed. Maintainers especially are often expected to write the software, review code, answer questions, manage releases, handle support, moderate discussions, and absorb the emotional reactions of users—all without compensation.

Adding more explanations, even explanations intended to correct a misunderstanding, can simply produce more pressure.

My response was therefore to withdraw. I removed my contributions and comments where I could, apologized for the parts for which I could take responsibility, and moved on.

That was not a protest against my work being rejected. Nobody is required to accept an issue, a patch, an idea, or a contribution. In a world where AI makes bootstrapping increasingly accessible, people can fork a project and take it in another direction. That freedom is essential, and it should not change.

The issue is not rejection.

The issue is the growing potential for misunderstanding, misperception, and misjudgment between people working at radically different speeds, with radically different expectations, using tools that can generate more material than any small project is equipped to absorb.

Over the coming years, situations like this will become common.

Contributors will have to learn that the ability to identify ten problems does not mean that a maintainer can process ten issues. The ability to generate a detailed analysis does not mean that detail is always helpful. A technically correct contribution can still arrive in a socially destructive form.

Maintainers, in turn, may need clearer ways to communicate what kind of participation they want, how much they can realistically review, and whether outside contributions are genuinely welcome.

We are entering largely uncharted territory. The tools are evolving faster than the social practices around them.

We will need to rediscover some old rules of collaboration and invent new ones: smaller contributions, clearer boundaries, explicit expectations, consent before large interventions, and a better awareness that attention—not code—is often the scarcest resource in an open-source project.

AI can help us produce more.

It cannot make us ready to receive more.

Whoever reads this, I came and go in Peace, I will keep doing my part the way I see fit, but I have definitely learned a lesson here and for that, I’m thankful.

Permalink

Recent Posts

Photo

Well my dgx spark local ai have been : busy

Permalink

Je l’ai reçu via Facebook et j’ai pas cherché ailleurs où l’a trouver, mais ce pitch est peut être le truc le plus articulé que j’ai entendu contre la floraison de datacenters aux US et ailleurs dans le monde.

video

Transcription

Will Hollingsworth — Discours contre les centres de données à Ravenna

Conseil municipal de Ravenna, Ohio — 10 avril 2026

(0:02) — Présidence du conseil :

Monsieur Hollingsworth, je crois que vous aviez levé la main pour prendre la parole.

(0:09) — Will Hollingsworth :

Bonjour. Je m’appelle Will Hollingsworth, je travaille à la bibliothèque municipale Reed Memorial, et je vous remercie de m’accorder la parole aujourd’hui.

Je ne suis pas quelqu’un qui se méfie systématiquement de la technologie.

(0:18) Ma passion a commencé le jour où mon oncle m’a installé devant un vieil ordinateur beige sous Windows 95 et m’a appris le HTML.

Je n’oublierai jamais ma première recherche sur Google.

J’avais cherché des images de cochons volants.

Je voulais savoir si Internet pouvait rendre l’impossible réel.

(0:30) Cet amour du numérique a façonné toute ma carrière. Je suis devenu programmeur, puis créateur de contenu professionnel.

Pendant quinze ans, j’ai consacré mon travail à apprendre et à maîtriser les technologies émergentes.

(0:39) Dans mon dernier emploi, j’étais l’artiste numérique à qui l’on confiait ce type de missions.

C’était moi qui rédigeais des prompts sur Midjourney pour produire la publicité parfaite.

(0:46) J’entraînais la machine qui finirait par me remplacer.

Trois mois plus tard, on me licenciait.

(0:51) Je n’ai pas simplement regardé cette transformation se produire.

J’avais les outils entre les mains lorsqu’ils se sont retournés contre moi.

(0:55) Alors, je veux être parfaitement clair : je ne suis pas ici en ennemi du progrès.

Mais lorsque je regarde ce projet de centre de données, ce n’est pas le progrès que je vois.

(1:03) Je vois un pari risqué, dans lequel les géants de la technologie empochent l’or, pendant que le comté de Portage paie la facture.

(1:08) Je sais qu’il existe des arguments sincères en faveur de ce projet.

Des personnes honnêtes et bien informées de notre communauté vous expliqueront que les centres de données modernes utilisent des systèmes de refroidissement dits « en circuit fermé ».

(1:17) Selon elles, il suffit de remplir le circuit une seule fois, puis de recycler l’eau indéfiniment.

En laboratoire, c’est peut-être vrai.

(1:22) Mais nous ne vivons pas dans un laboratoire.

Nous vivons dans l’Ohio.

(1:25) Et je peux vous dire qu’à mesure que les puces électroniques deviennent plus petites et que les besoins de l’intelligence artificielle augmentent, la chaleur produite par ces machines dépasse les capacités promises par cette théorie du circuit fermé.

(1:33) Pour empêcher les serveurs de surchauffer, les centres de données doivent purger leurs circuits afin d’évacuer les boues toxiques, notamment les substances chimiques persistantes que l’on appelle les « polluants éternels ».

Et pour évacuer la chaleur, de l’eau doit s’évaporer.

(1:42) Elle ne reste donc pas éternellement dans le circuit.

Elle s’évapore dans l’atmosphère.

Des millions de gallons d’eau qui disparaissent dans le ciel.

(1:47) L’entreprise qui m’a licencié fabriquait des matelas biologiques.

Et pendant que j’y travaillais, j’ai beaucoup appris sur ces fameux polluants éternels.

(1:54) J’ai vu les coulisses de cette industrie. J’ai découvert comment les choses fonctionnent réellement, derrière les réglementations et les certifications.

(1:59) J’ai vu comment des études présentées comme rigoureuses sont souvent financées par ceux-là mêmes qu’elles sont censées contrôler.

Un système où l’on paie pour jouer.

Vous avez l’argent ? Vous obtenez le certificat.

(2:05) Alors, lorsqu’une entreprise qui vaut des milliers de milliards de dollars finance elle-même une étude affirmant que ses rejets chimiques ne contamineront pas nos nappes phréatiques…

(2:11) Ce qu’elle nous présente, ce n’est pas de la science.

C’est un argumentaire commercial.

(2:15) On nous dit que nous devons accepter ce projet parce que nous avons besoin de grands employeurs.

On nous dit que si nous refusons, nous faisons fuir l’avenir.

(2:22) Mais c’est un faux choix.

(2:24) Un prétendu grand employeur qui consomme autant d’eau que 50 000 habitants — soit environ la population réunie de Kent et Ravenna — mais qui n’emploie qu’une dizaine de personnes…

(2:31) Ce n’est pas un employeur.

C’est une entreprise qui vient extraire nos ressources.

(2:35) On nous demande de financer un luxe du XXIᵉ siècle par un pillage de ressources digne du XIXᵉ.

(2:41) On nous demande de sacrifier ce qui fait vivre notre ville pour qu’une entreprise pesant des milliers de milliards puisse économiser une fraction de centime sur ses marges bénéficiaires.

(2:48) On nous demande de vider nos réservoirs pour qu’un chatbot puisse écrire un poème…

Ou pour que notre shérif puisse générer une image de lui-même à côté de Bigfoot.

(2:54) Et évidemment, sur l’image, il s’est arrangé pour paraître plus grand !

(2:58) On nous demande de faire confiance à une industrie qui pèse des milliers de milliards de dollars.

Une industrie qui nous regarde droit dans les yeux et nous affirme, avec le plus grand sérieux, qu’elle peut pomper cinq millions de gallons d’eau de notre sous-sol chaque jour…

(3:08) Utiliser cette eau pour absorber la chaleur de ses machines…

Puis la rejeter dans nos rivières…

Sans la moindre conséquence.

(3:13) Et pendant ce temps, ces entreprises nous demandent d’adopter une approche « mesurée ».

Tout en dissimulant leur consommation réelle derrière des contrats secrets et des accords de confidentialité.

(3:19) Les habitants de l’Ohio connaissent déjà cette méthode.

Nous savons ce qui arrive lorsque les intérêts des grandes compagnies d’électricité et des accords énergétiques opaques sont approuvés à toute vitesse, derrière des portes closes.

(3:28) Nous continuons à payer la facture.

Littéralement.

Souvenez-vous du scandale FirstEnergy.

(3:31) On nous avait assuré que ces plans de sauvetage étaient indispensables, raisonnables et parfaitement justifiés.

Et ils ont débouché sur la plus grande affaire de corruption organisée de l’histoire de notre État.

(3:38) Alors, lorsqu’une entreprise pesant des milliers de milliards de dollars vient réclamer notre eau, notre électricité et notre silence…

Nous ne devrions pas nous contenter de demander des chiffres.

Nous devrions demander qui touche les pots-de-vin.

Et pourquoi ce sont nos réserves d’eau qui doivent être mises en péril.

(3:49) Ce n’est pas un hasard si la Chambre des représentants de l’Ohio vient de voter, à 88 voix contre zéro, pour suspendre le développement de cette industrie et en étudier les conséquences.

(3:54) Ce n’était pas un acte de cynisme.

C’était un acte de responsabilité.

(3:58) Ces élus ont compris qu’on ne pouvait pas laisser ces futures villes fantômes industrielles s’installer avant même d’avoir mesuré les dégâts qu’elles pourraient infliger à notre réseau électrique et à nos nappes phréatiques.

(4:04) Ravenna est le chef-lieu de notre comté.

Et nous sommes les gardiens du bassin des Grands Lacs.

(4:09) Faisons en sorte que Ravenna soit la ville qui aura eu la sagesse de dire non à la bulle spéculative et oui à la protection de notre bassin.

Je ne suis pas un adversaire de la technologie.

Je crois en notre communauté.

Et je crois qu’une seule goutte d’eau potable pour un enfant de Ravenna vaut davantage qu’un milliard d’images générées par intelligence artificielle.

(4:24) Alors, choisissons cet enfant.

Choisissons notre communauté.

Choisissons de garder notre eau là où elle doit être.

Merci.

Permalink

Imagine it’s May 2027.

Democrats control Congress. Six months have passed. We’ve had televised hearings, endless investigations, viral speeches, and strongly worded statements.

But no resignations. No removals. No meaningful consequences. Nobody held accountable.

That wouldn’t be justice. That would be impunity with a Democratic majority.

Americans didn’t vote to replace Republican abuses of power with Democratic political theater. They voted for change.

Every abuse must be exposed. Every subpoena enforced. Every credible allegation of criminal wrongdoing pursued through the justice system. Every official responsible held accountable.

And let’s be clear: Congress cannot prosecute crimes itself. But it can uncover evidence, compel testimony, pursue impeachment, and demand independent prosecutions.

If Democratic leadership lacks the courage to use its power, then Democratic leadership must change.

Don’t wait six months to discover that nothing has changed. Demand accountability now.

What would you be doing Now if you knew this was going to enfold?

Democracy cannot survive if those who attack it never face consequences.

Permalink
View all posts

Skills

Music Production

Jeskola Buzz VST Ableton Live Ableton Push Erae 2 MIDI

OSINT

Telegram Twitter

Programming

HTML Python JavaScript Typescript

Interests

Personal

Politics Climate Human Rights News Information Books Music Technology Science Fiction Music Production Indieweb Democracy Justice Movies Series

Data Engineering & Automation Systems

Data pipeline PostgreSQL Baserow n8n OSINT Telegram archiving RSS aggregation Web scraping Archiving systems Data indexing Search & retrieval

Decentralized & Independent Web Ecosystem

Decentralized Web Indie Tech Fediverse Mastodon Bluesky RSS culture IndieWeb Webmentions Platform independence

Personal Projects

2022-02 – Present

Real-time monitoring and analysis platform for open-source intelligence The OSINTukraine initiative is a specialized endeavor dedicated to open-source intelligence (OSINT) pertaining to Ukraine. Its primary objectives are the collection, archiving, translation, analysis, and dissemination of critical information related to the ongoing conflict with Ukraine. Utilizing advanced OSINT techniques, the project offers in-depth insights into current events, potential security threats, and other relevant issues concerning Ukraine. This is achieved by monitoring numerous Russian telegram channels, followed by meticulous filtering, categorization, and archiving of data streams. These efforts are further enhanced by various OSINT analysis projects incubated within the initiative." Current sub-projects War crimes archive Drones research Location related alerts system

Docker Python NextJS LLM AI Telegram API PostgreSQL

2023-01 – Present

Chardons Bleus is a non-profit association created to raise and manage funds so that people victims of the Ogyen Kunzang Chöling cult and its criminal leader Robert Spatz can effectively access the justice system. The association exists to pool resources, cover legal and procedural costs, and provide a collective framework that makes long and complex judicial actions financially possible. It also acts as a point of coordination between contributors, legal representatives, and supporting professionals, with the clear purpose of enabling accountability through lawful proceedings that individuals could not sustain alone.

Justice Advocacy Fundraising Public Speaking

2002-11 – Present

BuzzWorkers is a long running personal project dedicated to curating, preserving, and publishing independent electronic music and DJ mixes spanning Techno, Electro, Trip Hop, Acid, and related experimental genres from the 1990s to today. Over more than twenty years, I designed, operated, migrated, and maintained the full technical stack behind the platform, evolving alongside the web itself. This included working with multiple generations of hosting, audio tooling, content management systems, databases, automation scripts, streaming and download infrastructures, and more recently federated platforms such as the fediverse and Funkwhale. Beyond music production and curation, the project taught me long term system design, data preservation, platform migration, interoperability, and the tradeoffs between centralized and decentralized architectures, while managing large media collections and making them reliably accessible on the web for community and educational use.

Ansible Docker Python Funkwhale ActivityPub

2023-10 – Present

“Skyfleet”, a fleet of thematic and news-oriented Bluesky accounts powered by RSS feeds and FreshRSS, with pages that track their sources and purpose, plus a hand-curated directory of custom feeds with clear inclusion criteria so people can discover active, maintained feeds and share their own

Bsky.rss Docker News Bluesky

2015-10 – 2022-10

OKCinfo was launched at the end of 2015 as a desperate last minute attempt in a 20 year long existing trial launched by the Belgian state against the OKC cult in 1997. The 23 of us – supported by more than 40 other former OKC-born young children – have since been supported by talented lawyers ready to champion our cause. The Belgian chapter of the justice battle against OKC was concluded in 2022, the pedocriminal Robert Spatz was condemned to a 5 years suspended sentence. The victims decided to engage a new Justice battle in france under the banner of Association Chardons Bleus

Justice Advocacy Fundraising Public Speaking Activism

Posting Activity

2026
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
View full history