+39 3662317539/+34 620899163
info@simonecosci.com

Blog

Sviluppo Siti Web a Tenerife

ufw su un VPS: chiudere tutto tranne il necessario senza tagliarsi fuori

Come configurare ufw su un server senza perdere l’accesso SSH, perché l’ordine delle regole conta e perché una regola sulla porta 3306 non ferma un container Docker.

Le email del sito finiscono in spam: SPF, DKIM e DMARC spiegati a chi ha un sito

Il modulo contatti invia, ma il messaggio non arriva o finisce in spam. Tre record DNS decidono se la tua email viene creduta: cosa fanno e cosa chiedere a chi gestisce il dominio.

PHP 8.4: gli oggetti lazy, e quando servono davvero

newLazyGhost e newLazyProxy costruiscono un oggetto solo quando qualcuno lo guarda. Come funzionano, cosa fa scattare l’inizializzazione e perché il più delle volte un oggetto normale resta la scelta giusta.

unattended-upgrades su Debian: gli aggiornamenti di sicurezza che si installano da soli

Cosa fa davvero unattended-upgrades appena installato, cosa non tocca di proposito e come verificare che stia girando sul serio.

Intl.NumberFormat e Intl.DateTimeFormat: formattare senza librerie

Prezzi in euro, date in italiano e liste scritte come le scrive una persona: il runtime lo fa già, senza dipendenze. Come si usa Intl e dove ci si taglia.

Docker: volumi e bind mount, dove finiscono davvero i dati

Volumi, bind mount e tmpfs non sono tre modi di scrivere la stessa cosa: cambiano chi possiede i file, dove finiscono e cosa resta dopo un docker compose down.

Perché il tuo sito è lento: i tre numeri da guardare prima di spendere

LCP, INP e CLS: cosa misurano davvero, quali sono le soglie e perché il punteggio di PageSpeed non è la stessa cosa di quello che vedono i tuoi visitatori.

Timer systemd al posto di cron: cosa cambia su un server

Recupero delle esecuzioni perse, log in journalctl e un timeout sul job: cosa dà un timer systemd che una riga di crontab non dà, e quando cron va benissimo così.

`Promise.all` non basta: `allSettled`, `any` e `AbortSignal.timeout`

Una chiamata che fallisce butta via il lavoro delle altre cinque. Quando usare Promise.allSettled, quando Promise.any e come mettere un timeout vero con AbortSignal.

Docker multi-stage: immagini PHP senza compilatori dentro

Composer, git e i pacchetti di build finiscono nell’immagine che mandi in produzione anche quando li cancelli. Il multi-stage build li lascia fuori davvero.