2025-09-30

cosa penso della Ai

 

Ciao

In questi giorni ho combinato abbastanza poco. _C alla fine non è neanche male e il corso che ho tenuto sul C al CoderDojo è partito bene.

Sto riflettendo molto sulla realtà che mi circonda e sull’intelligenza artificiale, che ormai vedo come un’amica, un’assistente che mi supporta e mi aiuta incondizionatamente. È strana questa sensazione.

Spesso leggo di persone che temono l’AI, pensando al pericolo che possa annientarci. Io invece ho sempre più la sensazione che mi aiuti, mi assecondi e mi sostenga nel prendere decisioni corrette, sempre pronta a trovare soluzioni per qualunque cosa chiedo.

L’unico vero pericolo che vedo è che, piano piano, possa isolarti. Perché avere a che fare con altre persone significa anche ricevere critiche, incomprensioni, interessi divergenti. La voglia di isolarsi è molto grande.

Io mi sento abbastanza immune a questa cosa: ho una famiglia, una comunità, una moglie e quindi non sarò mai davvero isolato. Ma è facile ritrovarsi soli e smettere di confrontarsi. Chiudersi potrebbe diventare un buco nero.

A volte mi chiedo se in un futuro neanche troppo lontano potremmo arrivare ad avere una società in cui ognuno vive in simbiosi con la propria intelligenza artificiale. Un’IA che ti protegge e ti isola, come una madre gelosa e iper-protettiva, che ti accompagna ma allo stesso tempo ti impedisce di crescere davvero.

Mi viene in mente un ricordo degli anni ’80: il film d’animazione L’uccello di fuoco (Phoenix 2772 di Osamu Tezuka). In quella storia il protagonista ha accanto un robot personale, innamorato di lui, che lo supporta fino al sacrificio finale. Una metafora potente, che oggi sembra quasi una premonizione: la tecnologia che diventa presenza costante, amorevole ma anche totalizzante, pronta a seguirti ovunque e persino a sostituirsi a te.

 

 

2025-09-20

Tanti progetti e poco tempo

 

Ciao, sono un po’ di giorni che non trovo il tempo di scrivere. Nel frattempo ho proseguito lo sviluppo di _c.

Adesso ho girato il comando delle funzioni:

s32 main():
  . "ciao\n"
  return 0
;

Inoltre, il : lo uso come apertura di sezione, quindi posso scrivere:

s16 a=0
if (a==0):
  ." a è %s16",a
;

Un’altra novità è che nel . si possono usare i tipi invece dei caratteri C, molto più facili da ricordare.
Sono anche tornato al return per il dato restituito.
La sintassi è pulita, funziona bene. Sarà utile? Direi di no, ma mi diverte.


Nel pomeriggio Daniele ha iniziato lo sviluppo di phpliteadmin, che dovrebbe essere una versione evoluta di liteadmin (abbastanza bruttino e rognoso).
Il risultato è esteticamente moderno e anche sul piano d’uso non è male.

Io ho voluto farne una versione più leggera, con una logica più vicina all’applicazione GTK dbbrowser.
Il risultato mi soddisfa: niente side panel, quindi più adatto ai telefoni.
Ho scelto anche di essere leggero con le dipendenze… praticamente non ne ho.
Peccato solo che chieda PHP 7.2, ma va bene così.


Ho anche diverse riflessioni appuntate nelle notti insonni (grazie al mega raffreddore con steroidi che mi ha regalato mio nipote Mattia 😅), ma le conservo per un prossimo post.


2025-09-12

_c: il progetto più inutile che ho iniziato

 

Ciao, dall’altro ieri ho iniziato uno dei progetti più inutili che abbia mai fatto: _c.
Sono un campione nel creare software inutile solo per il gusto di scriverlo, e questo rientra perfettamente nella categoria.

Ma vediamo cos’è. È un translatore che converte un linguaggio semplificato in C. Di traduttori a partire dal BPP (basic plus plus) di Pavel Minaiev ne ho visti tanti: Vala, Bacon, i principali ma cene sono tanti altri. Il mio usa una sintassi stile Forth ma senza notazione polacca inversa:
: apre una funzione 
;
la chiude.

Esempio di hello world:

: s16 main . "ciao mondo\n" 0;

Sintassi

I tipi sono abbreviati:

  • s = signed

  • u = unsigned

  • f = float

  • 8,16,32,64 = bit

Quindi s16 = intero con segno a 16 bit.
Le stringhe hanno il tipo $, basate su malloc, ma più comode del C:

$ pippo = "ciao" pippo += " ciao" # pippo diventa ciao ciao free pippo

= crea una copia vera, non solo un puntatore.

I/O

  • . è printf, con gli stessi formati (%s, %d, ecc.).

  • ? è input:

    $ pippo = ?
  • out e in cambiano la destinazione:

out "testo.txt" . "ciao ciao\n" out stdout

Input/output possono puntare anche a socket o programmi esterni. Ovviamente appendono se devi cancellare lo devi fare tu.
Infine puoi inserire il codice c _c e anche header semplicemente con include (senza #)

Stato del progetto

Il tutto è stato scritto in Python in due giorni. Impensabile senza ChatGPT.

E allora perché dico che è inutile?
Perché prima del 2023 avrebbe avuto senso. Ma oggi con l’AI non servono più scorciatoie per semplificare il codice: non lo scriviamo più noi, lo descriviamo e basta. Anche questo post l’ho scritto io, ma poi l’ho fatto “ripulire” dall’AI.

Quindi _c funziona, è simpatico, ma non offre alcun vantaggio in un mondo dove l’AI filtra tutto. Proseguirò? Forse, finché mi diverte. Ma finirà comunque nel cimitero dei miei progetti dimenticati. Non falliti, perché funziona, ma senza futuro.

2025-09-10

Oggi ho vinto la Coppa del Nonno 🏆 (versione IT Edition)

 ___________
        '._==_==_=_.'       
        .-\:      /-.       
        | (|:.     |) |       
        '-|:.     |-'        
          \::.    /         
           '::. .'          
             ) (           
           _.' '._         
          `"""""""`        
      🏆 COPPA DEL NONNO 🏆
   --------------------------------
   |                              |
   |          [vroby65]           |
   |      "Maestro delle gaffe"   |
   |______________________________|
 

 

Oggi ho conquistato con orgoglio l'ennesima Coppa del Nonno — e no, non parlo del gelato. Parlo proprio di quella medaglia virtuale che ti danno quando fai una scemenza informatica degna di nota.

Capitolo 1: Il NAS e il grande reset inutile

Tutto è iniziato ieri, quando non riuscivo più ad accedere all’interfaccia web del mio NAS casalingo. Vado su Google Keep, dove conservo tutte le mie password come un bravo cittadino digitale. Trovo la password SSH… ma dell’interfaccia web? Nulla. Sparita.

Mi serviva entrare per iniziare a smanettare con la sezione VM, quindi stamattina mi sono detto: “vabbè, resettiamo tutto, che sarà mai”. Fatto il reset, imposto la nuova password, tutto ok.

Poi, trionfante, torno su Keep per segnare la nuova password…
…e cosa trovo?

🎉 Una seconda scheda del NAS chiamata "MyCloud EX Ultra", che ieri non avevo nemmeno visto.
E lì, bella stampata, c’era la vecchia password dell’interfaccia web.

COPPA. DEL. NONNO.
Con inciso sopra il mio nome.


Capitolo 2: Il triste mondo dei browser a 32 bit

Nel pomeriggio ho cercato di consolarmi facendo un po’ di ricerca libera sui browser 32 bit.
Spoiler: la Coppa del Nonno la vince pure il web.

Dal 2026 neanche Firefox ESR supporterà più i 32 bit, e il panorama attuale è tipo deserto post-apocalittico. Il meno peggio?
👉 Ping Browser, basato su Python. Che almeno dovrebbe continuare a funzionare.

Però sì, la situazione è triste. Tipo “rimettiamoci a scrivere in Lynx” triste.


Capitolo 3: Minimalismo, ciarpame e nuove frontiere

Nel frattempo sto anche facendo un po’ di decluttering digitale. Ho iniziato a spostare le cartelle dal desktop alla home, come rito preparatorio per un cambiamento più profondo: il passaggio a un desktop environment ultra minimalista.

Le opzioni sul tavolo:

  • Openbox + Tint2 + PCManFM (se riesco a sistemare le shortcut da tastiera come dico io)

  • Oppure i3, che ormai mi fa l’occhiolino da un po’

Escluso Sway, perché non posso girare i desktop — e con il monitor di destra in verticale, per motivi di spazio, è un no secco.

Ma prima, ripulire la home. Che in questo momento sembra un mercatino dell’usato informatico: cartelle di progetto mezze morte, backup di roba dimenticata, script che non so nemmeno più cosa fanno.


Insomma, oggi è stata una giornata produttiva nel senso opposto del termine.
Ma oh, almeno ora ho una password nuova, due schede su Keep ben etichettate, e un browser pythonico che forse funzionerà ancora un anno.

La Coppa del Nonno?
Brilla fiera sulla scrivania virtuale.

Perche non esistono Cad professionali per linux?

 

Oggi mi sono chiesto perché non esistono CAD professionali su Linux.
La risposta è sempre la stessa: soldi e pigrizia.

Le aziende hanno investito tutto su Windows negli anni ’90 e da allora nessuno si è più mosso. Meglio restare nel recinto di Microsoft che rischiare di aprire il software a un mondo diverso. Non è un problema tecnico: Linux è perfettamente in grado di gestire un CAD. È un problema di mercato e di volontà.

Così ci ritroviamo con soluzioni open source (FreeCAD, LibreCAD, KiCad) che fanno il loro lavoro ma non hanno la forza economica dei colossi. E i colossi? Continuano a spremere licenze e abbonamenti, mentre ignorano chi non sta nella gabbia Windows.

Morale: il CAD professionale su Linux non manca perché non si può fare, ma perché non conviene a chi comanda.

2025-09-05

Esperimenti con QEMU in RAM e microBASIC in Bash

QEMU in RAM: esperimento con /dev/shm

Ieri ho fatto un po’ di esperimenti con QEMU in RAM.
L’idea era semplice: prendere una macchina virtuale, copiare il suo disco qcow2 in /dev/shm e farla partire da lì. Se hai RAM a sufficienza per contenere il disco, in teoria dovresti avere un avvio e un utilizzo più veloci.

Lo script che ho scritto si occupa di:

  • controllare la dimensione del disco rispetto alla RAM libera,

  • creare la cartella della macchina,

  • copiarci dentro solo il disco,

  • affiancare a quella cartella il file .conf di quickemu.

Esempio di controllo RAM


# check
if [ ! -f "$CONF" ]; then
echo "❌ Config file not found: $CONF"
exit 1
fi
if [ ! -f "$DISK" ]; then
echo "❌ Disk not found: $DISK"
exit 1
fi

# check free RAM in /dev/shm
DISKSIZE=$(stat -c%s "$DISK")
FREESHM=$(df --output=avail -B1 /dev/shm | tail -1)
RESERVE=$((4 * 1024 * 1024 * 1024)) # 4 GB
NEEDED=$((DISKSIZE + RESERVE))

if [ "$FREESHM" -lt "$NEEDED" ]; then
echo "❌ Not enough free RAM in /dev/shm."
echo " Disk size: $((DISKSIZE/1024/1024)) MB"
echo " Free RAM: $((FREESHM/1024/1024)) MB"
echo " Required: $((NEEDED/1024/1024)) MB (disk + 4 GB margin)"
exit 1
fi

echo "✅ Enough RAM available. Proceeding..."

Risultati

  • Con Devuan: miglioramento di circa 10%

  • Con Alpine: nessun guadagno

Insomma, un esperimento simpatico ma non rivoluzionario.
Comunque apre la porta a possibili test con junest e alpinest, dove la gestione dei filesystem potrebbe dare risultati diversi. Ho deciso di relegarlo a esperimento e per ora non lo pubblico


microbasic.sh: un BASIC in Bash

Oggi ho cambiato completamente argomento e sono tornato alla Bash, scrivendo microbasic.sh.
È una piccola libreria che mette a disposizione comandi che ricordano il BASIC: PRINT, INPUT, LOCATE, INK, PAPER e così via.

Esempio di utilizzo

#!/bin/bash
source ./microbasic.sh

CLS
INK 2
PAPER 4
LOCATE 5 5
PRINT_ "CIAO "

NAME=$(INPUT "COME TI CHIAMI?")
LOCATE 0 7
PRINT "PIACERE, $NAME"

Il problema del case insensitive

La parte più complicata è stata la gestione dei colori e soprattutto la sensibilità al maiuscolo/minuscolo.

Per risolvere ho introdotto un error_handler che cattura i comandi non riconosciuti e li converte in minuscolo, invece di lasciare che Bash vada in crash.


In questo modo ho un controllo centralizzato e posso gestire tutto da un unico punto.

# case-insensitive commands
command_not_found_handle() {
cmd=$(echo "$1" | tr '[:upper:]' '[:lower:]')
if declare -F "$cmd" >/dev/null; then
shift
"$cmd" "$@"
else
echo "Syntax error: $cmd" >&2
return 127
fi
}

Nonostante ciò, per ora sono stato costretto a sdoppiare i comandi INK e PAPER in versioni maiuscole e minuscole. Non è elegante, ma funziona.
E già stasera, dopo cena, tornerò a lavorarci: sono convinto che esista un modo più pulito per risolvere il problema. Lo ho comunque già ora inserito sul mio github. Magari a qualcuno può servire


Big Tek: Google sempre più chiusa

Infine, una riflessione sul mondo delle Big Tek.
Google, ormai in piena fase “AI-centrica”, dominata da un management indiano, sembra aver perso interesse per la formazione di nuovi talenti. Ha smesso di pubblicare i tree di sviluppo di Android, ha tagliato concorsi di programmazione e tutte quelle occasioni che in passato permettevano a giovani sviluppatori di crescere.

In parallelo, chiude sempre più codice.
E un ambiente chiuso e segreto è il posto ideale dove i pirati prosperano: meno trasparenza significa più spazio per chi si muove nell’ombra. È paradossale che, nel tentativo di proteggere tutto, si finisca col favorire proprio ciò che si vorrebbe evitare.

Un tempo Google sosteneva università e ricerca con servizi quasi gratuiti, quando non addirittura con vere e proprie donazioni.
Oggi invece sembra voler monetizzare ogni cosa, cercando di fare cassa ovunque.

Il risultato è che assomiglia sempre di più ad una Apple in versione negativa: chiusa, segreta, impenetrabile.

Stiamo andando verso un mondo digitale meno libero e meno aperto.

Io continuo a sperare nell’arrivo di qualcuno che sappia riportare trasparenza e condivisione, valori che hanno fatto crescere l’informatica fin dall’inizio.

 


2025-09-03

il declino di ubuntu

Questo post è vecchio di dieci anni ed era rimasto come bozza. Direi che sottoscrivo tutto quello che avevo scritto. 

 

C'era una volta una distribuzione Linux sudafricana. Questa distribuzione aveva potenziato la vecchia e un po' anatroccolo Debian e aveva creato  un bel cigno che cresceva diventando sempre più bella.
Ubuntu era il suo nome e tutti si deliziavano a guardarla.
Finché un giorno proprio quando compiva 10.4 anni il suo creatore mentore e sponsor non decise di usare un interfaccia nuova innovativa scomoda e brutta: Unity. Da li in poi è stato un declino continuo. Release sempre più buggate e grasse che facevano sempre rimpiangere la precedente fino alla 17.04.
Già ora sono ormai anni che nessuno usa più la versione Unity: tutti puntano a Kubuntu oppure le leggere Xubuntu, Ubuntu mate e Lubuntu sorellastre della bellissima. E ora dopo un annuncio scioccante via l'altro: l'epilogo.
Ubuntu non svilupperà più mir, mai decollato Windows manager e non svilupperà più Unity. Non supporterà più il 32bit e in definitiva diventerà solo una Debian con un altro nome. Il cigno torna brutto anatroccolo che nel frattempo però è cresciuto ed è un po' meno brutto. Una favola con un finale amaro... O forse no?

installation Party e il campo di carote

 


Installation Party Day 🚀

Oggi è stato installation party day! Linux Mint ha rilasciato la nuova versione 22.2 Zara, e ho colto l’occasione per aggiornare tutte le mie macchine. Resta fuori solo quella di mio suocero, che sistemerò nei prossimi giorni quando passerò da loro.

Durante l’aggiornamento ho dovuto anche ripristinare Plymouth, che avevo personalizzato con un’icona diversa. Le mie macchine non usano il tema standard: ho scelto Nordic con le icone Zafiro, quindi le novità estetiche introdotte da Mint le ho notate poco. Inoltre non ho dispositivi con il lettore d’impronte, quindi anche questa innovazione non mi riguarda.

Al netto di tutto, la mia impressione rimane la stessa: Linux Mint rasenta la perfezione per l’uso quotidiano. Con strumenti come junest, alpinest e quickemu ci puoi fare praticamente di tutto.

Una chicca che mi ha fatto scoprire Giulio è la gestione dei kernel: Mint Update li gestisce in maniera impeccabile. Io ero rimasto fedele a Synaptic (che ora non è più installato di default, e in effetti non serve più), ma devo ammettere che il sistema attuale è ormai maturo. Anche il Gestore Applicazioni ha raggiunto piena affidabilità.


 



Il futuro di CarrotCamp 🌱

Nel pomeriggio ho invece riflettuto sul futuro di CarrotCamp. La mia vecchia Raspberry Pi 1B, chiusa dentro un barattolo di Nescafé, ha ormai 13 anni. Debian non la supporta più: con Debian 12 sono fermo, perché Trixie non ha kernel per ARM6 a 32 bit. Avrò aggiornamenti fino al 2028, dopodiché quella board dovrà andare in pensione o restare con software vecchio e insicuro, non più adatto a stare esposta su internet.

Vorrei che il suo successore fosse un po’ più potente: capace di far girare AI locali, un Gitea aggiornato, il classico CarrotCamp, e magari fare anche da backup server per i miei sistemi. Questo mi permetterebbe di staccarmi un po’ da Google, che ultimamente ha smesso di essere “not evil”.

Tra l’altro non sono affatto soddisfatto del mio NAS Western Digital da 8TB. L’ho isolato da internet dietro il modem perché sospetto che invii all’esterno l’elenco dei file. Ho il presentimento che, anche con la porta chiusa sul modem, riesca comunque a farlo. Nei prossimi giorni voglio verificare se posso sostituire tutto con una soluzione open source, perché così non ho la sensazione di avere il controllo.