Cos'è CORS e Come Risolvere gli Errori CORS

Il frontend gira su http://localhost:5173, l’API su http://localhost:4000, e la fetch che funzionava perfettamente in Postman fallisce nel browser con un muro di testo rosso: Access to fetch at 'http://localhost:4000/api/users' from origin 'http://localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Il server potrebbe aver gestito la richiesta e restituito un 200. Il browser ha semplicemente rifiutato di consegnare la risposta al tuo JavaScript. ...

26 settembre 2026 · 8 minuti · 1613 parole · SpaghettiCoder

Cos'è lo Spaghetti Code e Come Rifattorizzarlo

Apri una funzione per sistemare un bug di una riga e quaranta minuti dopo stai ancora seguendo quale ramo imposta quale variabile. Tre compiti che non c’entrano nulla tra loro sono saldati in un unico blocco, e nessuno dei tre ha un nome. Tiri un filo e non riesci a capire quali altri si muovono. Questo è lo spaghetti code, e il nome non c’entra niente con l’indentazione o lo stile dei nomi. Descrive il flusso di controllo: l’esecuzione salta tra le condizioni come un filo di pasta che attraversa tutti gli altri nella ciotola, e seguire un singolo percorso fino alla fine significa tenere in testa quattro livelli di if contemporaneamente. ...

25 settembre 2026 · 10 minuti · 2038 parole · SpaghettiCoder

Tunnel SSH: Port Forwarding Locale, Remoto e Dinamico

Come raggiungere un database che ascolta solo su localhost? Un’istanza Postgres su un server remoto è collegata a 127.0.0.1 di proposito. Nessuno sulla rete può raggiungerla, solo i processi in esecuzione su quella stessa macchina. Il tuo laptop non è quella macchina, quindi psql -h remote-server -p 5432 fallisce prima ancora di arrivare all’autenticazione. Aprire la porta al mondo vanifica il motivo per cui era stata collegata al loopback. Quello che ti serve è prendere in prestito, per qualche minuto e dal tuo terminale, la vista che la macchina remota ha di 127.0.0.1. Quando fai login, SSH ha già una connessione cifrata e autenticata aperta tra le due macchine. Il port forwarding riutilizza quella connessione per trasportare traffico diverso dalla tua shell. ...

24 settembre 2026 · 7 minuti · 1454 parole · SpaghettiCoder

Cache delle Dipendenze in GitHub Actions

Un workflow che esegue npm ci a ogni push scarica dal registry le stesse centinaia di pacchetti ogni volta, anche quando il lockfile non cambia da una settimana. Su un progetto con un albero di dipendenze reale sono uno o due minuti persi prima ancora che parta il primo test, e li paghi di nuovo a ogni push e a ogni pull request. actions/cache conserva quei download tra un’esecuzione e l’altra e te li restituisce quando non è cambiato nulla di rilevante. ...

23 settembre 2026 · 6 minuti · 1266 parole · SpaghettiCoder

Come Configurare il Debug Remoto in Visual Studio

Debuggare un bug che si presenta solo su una macchina senza Visual Studio Un bug si riproduce sul server di test e non sul tuo laptop. Il server di test non ha Visual Studio, e installarci sopra un IDE completo solo per mettere un breakpoint non è un’opzione. Il debug remoto serve esattamente per questo caso. Un piccolo programma standalone gira sulla macchina di destinazione, il tuo Visual Studio locale si collega ad esso via rete, e ottieni breakpoint e ispezione delle variabili su un processo che non gira da nessuna parte vicino alla tua scrivania. ...

23 settembre 2026 · 7 minuti · 1404 parole · SpaghettiCoder

Come Esporre un Server Locale con Cloudflare Tunnel

Perché nessuno fuori dalla tua rete raggiunge localhost Un provider di webhook ha bisogno di un URL su cui fare POST, e il tuo server è fermo su localhost:3000. Oppure un collega vuole vedere il branch che stai eseguendo, o il tuo telefono deve raggiungere il server di sviluppo per controllare un layout. Il server è su. Ma niente fuori dalla tua rete riesce a raggiungerlo. Il port forwarding sul router funzionerebbe, ma espone il tuo IP di casa e richiede accesso da amministratore che spesso non hai. Cloudflare Tunnel prende la strada opposta. cloudflared, un piccolo demone che fai girare accanto al tuo server, apre una connessione in uscita verso l’edge di Cloudflare, e Cloudflare rimanda il traffico indietro attraverso quella connessione. Non apri nessuna porta in entrata e non ti serve un IP pubblico. ...

23 settembre 2026 · 8 minuti · 1493 parole · SpaghettiCoder

Come Funzionano gli Agenti CLI di Coding

Cosa distingue un agente CLI di coding da un altro Chiedi a un agente CLI di coding di sistemare un test che fallisce e non ti risponderà con un suggerimento. Legge l’output del test, apre il file, modifica una riga, rilancia il test e ti riporta il risultato una volta che passa. Quel ciclo è il prodotto, non la finestra di chat. Il modello dentro il ciclo si prende la maggior parte dell’attenzione, ed è anche la parte che cambia più in fretta: i vendor ne inseriscono di nuovi ogni pochi mesi, e diversi agenti ti lasciano scegliere quale usare. Quello che resta fermo è l’harness costruito attorno al modello — quali tool può raggiungere, come gestisce il contesto, cosa può eseguire senza chiedere, e dove girano quei comandi. Due agenti con lo stesso modello possono comportarsi in modo molto diverso per questo motivo. L’harness è ciò che stai davvero scegliendo. ...

23 settembre 2026 · 8 minuti · 1643 parole · SpaghettiCoder

Cos'è un Modello System One e Quando Usarlo

Perché tante chiamate LLM sono in realtà classificazioni Buona parte del traffico LLM in produzione restituisce una sola parola. Va inoltrato questo ticket oppure no. Spam o non spam. Quale dei sei handler gestisce questo evento. Per ottenere quella parola mandi l’intero prompt a un modello general-purpose, aspetti che decodifichi una risposta token dopo token, ed estrai un oggetto JSON dal risultato. Paghi il prezzo e la latenza della generazione di testo, e quello che torna indietro è una decisione che starebbe in un enum. ...

23 settembre 2026 · 7 minuti · 1325 parole · SpaghettiCoder

Git Bisect: Trovare il Commit che ha Introdotto un Bug

La test suite è verde da tre settimane. Oggi npm test fallisce su un’asserzione che non ha niente a che fare con quello che hai appena modificato, e git log v1.4.0..HEAD mostra 340 commit di quattro persone dall’ultima release, di cui qualcuno era sicuro che funzionasse. Leggere ogni diff ti costa una giornata. Fare checkout di commit a caso è più veloce, ma resta comunque non un piano. git bisect trasforma tutto questo in una ricerca binaria. Gli dai un commit che sai essere buono e uno che sai essere rotto; lui fa il checkout del commit a metà tra i due e aspetta che tu lo testi e riporti il risultato. Ogni risposta dimezza l’intervallo. 340 commit si risolvono in al massimo 9 test, perché 2^9 = 512. ...

22 settembre 2026 · 6 minuti · 1157 parole · SpaghettiCoder

Cos'è il DNS e Come Funziona la Risoluzione dei Nomi

Cosa fa davvero il DNS a ogni richiesta Ogni richiesta verso example.com inizia con una ricerca che non ha niente a che fare con la tua applicazione: qualcosa deve trasformare quel nome in un indirizzo IP prima che un solo pacchetto TCP lasci la macchina. Quella traduzione è il DNS, il Domain Name System, e gira a ogni richiesta, che il client sia un browser, curl, o un servizio backend che ne contatta un altro tramite hostname. ...

21 settembre 2026 · 8 minuti · 1522 parole · SpaghettiCoder