Note di Matteo


TIL

TIL Cloudflare sovrascrive il record CAA aprendo ad attacchi MiTM in caso di BGP hijacking, e anche se a conoscenza del problema l'ha sempre ignorato:

When a BGP leak occurs (malicious or accidental), an attacker can intercept traffic to satisfy an ACME http-01 challenge. This allows them to issue a valid SSL certificate for a victim’s domain.

The IETF standard RFC 8657 was created specifically to stop this by using accounturi in CAA records to bind issuance to a specific account.

Issue: But Cloudflare’s Universal SSL automatically injects permissive CAA records that override user-defined accounturi bindings.

Ignoring, Cloudflare is saying like: “We know BGP leaks happen constantly, but we will force a configuration that allows those leaks to be used for valid certificate issuance by malicious attackers.”

Qua la spiegazione completa.

#303 /
23 gennaio 2026
/
10:26
/ #cloudflare

TIL ci sono router Cisco che crashano se una risposta DNS contenente CNAME ha i record CNAME nell'ordine sbagliato. Cioè anziché:

;; QUESTION SECTION:
;; www.example.com.        IN    A

;; ANSWER SECTION:
www.example.com.    3600   IN    CNAME  cdn.example.com.
cdn.example.com.    300    IN    A      198.51.100.1

Così:

;; QUESTION SECTION:
;; www.example.com.	       IN    A

;; ANSWER SECTION:
cdn.example.com.    300    IN    A      198.51.100.1
www.example.com.    3600   IN    CNAME  cdn.example.com.

Cloudflare racconta che ha invertito l'ordine dei record nelle risposte DNS come mostrato qui sopra per rendere più efficiente il codice, e i router Cisco hanno iniziato ad andare in crash loop fino al rollback della modifica. Anche la risoluzione DNS nel kernel Linux ha un problema simile, anche se in quel caso la risposta veniva considerata vuota.

#289 /
15 gennaio 2026
/
13:46
/ #cloudflare#dns

TIL il font Inter ha delle varianti per risolvere le ambiguità, come la lettera elle che si confonde con la i:

font-feature-settings: "ss02";
#226 /
12 dicembre 2025
/
21:02
/ #design

TIL i resi Amazon sono testati in modo dettagliato, es. le console di videogiochi sono testate, i droni sono messi in funzione per verificare che volino, ecc. e quasi tutti tornano in vendita come nuovi o usati/ricondizionati. (DDay)

#201 /
4 dicembre 2025
/
14:44
/ #italia#amazon

TIL il comando "ssh" funziona anche con la scharfes S:

(Web Weekly #177)

#193 /
2 dicembre 2025
/
17:11

TIL buona parte del Web 1.0 era ospitato da GeoCities, servizio chiuso nel 2019 ma in parte archiviato su GeoCities Gallery.

Ora c'è Neocities.org che ospita più di un milione di siti con la stessa filosofia.

Da The indie web is here to make the internet weird again:

The indie web is about reclaiming space on the internet for human-created content. It’s not about creating the best website, the most optimized one, or the most popular one. It’s about creating whatever you want without caring what an algorithm thinks of it or worrying about an AI ripping it off.

What stood out to me most, and surprised me the most, was how the indie web feels. [...] Rather than the cold apathy I feel while scrolling through Google or social media, I was genuinely curious what the next website would hold, what weird design it would feature, what funky music or fun facts it would include. Some personal websites contained journal entries that left me feeling like I was actually getting to know the person who wrote them, a distinct change from the snarky Twitter posts and tag-filled Instagram captions I’ve grown used to.

#187 /
30 novembre 2025
/
20:40
/ #internet#social

TIL una build di Chromium richiede 3-4 giorni in locale.

Rebuilds are notoriously slow. A full Chromium build can take 3-4 days on standard development hardware like a MacBook laptop, assuming nothing fails. Every modification means another full rebuild to validate changes, and iterating on patches under those conditions quickly turns into multi-week cycles.

#176 /
22 novembre 2025
/
13:50
/ #browser

TIL PagoPA si è stufata di stare dietro ai bonus e ha fatto una piattaforma chiamata PARI per permettere alle varie pubbliche amministrazioni di distribuire bonus tramite l'app IO.

#173 /
19 novembre 2025
/
21:25
/ #pagopa#digitalizzazione#italia

TIL OONI.org (Open Observatory of Network Interference) è una global community measuring Internet censorship since 2012. Si installa la probe e si eseguono test che sono poi esplorabili e finiscono nei report sulla censura.

#166 /
18 novembre 2025
/
16:36
/ #internet

TIL il sistema di geoposizionamento what3words:

what3words è un modo molto semplice per comunicare la propria posizione geografica. A ogni 3 metri quadrati della superficie terrestre corrisponde un indirizzo unico di 3 parole che rimarrà sempre uguale. L'ordine e la composizione di queste parole è unica, facile da leggere, da condividere e da utilizzare.

Esempio: ///andiamo.mummia.visuali

#158 /
16 novembre 2025
/
20:49

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”.

#154 /
15 novembre 2025
/
20:57
/ #ai#google#openai

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 /
15 novembre 2025
/
16:16
/ #dev#git

TIL AWS chiama le istanze EC2 "droplet" internamente, come DigitalOcean:

The first subsystem is DropletWorkflow Manager (DWFM), which is responsible for the management of all the underlying physical servers that are used by EC2 for the hosting of EC2 instances – we call these servers “droplets”.

#103 /
25 ottobre 2025
/
22:55
/ #cloud#aws

TIL in PostgreSQL ALTER DEFAULT PRIVILEGES si applica solo agli oggetti creati dal ruolo che ha creato i default privileges. Di default è il ruolo attualmente connesso, ma si può specificare:

ALTER DEFAULT PRIVILEGES
FOR ROLE prod_dmarcwise
IN SCHEMA public
GRANT SELECT ON TABLES TO prod_pgdump;
#79 /
17 ottobre 2025
/
09:36
/ #dev#database

TIL Argon2 per le password non è più sicuro di bcrypt come si pensa:

[...] Me (@jmgosney) and @Sc00bzT were both on the experts panel for the Password Hashing Competition, and both of us will tell you not to use Argon2 for password hashing. It is weaker than bcrypt at runtimes < 1000 ms.

Yep, we basically completely failed. We set out to identify The One True PHF and instead we selected yet another KDF. We also placed way too much emphasis on "memory hardness" when we should have been emphasizing "cache hardness."

@TerahashCorp

Bottom line, if you're already using argon2, you're totally fine. It's still a good PHF and much better than most everything out there. But if you aren't using argon2, bcrypt is a better choice.

@jmgosney

#69 /
14 ottobre 2025
/
21:07
/ #dev#security

TIL ora JavaScript ha una funzione nativa groupBy() e non serve più usare reduce(). Mini guida qui.

#67 /
14 ottobre 2025
/
11:39
/ #dev#javascript

TIL gli Heisenbug:

In computer programming jargon, a heisenbug is a software bug that seems to disappear or alter its behavior when one attempts to study it. The term is a pun on the name of Werner Heisenberg, the physicist who first asserted the observer effect of quantum mechanics, which states that the act of observing a system inevitably alters its state. In electronics, the traditional term is probe effect, where attaching a test probe to a device changes its behavior.

#44 /
5 ottobre 2025
/
15:47
/ #dev

TIL la prima centrale geotermica al mondo è stata costruita in Toscana nel 1913 ed è rimasta l'unica fino al 1958. La più grande centrale geotermica in Europa è tutt'ora in Toscana, nella "Valle del diavolo", dove si produce il 10% dell'energia geotermica prodotta nel mondo. (Presadiretta)

#20 /
29 settembre 2025
/
23:11
/ #energia#innovazione#italia#mondo

TIL tutti questi software nell'ambito video/multimediale sono stati originariamente creati da sviluppatori francesi:

  • ffmpeg
  • VLC / VideoLAN
  • x264 (codec H.264)
  • DivX (codec)
  • HandBrake (GUI per transcoding)
  • Matroska/MKV (formato container)
  • GPAC/MP4Box (packager)
  • MediaInfo (debugging)
  • dav1d (codec AV1 di VideoLAN)
  • HLS.js
  • TSDuck

(fonte)

#9 /
28 settembre 2025
/
13:44
/ #video

TIL il firewall di Cloudflare era inizialmente fatto con nginx + PHP (!):

[...] the first version of FL was implemented based on the NGINX webserver, with product logic implemented in PHP. After 3 years, the system became too complex to manage effectively, and too slow to respond, and an almost complete rewrite of the running system was performed.

E poi fino al 2024 nginx (openresty) con scripting Lua:

From this point on, FL was implemented using NGINX, the OpenResty framework, and LuaJIT. While this was great for a long time, over the last few years it started to show its age. We had to spend increasing amounts of time fixing or working around obscure bugs in LuaJIT. The highly dynamic and unstructured nature of our Lua code, which was a blessing when first trying to implement logic quickly, became a source of errors and delay when trying to integrate large amounts of complex product logic.

Da quest'anno è in rollout la nuova versione scritta in Rust.

#2 /
27 settembre 2025
/
11:31
/ #cloudflare#cdn