IP Addresses through 2025 è una mega analisi di Geoff Huston, guru della Internet australiana, sullo stato di allocazione delle risorse IP, sia IPv4 che IPv6.
IP Addresses through 2025 è una mega analisi di Geoff Huston, guru della Internet australiana, sullo stato di allocazione delle risorse IP, sia IPv4 che IPv6.
We live in an age where capital and data can cross Europe in a second. And business must be able to move just as freely. But as things stand, too many companies have to look abroad to grow and scale up – partly because they face a new set of rules every time they expand into a new Member State. So while on paper the market of 450 million Europeans is open to them, it is far more complicated in reality. And that acts as a handbrake on the growth and profit potential of companies. This is why we need a new approach. We will soon put forward our 28th regime. The ultimate aim is to create a new truly European company structure. We call it EU Inc., with a single and simple set of rules that will apply seamlessly all over our Union. So that business can operate across Member States much more easily. Our entrepreneurs, the innovative companies, will be able to register a company in any Member State within 48 hours – fully online. They will enjoy the same capital regime all across the EU. Ultimately, we need a system where companies can do business and raise financing seamlessly across Europe – just as easily as in uniform markets like the US or China. If we get this right – and if we move fast enough – this will not only help EU companies grow. But it will attract investment from across the world.
Ursula von der Leyen nel discorso al World Economic Forum.
È un affascinante caso di possibile errore che ottiene però un risultato efficace. «Paradiso fiscale», per indicare delle nazioni o dei luoghi in cui la tassazione è particolarmente favorevole, è infatti probabilmente il risultato di una traduzione sbagliata dell’espressione inglese tax haven, usata per prima rispetto alla lunga storia dei «paradisi fiscali». E che significa «rifugio fiscale», ma in cui haven (che può voler dire anche «porto») suona molto simile alla più familiare parola heaven, che vuol dire in effetti «paradiso» o «cielo» in senso figurato.
Luca Sofri in Parole che usiamo in un modo o nell’altro sul Post.
Il terrore delle ripetizioni che ci viene instillato a scuola genera nel giornalismo scelte acrobatiche e artificiose per sostituire parole e nomi con presunti sinonimi o creative perifrasi. Nel giornalismo sportivo questo ha prodotto un ricco vocabolario di termini di poco uso, ma con radici storiche o geografiche, per indicare le città sedi di squadre di calcio o altro. Il risultato è posticcio, ma permette di imparare termini che hanno ricchissime implicazioni storiche. Sapete dire a quali città si riferiscono gli aggettivi scaligera, labronica, felsinea, partenopea, sabauda, orobica, capitolina, estense, gigliata, ambrosiana, etnea, alabardata, lariana?
Luca Sofri in Parole che usiamo in un modo o nell’altro sul Post.
ttl è un mtr con qualche funzione in più, tra cui enrichment dei dati ASN e DNS:
Key features of ttl include:
• Multi-flow probing – Enumerates all load-balanced paths (no more seeing just one path through ECMP).
• Path MTU discovery – Pinpoints exactly where fragmentation kills your jumbo frames.
• NAT detection – Reveals when a middlebox is quietly rewriting your source ports.
• Route flap alerts – Catches BGP instability as it happens by detecting path changes in real time.
• PeeringDB integration – Identifies which Internet Exchange (IX) you're crossing in your route.
• MPLS label visibility – Exposes provider LSP paths by decoding MPLS labels from ICMP responses.
• Smart loss detection – Distinguishes real packet loss from routers simply rate-limiting ICMP replies.
• Modern TUI – Features live stats, jitter calculation, ASN/GeoIP enrichment, and a sleek terminal UI (no 1990s look-and-feel).
• Scriptable output – JSON and CSV export for automating analysis or proving that yes, the problem is their network.
(LinkedIn)
The truth is that we and Elon agreed in 2017 that a for-profit structure would be the next phase for OpenAI; negotiations ended when we refused to give him full control; we rejected his offer to merge OpenAI into Tesla; we tried to find another path to achieve the mission together; and then he quit OpenAI, encouraging us to find our own path to raising billions of dollars, without which he gave us a 0% chance of success.
[...]
He said that he needed full control since he’d been burned by not having it in the past, and when we discussed succession he surprised us by talking about his children controlling AGI.
Ancora sulla questione Cloudflare-AGCOM: nella delibera c'è scritto che il punto non era Piracy Shield (cioè i blocchi entro 30 minuti), ma ordini di blocco decisi da un tribunale. A quanto pare Cloudflare si è rifiutata di eseguirli, e quindi è evidentemente nel torto.
AGCOM specifica poi questo dato: "Cloudflare appare come fornitore di servizi del 70% dei siti illeciti degli ultimi anni".
Ho aggiunto il supporto all'autenticazione a due fattori su DMARCwise e ho fatto fatica a trovare informazioni su best practice attorno alla 2FA con OTP, per cui segno quello che ho scoperto qui.
Intanto, l'algoritmo si chiama Time-based One-Time Password (TOTP) e permette di generare un codice di N cifre ogni T secondi partendo da un secret. Non tutte le app "authenticator" supportano tutte le configurazioni, per cui la più comune è:
Il secret nella maggior parte dei casi è di 20 byte (160 bit) e viene codificato in Base32 (es. CVEBO7GKWLFDRBJRPPTOZ7I6VEPDIGIT). Va generato diverso per ogni utente.
Per la verifica del TOTP la RFC consiglia di usare una tolleranza (drift window) di +/- un intervallo di tempo T (quindi vale sia il codice precedente che quello successivo).
Il secret andrebbe cifrato prima di essere inserito nel database. Nel mio caso ho scelto AES-256 GCM. Nel db vanno quindi salvati il secret cifrato (Base64) più il nonce e il tag AES.
Per la validazione dei codici ho usato la libreria Otp.NET per .NET/C#. Per AES ho usato l'implementazione nativa di .NET.
Per la configurazione iniziale del secondo fattore, all'utente vanno forniti il secret e i vari parametri menzionati sopra (o anche no, dato che quelli indicati qui sopra sono di solito il default), oppure un QR code che contiene un URI con questo formato (inizialmente definito da Google ma ora standard de facto):
otpauth://totp/{label}:{accountName}?secret={secret}&issuer={issuer}";
I parametri vanno URL encoded. La prima etichetta viene mostrata nella UI dell'applicazione authenticator di turno (Google Authenticator, Ente Auth, ecc.) assieme al nome dell'account, mentre l'issuer dovrebbe essere a uso interno.
Il codice QR lo genero server-side in SVG con ZXing.QrCode e lo ritorno nella risposta JSON delle API. Probabilmente si può fare anche client-side, ma avevo già generato QR in C# in un altro progetto per cui ho riciclato il codice.
Per confermare l'abilitazione della 2FA l'utente deve inserire un primo codice TOTP generato dall'app authenticator. C'è la possibilità che l'utente abbandoni il processo a metà, per cui ci vuole un cleanup delle configurazioni che non sono ancora state abilitate dopo 24/48 ore.
Andrebbero poi generati e forniti dei codici di backup/recupero. Nel mio caso sono 10 codici di 8 caratteri presi dall'alfabeto ABCDEFGHJKLMNPQRSTUVWXYZ23456789 (es. BVEZ-MMWP). Sono hashati con Argon2id, come le password, e salvati in una tabella del db. Di conseguenza nel momento della verifica del backup code bisogna verificarli tutti uno a uno per trovare se c'è un match, e poi segnare il codice individuato come già usato.
Come si implementa la verifica del secondo fattore in fase di login? Il login restituisce un token di tipo TwoFactorPending e il frontend fa redirect alla pagina di verifica. Questo token temporaneo permette di usare solo l'endpoint di verifica 2FA. Se il codice inserito dall'utente è corretto viene invalidato il token temporaneo (che ha comunque scadenza breve, es. 5 minuti) e ne viene creato uno nuovo "standard".
La disattivazione del secondo fattore deve richiedere la password dell'utente, mentre la rigenerazione dei codici di backup deve richiedere un codice TOTP valido (per verificare che l'utente sia effettivamente ancora in possesso del secondo fattore).
Bonus: il 95% del codice è stato scritto da Claude Code e dall'inizio alla fine ci abbiamo impiegato circa 3 giorni (progettazione, implementazione di 6 endpoint backend, integration test e tutta la UI con SvelteKit).
Ho pubblicato certs.email: un mini-servizio per essere notificati all'avvicinamento della scadenza dei certificati SSL/TLS dei propri domini.
È gratis e open source e in realtà mi serve prevalentemente per avere un dominio in più che invia email, per poter testare meglio DMARCwise.
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.
JuxtaText. Un diff viewer testuale per macOS gratuito (e molto bello).
Mi chiedo se il fatto che Siri sarà powered by Gemini si noterà nel concreto. I due principali (o unici) sistemi operativi mobile avranno assistenti AI entrambi dipendenti da Google. È un potenziale grosso bias (le "conoscenze" interne dell'LLM saranno comuni).
Le opzioni comunque erano: Apple prende la tecnologia da OpenAI, che le vuole fare competizione anche nell'hardware, oppure Apple prende la tecnologia da Google, che già le fa competizione non solo sugli assistenti AI e con Android ma anche sull'hardware. Sarà uno degli ultimi atti di Tim Cook prima della pensione, non so se sarà ben ricordato per questo.
EDIT: sarà distillazione, non fine-tuning.
Dev'essere qualcosa che ha a che vedere con le nostre radici culturali, il cristianesimo forse, le favole che ci raccontavano da bambini, i cartoni animati. C'è questo bisogno di eroi, di gente pura, che si immola sull'altare, c'è questo bisogno di trovare persone migliori di noi e queste persone non devono manco vederli i soldi, come se i soldi fossero qualcosa di sporco di brutto. Credo che sia una cosa particolarmente forte in Italia, un po' meno altrove come negli Stati Uniti.
[...] Quello che so è che le favole non esistono, questa cosa dei contenuti gratis che ci sono stati tirati in faccia dai social ci ha avvelenato il cervello. Ha avvelenato il mio canale [YouTube], dalla nascita, e ora sta avvelenando tutto il resto.
[...] Accettiamo l'idea di pagare per i contenuti che vediamo, accettiamo di pagare per il giornale, di pagare per gli articoli che leggiamo, e se invece non vogliamo pagare di tasca nostra, accettiamo l'idea che qualcun altro paghi per il contenuto che ci viene fornito. Quantomeno dobbiamo accettare questo compromesso, dobbiamo accettare che un content creator faccia ogni tanto un contenuto sponsorizzato. Io credo che sia sano e giusto, significa che l'agenda di quel content creator è chiara a tutti, tutti sappiamo chi lo sta finanziando e che la sua attività imprendotirale goda di ottima salute. Impariamo a celebrare questi successi e impariamo ad accettare che viviamo tutti in una società capitalistica e che su questo si fondano una serie di compromessi che faremmo bene ad accettare per il nostro stesso benessere.
A sorpresa Google aggiunge il supporto a JPEG XL in Chromium, dopo che nel 2022 aveva detto che non l'avrebbe fatto.
In a significant pivot, Google has officially integrated native JPEG XL support back into the Chromium browser engine as of today. The new implementation is built upon a new, memory-safe Rust-based decoder called jxl-rs, which satisfies long-standing security requirements that previously hindered its adoption.
Questo grazie appunto alla nuova implementazione di riferimento ufficiale di JPEG XL in Rust, che riduce i rischi di aggiungere decine di migliaia di codice nuovo (i bug di memoria sono molto spesso nei decoder di immagini).
JPEG XL è un formato notevole che integra le migliori caratteristiche dei formati moderni, col beneficio aggiuntivo di permettere la conversione lossless da JPEG esistenti.
Complice la posizione geografica in una pianura senza vento, Milano supera ampiamente la concentrazione di inquinanti atmosferici stabiliti dalle norme europee e dall’OMS. C’è un lento miglioramento sul lungo termine, ma ancora lontano da livelli non a rischio. E poi il 2025 è andato peggio del 2024, che era andato peggio del 2023 (a luglio 2025 si contavano 111 giorni su 181 di superamento delle soglie OMS per il PM2.5). Metà di questi inquinanti vengono dal traffico automobilistico. È un problema di sanità pubblica, e mettere più persone nelle condizioni di spostarsi in bicicletta sarebbe la contromisura più rapida e più economica per intaccarlo (potenziare i mezzi pubblici è più importante, ma molto più costoso). Dunque la paura di un ciclista sulle strade è un guaio anche per tutti gli altri: è un guaio per la città.
[...]
Eppure, Milano è anche una città piena di automobili. Ci sono più di 50 auto ogni cento abitanti, laddove Londra, Parigi e Amsterdam ne hanno tra 20 e 30. E occupano tanto spazio che non sarebbe destinato alle auto. Capita spesso di trovarsi a camminare su un marciapiede dietro a una macchina che cerca parcheggio (sul marciapiede) o fa manovra per uscire. Esiste una deroga ufficiosa a parcheggiare anche dove non si può – aree verdi, marciapiedi e carreggiate – e anche una sorta di orgoglio nel farlo, nonostante a Milano ci siano molti più parcheggi regolamentari che in altre città europee: 22 posti auto su strada ogni 100 abitanti, contro i 7 di Barcellona e i 6 di Parigi.
ping6.it permette di confrontare la latenza IPv4 e IPv6 con i "protocolli" ping, traceroute, mtr, risoluzione DNS, HTTP.
Being able to build for reliability, performance, scale, and security will be a highly-prized skill. When [with AI] anyone can generate software that sort of works until it doesn’t, there will be more demand for engineers who produce quality work that always works as expected.
You cannot prompt an AI to create secure, performant code: you need to know what you want, how to validate the nonfunctional requirements, architect the code, and prompt the AI accordingly. You might also need to throw away the AI and get down to writing code or configuration by hand in order to get the details right. Basically, it pays to know when to use your own expertise.
[...]
The good news is that software engineering fundamentals should become more important, the more a team relies on AI to generate code. More code leads to more problems which need to be caught earlier, and dealt with systematically. This is what good software engineering is about, and always has been.
sslip.io is a DNS (Domain Name System) service that, when queried with a hostname with an embedded IP address, returns that IP address.