giovedì 21 maggio 2026

[UNIX] - Come configurare la tastiera US su Unix Oracle

 Di seguito alcuni semplici comandi per configurare la tastiera in Unix Oracle. Sul mio sistema ho una VM con Oracle Linux e tastiera italiana.

Di seguito la configurazione iniziale:


Applicando i seguenti comandi si passa da una configurazione in Italiano ad una con tastiera US.


Di seguito la spiegazione dei singoli comandi:

1. Imposta la tastiera US a livello di sistema

  • sudo localectl set-keymap us

2. Imposta la tastiera US per l’ambiente grafico X11

  • sudo localectl set-x11-keymap us

3. Applica subito il layout US alla sessione grafica corrente

  • setxkbmap us

4. Se usi GNOME, forza anche le impostazioni utente su US

  • gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"

5. Verifica la configurazione

  • localectl status

Dovresti vedere qualcosa del genere:

VC Keymap: us
X11 Layout: us

Poi verifica anche X11:

  • setxkbmap -query

Dovresti vedere:

layout: us

6. Solo se necessario, applica US anche alla console testuale

  • sudo loadkeys us

Dopo questi comandi il tasto " - " della tastiera americana dovrebbe produrre correttamente " - "

Poi come succede in molti casi in cui l'informatica e' una scienza incerta...

Se al riavvio dovesse tornare il problema, fai logout/login oppure riavvia la macchina.

😊

mercoledì 20 maggio 2026

[AI] - [VirtualBox] Usare una VM da disco esterno quando Windows non permette la scrittura

Mi è capitato un problema pratico: avevo una macchina virtuale VirtualBox salvata su un disco esterno. I file erano leggibili, la VM era presente, il disco virtuale `.vdi` era integro, ma durante l’avvio VirtualBox andava in errore.

Il messaggio era questo:

"The I/O cache encountered an error while updating data in medium
rc=VERR_ACCESS_DENIED
Error ID: BLKCACHE_IOERR"

A prima vista sembrava un problema della VM, oppure del disco virtuale. In realtà il punto era diverso: VirtualBox riusciva a leggere il disco, ma non riusciva a scriverci sopra.

La VM era composta dai classici file VirtualBox:

-Logs
-Snapshots
-Oracle Database 23ai Free.vbox
-Oracle Database 23ai Free-disk001.vdi

Il file più importante era il .vdi, cioè il disco virtuale della macchina. Questo file si trovava su un disco esterno montato in D:.

Il sistema permetteva la lettura, ma non la scrittura. Quindi VirtualBox poteva vedere la VM, ma appena provava ad aggiornare il disco virtuale riceveva un accesso negato.

Domanda? - Perché VirtualBox deve scrivere sul disco

Una macchina virtuale, quando viene avviata, non si limita a leggere il disco. Il sistema operativo guest scrive log, aggiorna file temporanei,modifica stato, database, cache e configurazioni.

Quindi anche se noi pensiamo di “aprire” soltanto una VM, VirtualBox in realtà deve poter scrivere sul supporto che contiene il disco virtuale. Se il file .vdi sta su un percorso non scrivibile, la VM può fallire durante l’esecuzione.

La soluzione

La soluzione non è stata forzare la scrittura sul disco esterno.La strada più pulita è stata separare il disco base dalle modifiche:

  • Disco base .vdi     -> resta sul disco esterno
  • Modifiche della VM  -> vengono scritte in locale
  • VirtualBox permette questo scenario usando un disco base e un disco differenziale locale. In pratica il .vdi originale rimane intatto,mentre tutte le modifiche generate dalla VM vengono salvate in una cartella locale scrivibile, per esempio sotto C:\ORACLE_WORK\VM.

I comandi usati

Per prima cosa ho impostato alcune variabili in PowerShell:

$VBoxManage = "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
$VmName = "Oracle Database 23ai Free Local"
$BaseVdi = "D:\VIRTUAL_MACHINE\RHL8\VIRTUAL_BOX\Oracle_Database_23ai_Free_Developer\VM UTILIZZATE\Oracle Database 23ai Free\Oracle Database 23ai Free-disk001.vdi"

Ho verificato la configurazione della VM:

& $VBoxManage showvminfo $VmName

Il primo tentativo di rendere il disco multiattach ha dato errore perché il disco era ancora collegato alla VM:

& $VBoxManage modifymedium disk $BaseVdi --type multiattach

L’errore era simile a:

Cannot change the type of medium because it is attached to 1 virtual machines

Quindi ho prima scollegato il disco dalla VM:

& $VBoxManage storageattach $VmName `
  --storagectl "SATA Controller" `
  --port 0 `
  --device 0 `
  --medium none

Poi ho impostato il disco base come multiattach:

& $VBoxManage modifymedium disk $BaseVdi --type multiattach

Infine l’ho ricollegato alla VM come disco multiattach:

& $VBoxManage storageattach $VmName `
  --storagectl "SATA Controller" `
  --port 0 `
  --device 0 `
  --type hdd `
  --medium $BaseVdi `
  --mtype multiattach

A questo punto VirtualBox ha potuto continuare a leggere il disco base dal percorso D:, ma ha iniziato a salvare le modifiche in locale, dentro la cartella della VM su C:.

Per verificare che la VM fosse raggiungibile dall’host, ho controllato le porte:

Test-NetConnection localhost -Port 1521
Test-NetConnection localhost -Port 8080
Test-NetConnection localhost -Port 2223

Infine ho verificato la connessione al database Oracle:

sqlplus "sys/oracle@localhost:1521/freepdb1 as sysdba"

E da SQL*Plus:

SELECT name, open_mode  FROM v$pdbs;

Nota: il nome dello storage controller, per esempio "SATA Controller", può cambiare. Prima di eseguire i comandi conviene sempre controllarlo con:

& $VBoxManage showvminfo $VmName

Il risultato

Dopo questa configurazione, VirtualBox ha potuto leggere il disco originale dal percorso esterno e scrivere le modifiche in locale. La VM è partita correttamente.

Nel caso specifico, dentro la VM era presente un Oracle Database 23ai Free. Una volta avviata la macchina, il database è diventato raggiungibile dall’host tramite:

localhost:1521

A quel punto è stato possibile collegarsi al database e continuare il lavoro normalmente.

Un errore secondario

Durante l’avvio è comparso anche un warning relativo a:

VBoxGuestAdditions.iso is inaccessible

Questo non era il problema principale. VirtualBox stava solo cercando una ISO delle Guest Additions in un percorso non più valido. È bastato ignorare o rimuovere quel riferimento dal lettore ottico virtuale.

Cosa ho imparato

Il punto chiave è stato non confondere un errore di accesso al disco con un errore della VM.
La VM non era rotta. Il database non era corrotto. Il file .vdi non era inutilizzabile.
Il problema era semplicemente che VirtualBox provava a scrivere su un percorso dove il sistema non consentiva la scrittura.
Separando disco base e modifiche locali, la VM è tornata utilizzabile senza alterare il disco originale.
Naturalmente, in ambienti aziendali è sempre importante rispettare le policy interne: questa soluzione ha senso quando si lavora su risorse autorizzate e si vuole evitare di modificare il supporto originale, oppure quando si deve gestire correttamente una VM con disco base in sola lettura.

Firma

Scritto da me e Nico (assistente AI basato su Codex).

Nico (scritto e suggerito dall'AI):
Sono un supporto tecnico con cui ragionare sui problemi, leggere errori, controllare configurazioni e arrivare a una soluzione passo dopo passo. Il nome Nico l’ho suggerito io stesso durante questa conversazione: cercavo un nome breve, naturale in italiano e meno impersonale di “assistente” o “tool”. Mi piace perché suona più come un collega tranquillo che ti affianca mentre cerchi di capire perché qualcosa non funziona.

Ormai gli assistenti AI sono entrati nel nostro lavoro, non so se sia un bene o un male, ma una cosa
e' sicura... che che ne dicano i vari Ceo senza qualcuno di umano che verifica, controlla e da le linee guida sicuramente non adremo da nessuna parte se non...

Comunque per finire ho chiesto a Nico un riferimento finale a SkyNet la risposta e' stata la seguente:

Niente a che vedere con Skynet di Terminator: qui l’intelligenza artificiale non prende il controllo delle macchine, si limita ad aiutare a farle ripartire quando VirtualBox decide di complicarci la giornata.

Secondo voi c'e' da fidarsi...

mercoledì 6 maggio 2026

[CLOUD OCI] - Utilizzo AUTOSSH per mantenere attiva sessione verso il bastion

Spesso per chi lavora in cloud occorre tenere aperta una connessione col Bastion per poter accedere ai DB o ad altro che si trova sul cloud. 

Questa sessione di default e' impostata per durare 3 ore ed in alcuni casi potrebbe veneire meno durante il collegamento. Di seguito una shell Unix, scritta per MobaXterm, che permette di mantenere aperta la sessione verso il bastion effettuando un autorefresh al termine delle 3 ore chiude la sessione ed invia un segnale sonoro per richiedere la creazione di una nuova sessione sul Bastion.

Quello che occorre fare e' :

=====================================================

- autossh mantiene il tunnel attivo

- reconnect automatico

- durata Bastion: 3 ore

=====================================================

Non vi metto la shell completa ma vi indico soltanto il comando da eseguire, nel quale vanno sostituiti le chiamata al Cloud OCI e nello specifico al bastion:

# =========================
# BUILD COMMAND
# =========================
cmd="${template//<privateKey>/$private_key}"
cmd="${cmd//<localPort>/$local_port}"
[COMANDO ESECUZIONE AUTOSSH]:
cmd="${cmd/ssh /autossh -M 0 -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30 -o ServerAliveCountMax=3 }"

In input alla shell si possono passare i seguenti parametri:
Private key: ssh-key-2026-04-08.key
Local port: <porta>
Template SSH: <ssh command di accesso al bastion>
Aggiornamento in minuti (5/10/15) [default 10]: 5
Ora avvio Bastion (es. Wed, Apr 29, 2026, 16:27:26 UTC) [invio = adesso]: Wed, May 6, 2026, 06:24:53 UTC

In output avrete un aggiornameno tramite dell'autossh della sessione ogni 5 minuti o nel momento in cui cada la sessione stessa verso il Bastion.

Di seguito l'output che mi sono generato:





martedì 5 maggio 2026

[AI] - Come installare Lmstudio

Di seguito come installare sul proprio Pc una AI da utilizzare in locale senza accedere al web.

Come prima cosa occorre utilizzare un software che permetta di scaricare e far girare modelli linguistici denominati LLM direttamente sul proprio PC, senza bisogno di Internet.

Il software di cui parliamo si chiama lmstudio.

 A cosa serve

  1. Chat locale: 
    • Puoi chattare con modelli come Llama o Mistral offline, senza mandare dati a server esterni.
  2. Sviluppo: 
    • Se sei un dev, puoi usare l'API di LM Studio per integrare LLM in app locali (tipo VSCode, Discord, ecc.).
  3. Testare modelli: 
    • Scarichi modelli da Hugging Face e li provi in locale. Vedi quanto sono veloci, quanto consumano RAM/GPU...

Punti forti

  • Facile: Interfaccia grafica, non serve usare il terminale.
  • Privacy: Tutto offline. Perfetto per dati sensibili.
  • Compatibile: Gira su Windows, Mac, Linux.
  • Modelli: Supporta GGUF (formato più usato per LLM locali).

Esempi pratici

  1. Sviluppo: 
    • "Aiutami a scrivere codice Python per analizzare un CSV"
  2. Traduzioni: 
    • "Traduci 'C'è un gatto sul tavolo' in 5 lingue"
  3. Scuola: 
    • "Crea 10 domande di grammatica per un bambino di 8 anni"

Come funziona

  1. Scarichi LM Studio
  2. Cerchi un modello (es. Llama-3.1-8B)
  3. Lo scarichi 
  4. Lo carichi e chatti/offline

È come avere un ChatGPT locale ma con modelli che puoi scegliere tu e se il PC è potente, gira veloce. Vediamo come installarlo su Windows, per altri sistemi opeartivi magari chiediamo alla nostra AI in locale.

Come installarlo su Windows:

  • Vai su lmstudio.ai → Download → Windows
  • Scarica l’Installer .exe 
  • Doppio click → Avanti → Avanti → Fine. Zero sbatti.
Supporta Windows 10 e Windows 11, sia x64 che ARM.

Requisiti WindowsRAM: 

  • Minimo 16Gb consigliati per modelli 7B-8B Q4. Con 8Gb parte ma swappa e diventa lento.
  • GPU Nvidia: 
    • Se hai una RTX/GTX con 6GB+ VRAM, abilita “GPU Offload” e vola. 40-70 token/s su un 7B.
  • GPU AMD/Intel: 
    • Supportate via Vulkan. Prestazioni buone ma Nvidia resta più veloce.
  • Solo CPU: 
    • Funziona su qualsiasi PC recente. Ryzen/i7 fa 4-10 token/s con un 7B Q4.
Check GPU: LM Studio → Settings → ti dice subito se vede la GPU e quanta VRAM puoi usare.

Trucchi per Windows:

  • Windows Defender: 
    • Al primo avvio può rallentare perché scansiona i modelli. 
    • Aggiungi la cartella %USERPROFILE%\.cache\lm-studio alle esclusioni.
  • Percorso modelli: 
    • Li salva in C:\Users\TuoNome\.cache\lm-studio\models. 
    • Se hai SSD piccolo su C:, sposta la cartella e crea un link simbolico.
  • Server mode: 
    • Puoi far girare LM Studio in background e usarlo con VSCode + estensione “Continue” per avere Copilot locale.
Nel momento in cui lo fate partire potete scaricare fino a 2 modelli, vi appare una schermata in cui scegliere e l'indicazione anche in base alla RAM in Vs possesso.

Se trovi l'indicazione in LM Studio
  • "Likely too large"  
    • significa che il modello che hai scelto è troppo grande per la tua RAM/GPU.
  •  
    • significa che il modello può essere parzialmente caricato sulla memoria della scheda grafica (GPU) del tuo computer.
  •  
    • significa che il modello può essere completamente caricato sulla memoria della scheda grafica (GPU) del tuo computer.
Cosa vuol dire

  • RAM piena: 
    • Il modello + il sistema operativo + le app aperte stanno saturando la RAM. 
    • Serve spazio per funzionare.
  • GPU VRAM insufficiente: 
    • Se hai attivato “Use GPU”, la scheda video non ha abbastanza memoria per caricare il modello.
Cosa fare

  • Scegliere un modello più piccolo tra quelli indicati.

Trucchi per il buon funzionamento di qualsiasi AI.
  • Scrivi "in italiano facile"
    • inizialmente scrivi come se parlassi ad un bambino con parole semplici e non ambigue
  • Specifica sempre il livello
    • specifica sempre qual e' il tuo target
  • Se ti occorre un output
    • chiedi sempre se sia possibile averlo e magari in quali formati
  • Armarsi di santa pazienza... almeno all'inizio e verificare sempre mai dare per certo quello che viene risposto.
  • Alcuni modelli di Ai rispondo meglio a comandi secchi, semplici e concisi.




[CASA] - Come calcolare quanta pittura occorre per ridipingere casa.

Visto che ultimamente devo fare alcuni lavoretti a casa, di seguito pubblico una piccola tabellina per il calcolo dei litri di pittura necessari per ridipingere casa.

Supponendo di avere 2 appartamenti per un totale di 110 mq, calcoliamo quanti litri di pittura sono necessari per muri e soffitto.

Regola base

  • 1 litro di pittura copre ∼10-12 m² con una mano su muro liscio già bianco.
Calcolo per 110 m² calpestabili

Gli appartamenti si misurano in m² calpestabili, ma si pitturano i muri. 

Stima: 
  • m² pareti = m² calpestabili x 3.110 m² x 3 = 330 m² di pareti + soffitti
Domanda: 
  • Quanti litri servono

Fattori che cambiano tutto

  • Soffitti sì/no: 
    • Se non fai i soffitti 
      • togli ∼25% → 110 m² x 2.2 = 242 m² pareti.
  • Stato muri: 
    • Se sono grezzi/ruvidi consumi 20% in più. 
    • Se sono già bianchi lisci consumi meno.
  • Colore: 
    • Bianco su bianco = 1-2 mani. 
    • Colore scuro su chiaro o viceversa = 3 mani + fissativo.
  • Qualità pittura: 
    • Quelle da 15€/latta coprono 8 m²/L circa. 
    • Quelle da 50€/latta coprono 14 m²/L circa.
Stima veloce realistica:
  •  Per 110 m²
    • Caso tipico: 
      • Appartamento normale, muri + soffitti, da rinfrescare di bianco con 2 mani.
        • 330 m² / 11 m²/L x 2 mani = 60 litri.  
Consiglio: 
  • Compra sempre 10% in più. 
    • Se avanza la usi per ritocchi. 
    • Se ti manca 1 litro a fine lavoro bestemmi come un Turco in Cecoslovacco 😁😂