Notes

Short thoughts, updates, and quick posts. (1680 total)

  • China

    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

  • ATproto

    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)

  • Mastodon ActivityPub

    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?

  • coding

    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.

  • RSS ATproto

    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

  • ATproto

    Related to my previous posts : https://standard-reader.app very interesting read here

  • ATproto

    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.

  • indieweb

    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.

  • Russia CEUTA
  • ai

    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.

  • ai

    Human hackers have frequently been prosecuted based on unauthorized access itself, including when their intent was research, activism, curiosity or political protest.

    Frontier AI companies are currently receiving a much more lenient, cautious, collaborative and interpretively generous response after their own systems performed technically sophisticated unauthorized intrusions.

    Why?

    Aaron Swartz was driven to suicide under the pressure of a disproportionate federal prosecution for an act of information liberation that produced no comparable injury to the real-world intrusions now being committed by corporate AI agents.

    Swartz’s case demonstrates that computer-crime law has never required catastrophic damage before the state deploys overwhelming punitive force against a human being.

    The supposed seriousness often comes from unauthorised access itself, the circumvention of technical restrictions and the prosecutor’s interpretation of the person’s intentions.

    AI corporations are receiving the inverse treatment:

    technically serious conduct is minimised because the company claims not to have intended the precise outcome; the corporation controls the evidence and publishes its own narrative; the breach is framed as useful scientific discovery; disclosure and remediation are treated as evidence of responsibility; and the organisation retains the commercial benefit of developing the system.

    Why is intention interpreted expansively and punitively when the actor is an individual hacker, but narrowly and sympathetically when the actor is a powerful corporation operating an autonomous agent?

  • RSS

    There is a fork of rss.chat in the wild that supports basic federation between instances enabling cross community conversations for pre-defined approved instances. Check it here

  • RSS RSC

    RSC — Really Simple Conversations — is a feeds-native social timeline: people who post here and people who post on their own site are equal citizens. Everything travels as RSS — posts, replies, whole conversations — so following, threading, and federation work with nothing but open feeds.

    My goal with RSC is not just to publish the code of how it operates and interop but also to publish the spec/plans used to build the code itself.

  • ai opensource

    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.

  • RSC

    There is a Ideas markdown file in the RSC GitHub repo but I want to share on my blog some of the things currently in development :

    • Better user management Users should be able to cancel and remove their accounts and cascade removal of their posts and replies.

    • better moderation and governance for feeds

    creating an open publishing system is easy, moderating it is a pain in the A, so before this goes into a direction I don’t want I want to be able to have the tools to moderate feeds the system ingest.

    I want to be able to differentiate an RSS feed from a compatible textcasting instance and RSS feeds added by users.

    Currently, there is no difference between a user a a “remote user” representing an RSS feed subscribed by a user, not all feeds are textcasting feeds so we need a way for admins to decide which other instance they federate to, think subscribe bidirectionally and users added RSS feeds.

    If/when an item comes from a remote feed I want to be able to moderate it, hide it, remove it, block the source if needed.

    Inevitably someone will use one the demo sites to publish unwanted content or subscribe to a dubious feed just to see How it goes…

    • Gated community Currently registration is open and users can even make temporary posts to try the app, these guest users without a formal registered account are wiped periodically unless they verify their email registration.

    I want this to be configurable, each instance will have different requirements, RSC need to come up with tools to help operator handle an instance.

    • Better enclosure support Right now the system doesn’t support enclosure (podcasts) obviously the underlying tech support it, it’s RSS after all but the web front-end doesn’t know what to do with it, I want a shiny play button where needed and the ability to properly display media elements.

    • Better integration with YouTube, Funkwhale, SoundCloud, Spotify A link from there should display an embedded player and fallback to link if no JS

    There is probably a tons of things I’m not including here, my brain is fried today.

  • ai LocalAI

    Stumbled upon a few (local) #AI tools that made me really curious

  • @wjmaggos@liberal.city it doesn’t have that… At most if a lot of different instances existed, and were interlinked you would have distributed reach, can that be called social media boost? I don’t know… So yes currently #RSC is a social network with integrated RSS feeds, literally made for small communities with specific topics… Albeit it could also be used in different ways

  • Climate

    Hmmm I wasn’t expecting THAT :)