S3 server access logs at scale. Yelp spiega come usa e gestisce grandi quantità di log di accesso a S3, su S3.
S3 server access logs at scale. Yelp spiega come usa e gestisce grandi quantità di log di accesso a S3, su S3.
Nuova vita per JPEG XL, che forse arriverà in Chrome e Firefox con la nuova implementazione in Rust.
- Lossless re-compression of JPEG images. This means you can re-compress your current JPEG library without losing information and benefit from a ~30% reduction in file size for free. This is a killer feature that no other format has.
- Support for wide gamut and HDR.
- Support for image sizes of up to 1,073,741,823x1,073,741,824. You won’t run out of image space anytime soon. AVIF is ridiculous in this aspect, capping at 8,193x4,320. WebP goes up to 16K, while the original 1992 JPEG supports 64K.
- Maximum of 32 bits per channel. No other format (except for the defunct JPEG 2000) offers this.
- Maximum of 4,099 channels. Most other formats support 4 or 5, with the exception of JPEG 2000, which supports 16,384.
- JXL is super resilient to generation loss.
- JXL supports progressive decoding, which is essential for web delivery, IMO. WebP or HEIC have no such feature. Progressive decoding in AVIF was added a few years back.
- Support for animation.
- Support for alpha transparency.
- Depth map support.
Il codice che decide l'esito della ruota della fortuna degli sconti Black Friday su efarma.com/spin:
const prizes = {
BF5: { label: "5% di sconto", code: "BF5", desc: "Senza minimo d'ordine" },
BF15: { label: "15% di sconto", code: "BF15", desc: "Ordine minimo 69,90€" },
BF25: { label: "25% di sconto", code: "BF25", desc: "Ordine minimo 129,90€" }
};
// ordine reale degli 8 spicchi partendo dall'alto (senso orario)
// 1: -15% 2: -25% 3: -5% 4: -15%
// 5: -25% 6: -5% 7: -15% 8: -5%
const segmentsPrizeKeys = [
"BF15", // 1
"BF25", // 2
"BF5", // 3
"BF15", // 4
"BF25", // 5
"BF5", // 6
"BF15", // 7
"BF5" // 8
];
// scegli uno spicchio 0–7
const segmentIndex = Math.floor(Math.random() * 8);
const prizeKey = segmentsPrizeKeys[segmentIndex];
const prize = prizes[prizeKey];
Quante istruzioni un LLM di frontiera è in grado di rispettare in un prompt? Non più di 150-200:
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.
Interessante il postmortem di Incident.io per l'outage AWS di ottobre in us-east-1:
We’re hosted in multiple regions of Google Cloud and so the majority of our product was unaffected by the outage. However, we do depend on third parties for some aspects of our platform, who themselves are hosted in AWS, or have their own dependencies that are.
Il paradosso è che Incident.io serve proprio nelle occasioni in cui ci sono outage, e molte feature avevano problemi, incluso il sistema di autenticazione, il bot di trascrizione dei meeting, le notifiche via SMS e le chiamate, ma soprattutto l'impossibilità di fare deployment di codice perché Docker Hub era offline.
We use Google Container Registry to host our built docker images, which wasn’t impacted by the AWS outage at all, so we were surprised to see failures. We quickly realised however, that the issue actually lay with our base image (
golang-1.24.9-alpine). Crucially, this resolved to a Docker registry image, and Docker runs their registry on AWS.
I tentativi di aggirare il problema non sono andati a buon fine e non c'erano nell'immediato alternative che non avessero una dipendenza su AWS.
Differentemente il servizio Ably (API realtime) aveva un sistema multi-region che è funzionato correttamente:
During this week’s AWS us-east-1 outage, Ably maintained full service continuity with no customer impact. This was our multi-region architecture working exactly as designed; error rates were negligibly low and unchanged throughout.
E la Svizzera invece ha ora una posizione ufficiale sull'evitare i servizi cloud USA all'interno delle autorità statali:
The Conference of Swiss Data Protection Officers, Privatim, has severely restricted the usability of international cloud services – particularly hyperscalers like AWS, Google, or Microsoft – for federal authorities in a resolution. At its core, the resolution from Monday amounts to a de facto ban on the use of these services as comprehensive Software-as-a-Service (SaaS) solutions whenever particularly sensitive or legally confidential personal data is involved. For the most part, authorities will likely only be able to use applications like the widespread Microsoft 365 as online storage.
Questione da tenere d'occhio: una sentenza in Canada chiede a OVHcloud di fornire dati sotto il controllo della parent company globale di OVH, con sede in Francia. Fornire quei dati sarebbe illegale per la legge francese, ma se OVH non si rende conforme alla sentenza starebbe violando la legge canadese. Dove è presente con un'entità locale indipendente per i servizi cloud.
A volte Codex CLI è veramente stupido:
I need to inspect each file that imports '$lib/app/responses/domains-groups', but I failed due to quoting the route path incorrectly. I haven’t modified anything yet.
E si ferma.
Ennesima prova che la città 30 funziona. Dati di Bologna nel primo anno (2024):
Assurdi i numeri del blocco spoofing mobile:
Un altro operatore ha fornito anche il totale delle chiamate. Dal 19 al 23 novembre, su un totale di 17 milioni, 8,3 milioni sono state chiamate spoofing annullate dal filtro. 1,7 milioni al giorno. Circa il 50%. [...]
Per una telco ci sono solo i dati del 21 novembre, e sono impressionanti. Su circa 3,15 milioni di chiamate mobili, 2,9 milioni sono state bloccate, ovverosia circa il 90% delle chiamate ricevute.
Un altro gestore, tra il 20 e il 23, ha bloccato circa 650.000 chiamate su un totale di circa 940.000 chiamate da mobile. Anche qui siamo su una percentuale molto alta, circa il 70%.
(DDay)
Nel 2026 uscirà Video.js 10, nuova versione dell'ultrapopolare player video JavaScript. Sarà essenzialmente riprogettato fondendo concetti di Plyr, Media Chrome e Vidstack per renderlo compatibile con lo sviluppo moderno a componenti/React.
Hit a new daily peak, serving over 20M HTTP requests per second straight from our CDN77 network.
20M. Every second.
Wild. And our Logs team (data & storage eng): "Ok, nice benchmark, give us more". Respect!
We store logs with 1+2 redundancy.
That is 60 000 000 lines per second. The fun's only beginning.
It’s human nature to provoke especially if it has no consequences. On X being a provocateur comes with financial reward. So of course civility breaks down and discourse becomes increasingly toxic because you make money with little to no social consequences.
You can either have constructive, civil discourse with context of identity, be rewarded for putting your neck on the line or preserve your privacy & anonymity, continue to be a provocateur but with nothing to gain from it.
You just have to stop incentivizing anonymous posting with $$$.
I'm sure some of these are state/political projects, but I suspect most are just smart people in low and middle income countries doing it for the money, because Twitter invented a direct and quick way to make cold hard cash from making Americans angry and upset online.
Mike Bird (The Economist)
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.
Molti dei prodotti delle “intelligenze artificiali” di cui parliamo quotidianamente mi sembra siano finora prodotti già esistenti, che queste tecnologie ci stanno aiutando a ottenere con minor impegno e a volte con maggiore qualità di quelli che avremmo ottenuto senza quelle tecnologie (tutte le immagini che vediamo prodotte da “intelligenze artificiali” possono essere realizzate con Photoshop; dei testi celebriamo proprio quanto siano simili a quelli umani, non diversi, impensati o eccezionali; eccetera). Non vedo – in questa gran parte di esempi protagonisti delle esperienze e conversazioni quotidiane della maggioranza delle persone – produzioni di cose o funzioni nuove e prima inesistenti, né effetti nuovi di quelle produzioni che trasformino le vite degli umani (salvo che nel tempo che liberano, o nel lavoro che sottraggono). In gran parte parliamo di “contenuti”: testi, immagini, suggerimenti, insegnamenti. Insomma, al momento niente sembra paragonabile alle trasformazioni indotte nelle nostre vite, nelle nostre società, persino nelle nostre teste, dalle innovazioni degli scorsi decenni. Al momento.
Un giovane molto esperto e molto coinvolto nelle cose delle “intelligenze artificiali” mi ha messo le cose in una prospettiva interessante, pochi giorni fa: secondo lui esistono “intelligenze artificiali cattive” in quanto fanno cose al posto nostro atrofizzando in prospettiva la nostra capacità di farle e rincoglionendoci ancora di più (che le trasformazioni digitali degli scorsi decenni ci abbiano in parte rincoglionito è ormai dato per condiviso); ed esistono “intelligenze artificiali buone” che invece possiamo usare per migliorarle, le nostre capacità, e aumentare le nostre conoscenze e competenze. Mi è sembrata fin qui una lettura convincente: se ci pensate, è successo anche con la storia dell’umanità pre-digitale che i progressi tecnici e i nuovi strumenti ci sollevassero dal saper fare delle cose grazie al fatto che quelle cose le sapeva fare qualcun altro (parliamo di competenze e capacità, qui, non di rapporti di forza). E che nel frattempo i progressi civili e tecnici venissero sfruttati anche per aumentare altre conoscenze di tutti: attraverso la scuola, l’informazione giornalistica, la divulgazione, i libri, eccetera. La differenza adesso sarebbe che non avverrebbe più la seconda cosa, perché la conoscenza verrà tutta indirizzata verso i software (poi forse, dicono in molti, non ci sarà più conoscenza da indirizzare): la distribuzione di sapere tra gli umani si azzererà.
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.
Dal postmortem di Cloudflare:
Il motivo delle fluttuazioni iniziali di errori 5xx è dovuto al deployment di un file di configurazione errato del "bot score" della Bot Protection:
As a result, every five minutes there was a chance of either a good or a bad set of configuration files being generated and rapidly propagated across the network.
E infine veniva sempre deployato il file errato, globalmente e istantaneamente (la stessa causa di altri precedenti outage globali di Cloudflare):
The model takes as input a “feature” configuration file. A feature, in this context, is an individual trait used by the machine learning model to make a prediction about whether the request was automated or not. The feature configuration file is a collection of individual features.
This feature file is refreshed every few minutes and published to our entire network and allows us to react to variations in traffic flows across the Internet. It allows us to react to new types of bots and new bot attacks. So it’s critical that it is rolled out frequently and rapidly as bad actors change their tactics quickly.
Il motivo per cui alcuni siti non erano affetti:
Customers deployed on the new FL2 proxy engine, observed HTTP 5xx errors. Customers on our old proxy engine, known as FL, did not see errors, but bot scores were not generated correctly, resulting in all traffic receiving a bot score of zero. Customers that had rules deployed to block bots would have seen large numbers of false positives.
Il file di configurazione conteneva dei dati errati perché per via di un cambio di configurazione la query ClickHouse estraeva più dati del dovuto. Il proxy edge lanciava un'eccezione perché non si aspettava quella quantità di dati:
Cosa c'era quindi che non andava:
EDIT: su Hacker News osservazioni molto simili:
They failed on so many levels here.
How can you write the proxy without handling the config containing more than the maximum features limit you set yourself?
How can the database export query not have a limit set if there is a hard limit on number of features?
Why do they do non-critical changes in production before testing in a stage environment?
Why did they think this was a cyberattack and only after two hours realize it was the config file?
Why are they that afraid of a botnet? Does not leave me confident that they will handle the next Aisuru attack.