A Skill for Getting Letterboxd Reviews into Obsidian
Going local-first. But with no friction.

For years I manually copied my Letterboxd reviews into Obsidian like a primitive. Then I realized that automating tasks has never been easier, so I made a skill and turned this process into one click.
The Problem With Measuring AI Productivity
Every time I read about some study measuring the productivity gain of AI-assisted development, I raise an eyebrow. I find them uninteresting and useful only for the online fights between “there is no AI productivity for software developers” and “Claude Code increased my productivity by a billion percent.” The problem is that the landscape is so varied that, honestly, you can stress the data to prove both assertions.
My personal opinion is that many papers on the subject are just messy, and often they do not test at all how people using AI efficiently for work are actually using it. There are many issues I identified: they give too-easy problems, they impose arbitrary time constraints, they give problems to people not familiar with the framework they have to use (a big no no), and, surprisingly, I still see a lot of studies where the test subjects use “copy-pasting code from the web chat interface back and forth.” That is a way to work with AI that I think every developer stopped using in 2024.
But setting this aside, my main problem is that they never measure a specific class of task: the tasks that I would not have even started without AI assistants. We can discuss “this AI agent increases productivity by 2%” or “5%” or “20%” for as long as we want, but the reality is that many software and features I made in the last year would not exist at all without AI agents. I have folders with a sea of tools, automations, and single-use scripts that I would have never started.
So how could I measure that? For me, that is an increase of infinite percent, because they didn’t help me complete a project faster; they are the reason some projects exist. In some sense, it is a kind of Pascal’s wager. How should I redact the claim “AI agents improve developer output by only 2%” when I have concrete evidence on my hard drive of things that would have remained annotated in my notebook for all eternity?
Maybe it is my ADHD talking. Probably other people function differently and can do everything by just deciding to. But for me, lowering the activation moat that blocks me from starting to work on something is 100% worth it, even if I end up doing 80% of the work by hand.
It is a personal thing. I know that. I also understand if you work differently. And that’s the point. I saw developers using these tools in wildly different ways, for very different purposes, and with very different outcomes, and I don’t think it’s possible or fair to reduce that to a universal percentage number in some random study.
The Golden Rule of Using AI Agents
As with many, I played around with AI agents in code. Contrary to some opinions, AI agents made me rediscover the joy of coding (for many reasons I may discuss another time). However, I am not blind, and I owe my satisfaction with AI agents to a strict mental model and practice.
If you are not a software developer and you use AI to jam together personal scripts for yourself, do not worry, you can do as you want. If you are using them to learn something, don’t worry either.
But if you are a professional coder or you want to publish your work, you have to follow the Golden Rule:
You must use an AI Agent only to do what you know how to do.
Only in this way can you be efficient with them. Only if you know how to do something can you instantly spot when the agent is doing something decent or not. Only if you know how to do something can you recognize whether the generated code is good.
This doesn’t make them less useful. I like to code algorithms, solve problems, and sketch the architecture of the various elements. So I focus on that while I let the robot work on things I loathe. Things like CLI interfaces, reporting, writing diagnostic endpoints, and other tasks I find super boring. I know how to do them; they are just boring. So I let the robot do them while I focus on the math and the algorithms.
However, be careful. The siren’s song is strong. If you are not disciplined, you may think, Why not? Why should I not use the robot for this thing I don’t know how to do?
And that’s the moment you open yourself to fatal mistakes.
It Is Okay to “Vibecode”
Sure. It is not the best. But, if it works for you, who cares?

Critiques to vibecoding are often an example of right-Gaussian thinking. If you want to be a developer, you should avoid it. But if not, why should you not take advantage of new tools? Just be aware of the limitations. Here I try to explain why vibecoding is not a cardinal sin.
One surprising thing about LLMs nobody is talking about
Small reflections on the unexpected of syntactic networks.

Large Language Models (LLMs) maybe be controversial, somehow, but I am still amazed by their mathematical properties. In this article, I will reflect on my favorite one.
This website will always be open. For bots, too.
Because offering free and accessible information is the most important thing.

In period where everybody seems to care about the use of our content, I decided to take a stance: I will always make my content available to everybody, human and non-human alike. Because copyright is a already a problem as it is.
How to use ElevenLabs text-to-speech in Unity
A simple script to add ElevenLabs text-to-speech to your Unity game.

ElevenLabs offers the best text-to-speech API on the market, and it is my go-to service when I want to have very good results. I had to add text-to-speech to Unity’s demos a lot of times in the last months, and I decided to share the basic script I use to do it.
Utility-based AI for Games

Finite-State Machines (FSM) are the bread-and-butter of game AI due to their simplicity (both in implementation and theory) and effectiveness. As such, FSMs are the topic of many tutorials and guides. Unfortunately, most of them focus on the States part of FSM. After all, they are called Finite-State Machines, so you expect that states are the critical part.
Well, no. The critical part is the other: transitions.
Transitions can make or break your AI independently of how carefully crafted the states are. In other words, intelligence is in change, and the element of change in an FSM is represented by transitions.
The Freakout-Free Guide to Generative AI

I saw a bit of a heated debate around generative AI and AI art. So this is my “guide” for the general public, where I try to answer some common questions. What is generative AI? How does it work? What are its problems? What are their advantages? Do we all die because of it? (no).
Unity Artificial Intelligence Programming – Fifth Edition

Hey, everyone. As you know, I am not particularly present recently (I need to find out how to handle this blog while my interests spread out on non-technical stuff, but this is something for another time).
However, I am back with an announcement: I have recently published the fifth edition of Unity Artificial Intelligence Programming.
Not only have I updated the book for Unity 2022, but the book is also a massive improvement over the last edition in terms of code quality and consistency (and I really need to thank Kazimieras Mikelis for the extensive and detailed review). Moreover, I added a chapter on Procedural Content Generation because it is my main interest, of course.