Note di Matteo


15 novembre 2025

TIL Nano Banana per la generazione di immagini AI non è un diffusion model ma autoregressive, a differenza delle generazioni precedenti di Imagen e a differenza di DALL-E 2 e 3. E Midjourney e Stable Diffusion.

Of note, gpt-image-1, the technical name of the underlying image generation model, is an autoregressive model. While most image generation models are diffusion-based to reduce the amount of compute needed to train and generate from such models, gpt-image-1 works by generating tokens in the same way that ChatGPT generates the next token, then decoding them into an image. It’s extremely slow at about 30 seconds to generate each image at the highest quality (the default in ChatGPT), but it’s hard for most people to argue with free.

In August 2025, a new mysterious text-to-image model appeared on LMArena: a model code-named “nano-banana”. This model was eventually publically released by Google as Gemini 2.5 Flash Image, an image generation model that works natively with their Gemini 2.5 Flash model. Unlike Imagen 4, it is indeed autoregressive, generating 1,290 tokens per image. After Nano Banana’s popularity pushed the Gemini app to the top of the mobile App Stores, Google eventually made Nano Banana the colloquial name for the model as it’s definitely more catchy than “Gemini 2.5 Flash Image”.


Inside Cursor

When people describe someone in a professional setting as “young,” I usually find this translates to either “somewhat incompetent” or “good at their job but gratingly unprofessional.” Knowing the former was not going to be an issue at Cursor, I was prepared for at least some of the latter.

Despite a young average age, I was pleasantly surprised to find the team instead to be warm, well-dressed, keen on eye contact, clear and respectful in communication, and assiduous about replacing empty toilet paper rolls on the dispenser of the shared bathrooms. I was also surprised to find people so young so often communicate their ideas by reference to Silicon Valley history, world history, pop culture, art, learnings from seemingly unrelated industries, and patterns they’ve observed in the work of others they’ve long admired. The range of references is wide, but what’s clear in every example is that people at Cursor study the world as they move through it, rather than rely exclusively on their own personal experience for all their context and idea-generation (a typical pitfall of “young” people). It makes the team particularly good at finding elegant solutions to many shapes of problems.

To share what they’re observing and learning, many team members create “brain” channels in Slack where they publish their personal musings; there’s no expectation of a response or engagement, but people with good ideas can command quite a following. For the most popular brain channels, the content has little to do with “proof of work” or “managing up,” but rather ideas and reflections. Recent examples include musings on whether “CMSes are an artifact of the pre-AI era,” a deeply considered readout from a slew of customer visits, and a very exacting friction log on a still-nascent Cursor product.

Perhaps most importantly to me, you won’t see much LFGGGGGG, talk of being “cracked,” or overuse of emojis or memes. Recent favorite non-work related messages include an invitation to Vivaldi’s The Four Seasons at the SF Symphony, a picture from respective NY and SF 9pm run clubs, friendly mockery at a bad take on AI in the The New Yorker, an entire channel dedicated to #laundry featuring a weekly “laundry standup” slackbot, debates about how to fold fitted sheets, and a poll about which humanoid robot will first make our beds. No one ever breaks character. By far, the most used reaction emoji is ♥️. No one raises their voices, gets angsty or flustered, or visibly panics when things go sideways. It all feels very…adult.

Brie Wolfson in Inside Cursor - Sixty days with the AI coding decacorn

#153 /
17:27


TIL con un file .git-blame-ignore-revs si possono ignorare determinati commit dall'output "blame" su GitHub (o con git blame --ignore-revs-file .git-blame-ignore-revs), utile quando si fanno refactoring o si modifica la formattazione ma non la funzionalità.

(fonte, esempio)

#151 /
16:16
/ #dev#git


14 novembre 2025

I tend to stay up late, not because I'm partying but because it's the only time of the day when I'm alone and don't have to be on, performing.

Jim Carrey

#149 /
16:59
/ #mondo


Google sta riscrivendo pezzi di Android che prima erano in C++ in Rust, con notevoli risultati dal punto di vista della sicurezza:

With roughly 5 million lines of Rust in the Android platform and one potential memory safety vulnerability found (and fixed pre-release), our estimated vulnerability density for Rust is 0.2 vuln per 1 million lines (MLOC).

Our historical data for C and C++ shows a density of closer to 1,000 memory safety vulnerabilities per MLOC. Our Rust code is currently tracking at a density orders of magnitude lower: a more than 1000x reduction.


13 novembre 2025

L'nginx ingress di Kubernetes sarà dismesso (nessun aggiornamento nemmeno di sicurezza) da marzo 2026, senza evidenti alternative equivalenti. Wow.

#146 /
13:32
/ #cloud

12 novembre 2025

La nuova app WhatsApp per Windows non è più nativa. La versione web wrapper consuma fino a 10 volte la memoria dell'app nativa...

#145 /
20:53
/ #meta

Nuovo articolo sul blog: Il digitale secondo Trentino Trasporti (parte 3).

Fa parte di un servizio digitale anche la comunicazione, specialmente nella pubblica amministrazione dove c’è l’abitudine a usare un linguaggio burocratico anche nelle comunicazioni al pubblico, spesso dimenticandosi che si sta parlando con delle persone.

Questa volta diamo quindi un’occhiata alla pagina FAQ risposte in un clic di Trentino Trasporti, una buona idea purtroppo realizzata in modo mediocre. I testi sono pieni di errori (ho contato almeno 9 errori di battitura e molti altri di sintassi) e sono scritti male, cioè di difficile comprensione.

Lo stile è troppo distante dalle indicazioni del Manuale operativo di design dei servizi pubblici digitali, dai fondamenti di linguaggio e dalla Guida al linguaggio della Pubblica Amministrazione, che sono i riferimenti ufficiali a livello nazionale.

Come riassume bene il manuale, l’obiettivo dovrebbe essere “scrivere per le persone” e “parlare la lingua delle persone per servizi più utili e accessibili”.

Vediamo qualche esempio di cosa non è la lingua delle persone.

#144 /
20:44
/ #blog#scrivere

Interessante in Firefox 145: lo shortcut sul desktop non è più uno shortcut ma un piccolo launcher eseguibile.

#143 /
20:41
/ #browser

11 novembre 2025

Sussiste una rastrelliera

Scrivere male per soddisfare il linguaggio burocratico:

Posso viaggiare con la bici elettrica o monopattino elettrico?

Si ma solo sui treni della linea ferroviaria Trento-Malè-Mezzana e Trento Bassano del Grappa e sulla Funivia Trento Sardagna in quanto sussiste una rastrelliera dedicata alle biciclette.

"Sussiste una rastrelliera"?

(Trentino Trasporti)

#142 /
20:58
/ #scrivere


La risposta di Guido Scorza sulla "inchiesta" di Report sul Garante privacy. Come è abitudine di Report, una ricostruzione selettiva con diverse inesattezze, omissioni e ignoranze per far sembrare scandalo cose che non lo sono.



9 novembre 2025


Magika 1.0

Scrivevo un anno e mezzo fa:

In uno dei suoi tremila blog ieri Google ha annunciato anche un nuovo interessante progetto open source chiamato Magika. Serve a identificare il tipo di un file in automatico e si basa su un modello deep learning molto piccolo e molto efficiente, con tempi di inferenza di pochi millisecondi anche su CPU.

Finora il riconoscimento del tipo di un file era basato sul suo nome (es. estensione .pdf) o sull'analisi dei "magic byte", delle sequenze binarie presenti all'inizio dei file che in molti casi ne permettono l'identificazione. Magika è però di gran lunga superiore rispetto a queste tecniche, con le metriche precision, recall e F1 che superano il 99% e per alcuni tipi di file raggiungono il 100%.

Magika si può usare facilmente con Python o JavaScript, infatti la demo ufficiale funziona nel browser: https://google.github.io/magika/

Ora Magika ha raggiunto la 1.0:

Today, we are happy to announce the release of Magika 1.0, a first stable version that introduces new features and a host of major improvements since last announcement. Here are the highlights:

  • Expanded file type support for more than 200 types (up from ~100). -A brand-new, high-performance engine rewritten from the ground up in Rust.
  • A native Rust command-line client for maximum speed and security.
  • Improved accuracy for challenging text-based formats like code and configuration files.
  • A revamped Magika Python and TypeScript module for even easier integrations.

Prestazioni notevoli:

Magika is able to identify hundreds of files per second on a single core and easily scale to thousands per second on modern multi-core CPUs thanks to the use of the high-performance ONNX Runtime for model inference and Tokio for asynchronous parallel processing, For example, as visible in the chart below, on a MacBook Pro (M4), Magika processes nearly 1,000 files per second.


Uno spot Coca Cola mostra i limiti dell'AI generativa nei video:

Palesemente non una buona idea, eppure.

#136 /
18:50
/ #ai

Come funziona Discover Weekly di Spotify:

Discover Weekly is far more sophisticated than the Music Genome project. It starts by pulling in songs from playlists created by its users, then matches them against a taste profile for each individual user, using technology from a company called The Echo Nest that it purchased in 2014. Then it performs additional fine-tuning and filtering, including machine learning analysis of raw audio data, before building you a unique 30-song playlist.

#135 /
18:05
/ #ai