Categoria: programmazione

Aggiornamento Docker n8n dopo avvisi di sicurezza

Nei giorni scorsi l’Agenzia per la Cybersicurezza Nazionale (ACN) ha pubblicato una segnalazione relativa ad alcune vulnerabilità individuate in n8n, la piattaforma open source per l’automazione dei workflow che utilizzo in un’installazione locale tramite Docker. La segnalazione è piuttosto seria: riguarda diverse vulnerabilità, alcune classificate con severità High, che possono consentire, in determinate condizioni, esecuzione …

Continua a leggere

Catch-all Apache: un caso di “search domain” nascosto

Qualche giorno fa mi sono imbattuto in un comportamento a dir poco bizzarro sulla mia macchina Ubuntu: digitando nel browser un domain name completamente a caso, tipo http://mememem.it/ o http://nxdomain1.it/ (il nome è voluto: NXDOMAIN è il codice DNS che indica “Non-eXistent Domain“, cioè un dominio che non esiste), mi ritrovavo puntualmente sulla home page …

Continua a leggere

Capire il networking di Docker: nozioni indispensabili su host, container, bridge e localhost

Continuo qui una serie di articoli che riguardano il funzionamento di Docker. In questo post ho condiviso la comprensione del perché Docker non possa essere pensato come un virtualizzatore hardware: non viene virtualizzata una macchina completa e i processi dei container condividono il kernel del sistema operativo host; i filesystem locali vengono montati e abbiamo …

Continua a leggere

Da Laravel 5.7 / PHP 7.4 a Laravel 8 / PHP 8.1: una migrazione senza traumi

Qualche giorno fa ho deciso di impiegare un po’ di tempo per aggiornare un’applicazione Laravel rimasta ferma per anni. L’applicazione girava in produzione con: Il provider di hosting continuava a ricordarmi che PHP 7.4 era ormai fuori supporto e suggeriva il passaggio a PHP 8, suggerimento che era abbastanza inistente da dentro l’interfaccia di amministrazione …

Continua a leggere

DBeaver e MySQL: perché compare l’errore Public Key Retrieval is not allowed?

Mi sono imbattuto in un comportamento piuttosto curioso utilizzando DBeaver con un server MySQL locale. All’avvio di DBeaver, il tentativo di connessione falliva con il messaggio: La cosa sorprendente era che bastava aprire un terminale ed eseguire: Una volta autenticato con il client a riga di comando, tornando in DBeaver la connessione funzionava perfettamente. Il …

Continua a leggere

Perché Docker non è una macchina virtuale

docker - Dockerfile

Per anni avevo sentito ripetere che Docker è una virtualizzazione leggera. È una frase comoda per iniziare, ma in realtà è fuorviante. In particolare non dobbiamo confondere docker con la virtualizzazione hardware. L’ho capito nel modo migliore: cercando di capire perché MySQL si comportasse in modo apparentemente assurdo. Il problema Sul mio PC era in …

Continua a leggere

Un esperimento fatto in casa con un LLM

LLM per analizzare le mie chat con OpenAI

Ho condotto un esperimento di scrittura di software per analizzare i risultati di una esportazione delle mie conversazioni con ChatGPT. Ma ho deciso di aiutarmi nell’analisi con un Large Language Model che sicuramente sa fare molto bene questo lavoro e in più con un LLM in locale, per vedere come funziona.

Having fun with ChatGPT

Ho installato la versione 24.3.1.347 di Oracle SQL Developer però ho una sorpresa: sembra non sia possibile raggruppare le connessioni in cartelle. Risposta: Eh sì — è una sorpresa che ha colpito parecchi utenti anche esperti di SQL Developer!Vediamo bene la situazione 1. In SQL Developer 24.3.1 (e in generale 23.x–24.x) Purtroppo l’interfaccia “Connections” non …

Continua a leggere

Sicnronizzare due directory su due computer con rsync

Ubuntu rsync

Utilizzo intercambiabilmente due PC e preferisco mantenere in locale (non su cloud) i contentuti di due directory, per maggior sicurezza. Nell’ambito di una qualsiasi rete locale in cui collego i due pc voglio che una volta al giorna queste irectory vengano sincronizzate. Solitamente utilizzo Samba per collegare la directory di PC1 montandola in PC2. L’uso …

Continua a leggere

Porting di una app Oracle a MySQL

Durante un porting ho incontrato queste differenze che ho dovuto gestire. Function Non può contenere istruzioni DDL (es. CREATE TABLE). Non può nemmeno chiamare una procedura che contene istruzioni DDL. Se si vogliono lanciare istruzioni DDL, utilizzare le procedure, non le function. Procedure Può contenere DDL però mi da’ un fastidioso errore alla dichiarazione di …

Continua a leggere