I canceled my Bluesky account

I deleted my Bluesky account. I didn’t follow anyone anyway, and I only used it to repost content from my website. Being almost mainstream now, I found Bluesky to have the same dynamics as other mass-adopted social networks: controversies, lots of ego-hunting, vanity fairs, sterile debates, witticisms, and everything else that doesn’t interest me. Having left Twitter a while ago and Facebook a long time before that, I’m left with Mastodon precisely because there are fewer people there, and they are more in my niche; it feels like the pre-mass social media world, like the first Twitter years. Not coincidentally, I’m also receiving more feedback on my content than anywhere else. ...

June 22, 2025

AI coding is less fun

I’ve been doing “agentic coding” for some time, and well, it’s weird. On stable, mature technology (in my case, the C#/.NET stack), it is beneficial, as it significantly boosts productivity. But, there’s a bit, and that’s that I’m not programming anymore, or very little now, and I love coding. I love entering “the zone” and solving complex problems, one at a time. It’s always been my superpower. Will I still have fun in the future now that I can delegate most tasks to Claude Code? ...

June 19, 2025

Quoting Mihaly Csikszentmihalyi

The best moments in our lives are not the passive, receptive, relaxing times… The best moments usually occur if a person’s body or mind is stretched to its limits in a voluntary effort to accomplish something difficult and worthwhile. – Mihaly Csikszentmihalyi (via)

June 19, 2025

If a note can be public, it should be

Quoting Dries Buytaert: A few years ago, I quietly adopted a small principle that has changed how I think about publishing on my website. […] The principle is: If a note can be public, it should be. Unconsciously, I am trying to do the same, as you might have noticed by the increased activity on this website. Maintaining consistency can be challenging, but it’s worth the effort.

June 18, 2025

MCP Remote

I’ve been implementing a remote MCP Server. It comes with a hybrid authentication system that supports the OAuth2 flow and, as a fallback, a custom header for those simple clients that cannot handle OAuth. One such client is Claude Desktop, which, at this time, is even worse; it only supports STDIO (local) servers, let alone OAuth2. Today I learned about a nice NPM package called MCP Remote, which bridges the gap by allowing MCP clients that only support local servers to connect to remote MCP Servers, even with authentication support. Thanks to this tool, Claude Desktop is now talking to my remote server1. ...

June 18, 2025

Free online courses from top universities

An impressive list of free online courses from top universities, courtesy of Open Culture. I’m bookmarking them for a friend when he retires.

June 17, 2025

Marp, the markdown presentation ecosystem

Today, I learned about Marp, the “Markdown Presentation Ecosystem,” which comes with an enticing promise: to create beautiful slide decks using an intuitive Markdown experience. For my latest presentation, I utilized the Slides Extended Obsidian plugin, which is based on reveal.js—an excellent option for keeping slide decks within one’s Obsidian vault (I keep all notes, work and personal journals, and knowledge in Obsidian.) Marp could be a viable alternative to the plugin, as Obsidian notes are just markdown files. The advantage here is that I can further elaborate or iterate on my slides, for example, from the command line, as Marp comes with a dedicated CLI tool that lets you export to PDF, HTML, and more. Additionally, Marp is not based on reveal.js, a tool that has given me headaches in the past. ...

June 17, 2025

Fattura Elettronica v4

I just released FatturaElettronica.NET v4. The major version bump is due to a minor breaking change introduced with this version. After removing the BouncyCastle dependency (v3.4.16) for signature, content extraction, and encoding purposes, a few minor behavioral changes were introduced in the library. It was previously possible to extract content from documents with tampered signatures (if signature validation was flagged false) Signature exceptions were being misreported as Base64 FormatExceptions for non-base64 input files After a lengthy analysis and troubleshooting, it was determined that System.Cryptography (which now replaces BouncyCastle) cannot support the successful decoding of tampered invoices. However, this is undesirable as a feature in the first place. The result is a breaking change: attempting to read tampered documents will now invariably throw SignatureException. ...

June 16, 2025

Blogs are still a thing

Quoting Andreas: Blogging is a small niche these days. There isn’t much hype around it, nor is there any money to be made because the VC firms are all busy chasing the next big thing, whatever that might be once the AI hype dies off in a year or two. But it is still here, and I like it exactly because it’s not the hype technology of the day anymore. It isn’t commercialised, algorithmically curated and set up to make some other person rich. ...

June 16, 2025
Our orchid in bloom

In bloom

After years of care, the orchid in the bathroom has bloomed again. I moved it from the edge of the bathtub, where it had been surviving in a wilted state for years, to the sink, hoping to water it more often, which I did. Nothing else: no repotting, no fertilizer, the same light as before. The resilience of nature.

June 16, 2025