gioleppe šŸŽµ

Software Engineer. Computer Science BSc @ University of Pisa. This is my personal blog, find out more on what I’m doing in the About page, or contact me using one of the channels below.

On Conjuring Childhood Dreams and Being Somewhat Wrong

A few days ago, I was at the pub with a friend. He showed me some games he vibe-coded across the past few months and inspired me: we started talking about creating our own ironic monster-catching RPG. Being able to make that kind of game was a dream for me as a child. I spent whole afternoons on RPG Maker 2000 trying to develop many projects: obviously all of them failed miserably, but that experience was one of the most formative ones I had in those years, and it shaped my computational thinking. Either way, I don’t want to make this too philosophical; after 10 minutes of back-and-forth chat with Gemini, I had a design document for my over-the-top PokĆ©mon lookalike. Both of us being completely hopeless at pixel art, he recommended Aseprite to me, which supports an MCP server and batch mode for sprite generation. I took the tip and went on to order another beer. We spent a couple of hours together and I quickly forgot about the matter. ...

November 14, 2026 Ā· 6 min Ā· Tommaso Colella

On Generative AI, Simplicity, and Easiness

Last week I presented a speech at Linux Day 2025, in Prato, about meta-search engines. Specifically, I was talking about SearXNG. While preparing the slides for the speech, I came across articles talking about ā€œAI Overviewā€, the new feature/product by Google Search giving out answers for your queries in a LLM generated box on top of standard search results. According to many sources, AI Overview has already had a great impact on websites’ traffic across many industries since its release: notably, newspapers and websites giving out generic information such as Wikipedia, have seen their traffic reduced. Preliminary research on the topic seems to confirm this trend. ...

October 30, 2025 Ā· 11 min Ā· Tommaso Colella

Faster, please! (Or, how I reverse engineered an app to cater to my needs)

I love listening to podcasts, and news in general. For a couple of years, I’ve been subscribed to a somewhat-niche (but really high quality) Italian weekly magazine. I like their Android application, and I use its Text To Speech functionality, but there’s a big problem with that: it’s impossible to increase the audio reproduction speed. I usually listen to articles while doing something else, such as washing the dishes, or commuting to the office. This means I only have a fixed amount of time for this activity. Because of these time restrictions, I like to cram as much content as possible in my daily listening. I also get bored very quickly when someone speaks slowly (sorry, I’m engineered like this!). That’s exactly why I set the speed to 2x for most of the podcasts I’m listening to. Being unable to do the same with the magazine’s articles really bothered me. ...

April 27, 2025 Ā· 7 min Ā· Tommaso Colella

Dirt-cheap Computer Science books

If you’re a bookworm like me, you can’t resist the fascination of the paper medium. Reading a proper book is a much more relaxing experience than reading on a screen. Some studies also found a correlation between phone usage in bed and increased risk of having poor sleep quality. These are some reasons I’ve always preferred reading from paper books, especially at nighttime. Computer Science books are often expensive, and one could always object that paper production has an undeniable carbon footprint. You could go to a public library, which I personally do, and it is always a great idea. That said, some textbooks are perfect for frequent consultation: one would like to have them readily available. ...

March 26, 2024 Ā· 6 min Ā· Tommaso Colella

Enforcing OPA policies with Terraform / OpenTofu in network-isolated Azure VNet - Part 1

Recently, we had a couple of naming-related incidents at work. We respect certain naming conventions, but sometimes errors slip into our Terraform infrastructure’s code, and remediation may be costly. I had to find a way to simplify resource naming policy enforcement: at first, I thought about using Git Hooks (with a custom HCL parser) or local linters. Both of these approaches came with downsides that would make it unpractical to employ them on multiple repositories: first of all, the necessity to set up hooks or linter configurations in each repo. ...

March 6, 2024 Ā· 10 min Ā· Tommaso Colella