2025-11-29

un po di novità

 Ciao, 

Prosegue il periodo fertile di sviluppo.

Poiché non mi sento un buon scrittore, ho sviluppato un semplice strumento: scrivo il testo, lo fornisco a Ollama GPT‑OSS 20B, che lo rivede e mi restituisce la versione corretta sulla pagina sottostante. La cosa simpatica è che è scritto in bash, semplice, breve ed efficace. E' ancora da migliorare ma andiamo bene. Probabilmente lo migliorerò anche per scrivere in inglese lingua che non so proprio usare.  Un altro programma interessante che sto scrivendo è praticamente un programma ti permette di dettare quello che scrivo.

Anche lui è molto acerbo e continua a commettere errori. Dovrò fondere i due programmi per ottenere un programma che oltre a ricevere la dettatura vocale provvede anche a sistemare gli errori che il text to speech commette di continuo. Poi ho giocato con Suno e ho fatto una musichetta carina. L’idea era di fare una suoneria,ma è uscita una musica da demo e così ho fatto una demo HTML in JavaScript. È incredibile quanto è facile fare ciò che vuoi quando un LLM ti aiuta e ti scrive le parti difficili.  Per l’occasione, ho cambiato la pagina delle demo fatte con **three.js** in demo generiche.

Altra cosa carina e interessante è il gioco di Battaglia navale di gruppo e dopo un po di mazzolate lo considero finito.

Infine una cosa che mi ha dato una grande soddisfazione: finalmente il microfono del portatile nitro v15 e il tasto pilot funzionano anche su linux grazie al nuovo kernel appena installato.

 

2025-11-21

un canale youtube?

 Ciao, sto pensando di fare un canale youtube anche io. Vedo che a parte Antirez che però è molto specifico, Morro che è impostato sul sistema  e non sul codice e altri amici come Claudio Dafra che pero sono piu sul retrocomputing,  la qualita è piuttosto ridotta. L'idea sarebbe fare un canale che punta mostrare il codice in maniera genuina e in cui potrei mostrare i miei programmi da dentro senza filtri e senza scaletta  mostrando errori tecniche e idee. Chiaramente non durante lo sviluppo perche potrebbe essere noioso ma postmortem quando il codice è completo e ricordo ancora bene cosa ho combinato e perché. Il canale c'è gia si chiama verticaldev ma è completamente vuoto. Ho visto che si puo rinominare e lo chiamerei come questo blog vrobypages.

Nei giorni scorsi ho riprovato suno ed è ancora piu spettacolare. Puoi creare music nello tuo stile pressoche perfetta. Nell'ambito tecno trance dubito che ci sia ancora spazio per fare musica senza AI e tempo che oramai sia tutta sviluppata cosi.

Infine una nota che mi ha turbato molto. Con un amico sono andato a Milano e pasando per una via ho visto la chilometrica coda alla mensa dei poveri. Davvero tanta gente decisamente disperata. Stiamo precipitando in un baratro. Io ormai sono anziano ma sono profondamente preoccupato per il futuro distopico che si sta palesando.  


2025-11-18

un altro forth

 Spinto dal corso c di Antirez su youtube in cui sta mostrando come si scrive un interprete forth Ho pensato cosi per provare a scriverne uno a modo mio vale dire esasperando tutto.

Il forth è un antico linguaggio di programmazione anzi è in un certo senso anche un sistema operativo. figlio degli anni 60 è sicuramente parecchio alieno per che usa la notazione polacca inversa. Avevo fatto quanche mese fa una serata in compvter su questo linguaggio e sui insospettabili eredi il cui principale è il c nella maniera originale.

Siccome è molto alieno programmare inquesto linguaggio dico sempre scherzosamente che nel rottame dell'astronave aliena di Roosvelt avevano trova un computer con i transistor al germanio che faceva funzinare il forth.

Vediamo un po la notazione: 

una somma si fa cosi: 2 2 + 

lo spazio o l'invio è il separatore di tutto

il forth usa per tutto un buffer speciale che si chiama stack

La particolarita dello stack è che l'ultimo numero inserito è il primo ad essere estratto.

In realta è un componente previsto direttamente nei processori e solitamente ha i comand push e pop per scrivere leggere in questo buffer

scrivendo 2 metti il numero nello stack

scrivendo un scrivendo un altro 2 lo metti anche lui nello stack 

scrivendo piu invece siccome è un comando questo estrae il 2 dallo stack poi estrae il primo 2 dallo stack li somma e il risuiltato vien messo nello stack.

Questa logica è potente e semplice al tempo stesso: i comandi di base sono:

. (nel caso di Antirez ha usato print) stampa l'ultimo numero inserito nello stack

+ - * / sono  le operazioni matematiche. il risultato è posto nello stack

> <  = operatori di confronto (prendono i 2 numeri li confrontano e se la condizione è vera si mette 1 altrimenti 0)

if else endif preleva dallo stack se è piu di 0 esegue il comando dopo altrimenti cerca else o endif

eccetera....

La versione di forth che ho creato è estrema e minimale. E' scritta in c.

Lo stack non è quello del processore ma un array di int. la matematica va quindi solo a interi. Nel forth di solito la matematica è in virgola fissa.
Il word_exec (le word sono i comandi Forth) fa i confronti di tipo numerico a byte quindi verifica se è un numero altrimenti verifica se è un comando una nuova funzione o una variiabile  se non trova nulla emette un errore i comandi aggintivi e molti comandi lunghi tipo dup swap if else fi sono trasformati in numeri con una sorta di hash ma a 32 bit e confrontati quindi non uso strcmp che è piu ttosto pesante.
Per le variabili uso 2 comandi !nome_varibile che assegna alla  variabile il valore prendendo dallo stack e @nome_variabile che invece copia nello stack il valore.

Le variabili sono un altro array di una  struttura nome ,valore anche qui il nome è cifrato a 32 bit e il valore è un int (quindi su pc a 64 bit). anche qui il findvar è molto veloce perche cerca con il numero cifrato quindi 20X veloce.

Per le stringhe ho usato un array di array di char  ( char strings[64][128])
quanod la word inserita inizia con " exec_word mettette tutto il testo nella prima string vuota fino al successivo " quindi inserisce il numero dell'indice delle stringhe nello stack.

il comando $ preleva dallo stack l'indice string e lo stampa. Questo schema è furbo e permette cose strane tipo:

"ciao ciao" !ciao 

@ciao $ >stampa ciao ciao.

le funzioni in forth si fanno usando : nome_word comandi.... ; e l'ho implementao uguale solo che nel forth originale il comando viene compilato nel nano forth invece viene caricato in una array cosi come è e quando invocato viene semplicemente iniettato come fosse scritto sul momento. Di fatto sono piu macro che funzioni. Semplice veloce funziona bene ma non offre maggior velocita del codice diretto. 

Alla fine è molto limitato ma è un bell'esercizio intelligenza laterale nel cercare soluzioni 

estreme ed efficenti e mentre scrivo ho gia un paio di idee insane da aggiungere.

Dimenticavo di dire che funziona sia come terminale sia passando un file.

volete vederlo nei dettagli? https://gist.github.com/vroby65/082f0ffc98bd846b95ab0bac95312574






 

2025-11-14

google finance

 Ci risiamo, googlefinance la funzione di Google fogli non restituisce più i dati di borsa italiana. Io questa funzione la uso per automatizzare il foglio di calcolo dei miei investimenti. Google a livello di efficienza è sempre peggio. Solo 5 anni fa l'assistenza era impeccabile. Dall'anno scorso invece sono scesi al livello di Facebook con in pratica l'impossibilità di comunicare qualunque problema. E i problemi si moltiplicano.

Siccome non vedo neppure l'idea di riparare il problema pur avendo i dati su google.com/finance ne concludo che l'unico modo è provare la nuova funzione gemini che magari mi mette il dato con la Ai. Ma provando scopro che può solo fare operazioni con i miei dati...... Sia mai che diventa utile. Ok proviamo con gemini il chatbot e mi dice che non si può scrivere una funzione per fare scraping dei dati dal sito. Hummm secondo me questa è censura. Provo con chatGPT ed ecco la funzione semplice ed efficiente:

// ---- Per recuperare etf e azioni da google finance -----------------------
function prezzoGoogle(ticker, foo) {
const url = `https://www.google.com/finance/quote/${ticker}`;
const html = UrlFetchApp.fetch(url).getContentText();

const match = html.match(/<div[^>]*class="YMlKec fxKbKc">([^<]+)</);

if (match && match[1]) {
let prezzo = match[1].trim(); // es. "€143.96"
prezzo = prezzo.replace("€", ""); // rimuove €
prezzo = prezzo.replace(/\s/g, ""); // toglie eventuali spazi
prezzo = prezzo.replace(",", "."); // nel caso usasse la virgola

return parseFloat(prezzo);
} else {
return NaN; // così capisci che non ha trovato il valore
}
}

Che dire gemini ci nasconde questa scomoda (per loro) opportunità. Pero non si aggiorna ma troviamo un trucco: l'idea è avere una cella con =now() che viene passata come parametro. Però Google fogli si accorge del fugno e va in errore. Don't be evil dicevano.... certo certo. Risolvo puntando alla cella dell'anno. Se  la cancello e poi riscrivo tutte le celle collegate si aggiornano e funziona.

Ora cosa dire? Google tratta sempre peggio i suoi utenti sempre più aggressiva con la pubblicità sempre più egoista sempre più indisponibile. Della società superfiga accogliente che usa i profitti per innovare per migliorare il mondo non resta che cenere.

Sto facendo il backup dei dati con cadenza bimestrale e sto pensando di tornare con i miei dati sulla macchina fisica perché qui può succedere da un momento al'altro che anche bigG subisce un bel databreach con tutto quello che ne consegue e che forse i mega licenziamenti avranno si aumentato i profitti nel breve ma con un enorme peggioramento del prodotto e  dell'immagine che avevano.

Chiudo dicendo che secondo me Larry Page e Sergey Bring non avrebbero mai sponsorizzato una squadra di formula uno che con il mondo Google non centra nulla


2025-11-13

anche firefox lascia il 32bit

 


Brutte notizie per i netbook. il browser firefox dalla versione 145 non supporterà più l'architettura a 32bit. Insomma finisce l'era dei 4gbyte sono una quantità di memoria che può soddisfare qualunque bisogno. Resteranno i soliti rimasugli non supportati che presto non saranno più accettati nel web. Forse è il caso di cominciare a spingere di più per del software che per funzionare non richiede internet perché è evidente che adesso quando cessano il supporto il software (e anche l'hardware di conseguenza) ti costringono a comperare nuovi apparecchi che sono molto più monitorati e molto più invasivi.

2025-11-09

Perche non sono un hacker

Chi mi conosce può pensare che sia un hacker nel senso del manifesto di Eric Raymond. Tuttavia questo non è vero perché mi mancano due skill importanti e ne ho altre che non centrano nulla o che addirittura sono in contrasto con il manifesto hacker. 

La prima skill che non ho è che un hacker parla inglese. Eric, da buon americano, usa il termine "parla" ma intende "pensa". Il mio flusso di pensieri è per immagini (quello più profondo) e in italiano. Non ho neppure la capacità di capire l'inglese: se seguo un programma in lingua anglosassone non capirò una parola. Non lo so quindi neppure parlare; non potrei sostenere una seria conferenza in inglese. Riesco giusto a leggerlo e scriverlo, anche se è peggiorato.

La seconda skill, anche se non è enunciata, è sottintesa: devi saper scrivere senza guardare la tastiera. Ecco, io nonostante abbia tentato più e più volte non sono mai riuscito a farlo per più di qualche minuto. È molto grave perché le sviste e gli errori così si moltiplicano. È anche il motivo per cui non uso vi ma Geany in ambiente grafico e Micro in terminale.

Quindi posso affermare di non essere un hacker completo anche se ho tutte le altre skill e alcune non elencate. Quindi cosa sono?

Ho sempre cercato di classificarmi ma sono giunto alla conclusione che è stupido classificare le persone con etichette. Io ho le mie regole, i miei limiti e li posso tranquillamente elencare:

1. Mi arrogo il diritto di cambiare idea sempre, in ogni caso e su tutto.  
   Uso software open source. Non lo faccio per motivi ideologici ma per motivi pratici. Se domani riterrò di dover cambiare, lo farò senza se e senza ma.

2. Non scrivo codice per denaro ma per passione e per curiosità.  
   Questo mi aiuta a decidere cosa scrivere e perché. Non significa che non posso scrivere codice per denaro o altro, ma semplicemente che non sarà la molla che mi farà fare qualcosa.

3. Mi piace capire le cose e aiutare gli altri a capirle.  
   Capire le cose è importante: se non capisci cosa stai facendo, devi fermarti e cercare di capire.

4. Perseguo la semplicità e il minimalismo.  
   Per fare qualunque cosa ci sono tre vie:  
   - La via dell'eleganza  
   - La via della velocità  
   - La via della semplicità  
   
   La via dell'eleganza è quella perseguita e preferita in ambito accademico, cioè non è la migliore ma è quella più considerata da un'élite, a volte per motivi che esulano dalla qualità stessa della soluzione.  


   La via della velocità è quella dei professionisti, più rapida da realizzare, accattivante esteticamente e più economica all'atto pratico. Non conta se è meno efficiente o troppo complessa e incomprensibile; anzi, sono tutte qualità.  


   La via della semplicità è quella che perseguo io: fare le cose semplici e comprensibili anche a discapito della velocità, efficienza, brevità e persino con controlli più limitati. In questo includo anche non cambiare le cose che funzionano, cosa che pare andare molto di moda ultimamente.

5. Adoro personalizzare ogni aspetto della mia esistenza.  
   Credo sia il motivo per cui uso open source e mi piacerebbe fosse possibile averlo in ogni aspetto della vita. Non ne faccio una questione di prestazioni, ma è proprio che voglio la possibilità di ritagliarmi ogni cosa su misura e provare e riprovare fino a giungere a un nuovo livello. Personalizzazione e minimalismo non sono in contrasto, ma sono due facce della stessa medaglia.

6. Voglio sempre pensare con la mia testa.  
   In questa società ci sono sempre persone che cercano di inquadrarti in una realtà fittizia e distorta. Io perseguo la verità a prescindere, cercando di lasciare le crociate ad altri, ma al tempo stesso difendendo i miei interessi. Troppo spesso ho trovato gente che cerca di portarti verso i suoi interessi, e adesso non mi farò più influenzare da nessuno, almeno non consapevolmente. Bisogna sempre domandarsi se stai realmente perseguendo la cosa giusta.

 


 

2025-11-03

TiTanik

 La vita a volte è incredibile. Nel 1997 (si quello di fuga da NewYork) ho venduto il mio amiga ereditato da mio fratello quando mi sono sposato. Prima di dare via tutto a una mia collega ho fatto il backup dei miei sorgenti amos. Non tutti ma le parti più belle nella speranza che finissero in qualche modo su internet e sopravvivessero alla cancellazione. Li ho messi sulla bbs amiga di allora a Pavia TiTanik. La bbs dopo poco all'esplosione di internet è ovviamente scomparsa e ho considerato persi per sempre quei file. Questo fino a pochi giorni fa quando in compvter un mio amico mi ha detto che il sysop di titanik è un altro socio con cui tra l'altro chiacchieravo spesso. Cosi velocemente ho rimediato la mail e ho scoperto che ha ancora tutto ovviamente spento e che tempo permettendo lo rimetteremo in pista molto presto. Non vedo l'ora di riprendermi in mano i miei file dopo 28 anni.