lunedì 15 giugno 2026

Recensione libro - Il Primo Manifestatore: perché Gesù aveva ragione e la scienza sta iniziando a scoprirlo

 

libro il primo manifestatore


Editore ‏ : ‎                          Indipendente

Data di pubblicazione ‏ : ‎  6 maggio 2026

Lingua ‏ : ‎                           Italiano

Lunghezza stampa ‏ : ‎       236 pagine

ISBN-13 ‏ : ‎                        979-8195842109

Peso articolo ‏ : ‎                 322 g

Dimensioni ‏ : ‎                    15.24 x 1.37 x 22.86 cm

Autore:                                      Alessandro Balzarelli


Descrizione:

L’amico Alessandro torna con un nuovo libro dopo il grande successo della sua prima pubblicazione, “Il punto Zero Interiore”.

In questa nuova opera, “Il Primo Manifestatore: perché Gesù aveva ragione e la scienza sta iniziando a scoprirlo”, Alessandro Balzarelli, per gli amici Alex, affronta con attenzione e sensibilità un tema importante e molto sentito, quello della religione.

Non si tratta di un manuale religioso né di un romanzo, ma di un percorso di scoperta interiore che prende spunto dalla tradizione cristiana e dai suoi insegnamenti.

Nel libro, l’autore analizza aspetti della religione con uno sguardo contemporaneo, confrontandosi con le interpretazioni e le risposte che negli ultimi anni state proposte dalle persone, offrendo al tempo stesso profonde riflessioni di carattere umano.

Il libro è acquistabile su Amazon, dal seguente sito https://www.amazon.it/Primo-Manifestatore-ragione-iniziando-scoprirlo/dp/B0GZW2RLCL






domenica 14 giugno 2026

Github impostare una presentazione nel proprio profilo

Introduzione

Quando un visitatore accede al nostro profilo GitHub, oltre alle informazioni configurate per l'account, può visualizzare i repository pubblici e altri dettagli che abbiamo scelto di condividere.

Può essere utile creare una breve presentazione del profilo, così da fornire informazioni su noi stessi, sui nostri progetti o su altri aspetti che desideriamo mettere in evidenza.

In questo modo, chiunque visiti il profilo troverà una pagina introduttiva in grado di offrire una descrizione chiara dell'autore e delle sue attività.


Creazione della presentazione

Dopo aver effettuato l'accesso al nostro account GitHub, apriamo la pagina del profilo, come illustrato nella figura 1.

GITHUB creazione di presentazione del proprio profilo
Figura 1 – La pagina principale


Creiamo un nuovo repository con lo stesso nome dell'account. Nel mio caso, il repository si chiamerà emanuele2025.

Nella sezione "Repository", facciamo clic sul pulsante "New", come mostrato nella figura 2.

GITHUB creazione di presentazione del proprio profilo
Figura 2 – La pagina per la creazione dei report


Dopo aver fatto clic sul pulsante verde “New”, si apre la pagina per la creazione di un nuovo repository. Nel campo dedicato al nome del repository, inseriamo lo stesso nome utilizzato per l’account GitHub. A questo punto verrà visualizzato un messaggio che indica che si tratta di un repository speciale, come mostrato nella Figura 3.

GITHUB creazione di presentazione del proprio profilo
Figura 3 – Creazione del repository con lo stesso nome dell’account


Dopo aver fatto clic sul pulsante verde “Create repository” (Figura 4), il repository verrà creato.

GITHUB creazione di presentazione del proprio profilo
Figura 4 – Il pulsante per la creazione del repository


Dopo aver fatto clic sul pulsante “Create repository”, verrà aperta la pagina del repository. In essa sarà presente il collegamento ipertestuale “README”, come mostrato nella Figura 5.


GITHUB creazione di presentazione del proprio profilo
Figura 5 – La pagina della creazione del repository


Dopo aver fatto clic sulla voce “README”, verrà aperta una pagina nella quale sarà possibile modificare il file README appena creato, come mostrato nella Figura 6.

GITHUB creazione di presentazione del proprio profilo
Figura 6 – Pagina del file Readme


A questo punto, apportiamo le modifiche di nostro interesse.

Una volta apportate le modifiche, facciamo clic sul pulsante “Preview” per visualizzare l’anteprima di come verranno pubblicate, come mostrato nella Figura 7.

GITHUB creazione di presentazione del proprio profilo
Figura 7 – L’anteprima delle modifiche apportate


Se le modifiche sono di nostro gradimento, non resta che pubblicarle.

Le modifiche diventeranno effettive solo dopo aver eseguito il commit. Facendo clic sul pulsante verde “Commit changes…”, situato in alto a destra, salviamo le modifiche apportate.

Verrà quindi visualizzata una pagina nella quale sarà possibile inserire commenti e informazioni che descrivono il motivo delle modifiche effettuate.

Possiamo confermare il messaggio suggerito oppure personalizzarlo, quindi fare clic sul pulsante “Commit changes” (Figura 8).


GITHUB creazione di presentazione del proprio profilo
Figura 8 – La pagina della conferma delle modifiche


Dopo aver fatto clic sul pulsante “Commit Changes”, verrà visualizzata una pagina (Figura 9) che mostrerà il risultato delle modifiche apportate. In questa pagina sarà inoltre presente un pulsante che consentirà di modificare il file README oppure di visualizzare il profilo.

GITHUB creazione di presentazione del proprio profilo
Figura 9 – La pagina pubblicata


Tutti coloro che visiteranno il nostro profilo GitHub troveranno la presentazione appena creata e, al di sotto di essa, le informazioni statistiche relative ai vari repository, come mostrato nella Figura 10.


GITHUB creazione di presentazione del proprio profilo
Figura 10 – La pagina principale del proprio account


Conclusioni

In questo articolo abbiamo illustrato al lettore come creare una presentazione del proprio account GitHub, guidandolo passo dopo passo nelle diverse fasi della procedura.

Con pochi semplici passaggi è possibile realizzare una presentazione accattivante del proprio profilo GitHub, fornendo ai visitatori una panoramica chiara e immediata delle proprie attività, dei progetti pubblicati e delle informazioni che si desidera mettere in evidenza.

.NET componente gratuito per la grafica SkiaSharp

 

componente gratuito Skiasparp

Il componente gratuito ed open source SkiaSharp, qui https://mono.github.io/SkiaSharp/  il sito,  permette di effettuare operazioni anche complessi sulla grafica.

Questo componente, multi piattaforma e da utilizzare in vari ambiti (Windows Forms, WEB, Mobile, etc) , fornisce al programmatore funzionalità avanzate sulla grafica, effetti grafici ed altro ancora.

Un componente gratuito molto potente ed efficiente, scaricabile tramite Nuget.

Qui https://github.com/mono/SkiaSharp  il sorgente.


sabato 13 giugno 2026

C# convertire un numero in formato numero romano

Nel caso che si ha la necessità di convertire un numero in formato romano nel linguaggio di programmazione C#,  tramite l'esempio qui di seguito illustra una tecnica di conversione.

In alto, sopra ad ogni dichiarazione, scriviamo due variabili di tipo array string, che possono essere utilizzati nella form (progetto Windows Forms) , in qualsiasi parte.


C#

private static readonly int[] valori =

     {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

 private static readonly string[] simboli =

     {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};



Dopo aver creato i due campi, si crea una funzione, che verifica se il numero passato rispetta un certo range di valori, ed in caso positivo, converte il numero 

C#

public static string ConvertiInNumeriRomano(int numero)

 {

     if (numero < 1 || numero > 2100)

         throw new ArgumentOutOfRangeException(nameof(numero),

             "Il numero deve essere compreso tra 1 e 2100.");

 

     var risultato = string.Empty;

 

     for (int i = 0; i < valori.Length; i++)

     {

         while (numero >= valori[i])

         {

             numero -= valori[i];

             risultato += simboli[i];

         }

     }

 

     return risultato;

 }

 




Nell'evento click di un pulsante verifichiamo se abbiamo digitato in un controllo Textbox un valore numerico, ed in caso di esito positivo, lo passiamo alla funzione appena creata.

Di seguito il frammento di codie dell'evento click del pulsante.

C#

private void BtnConvertiNumeriRomani_Click(object sender, EventArgs e)

{

    try

    {

 

 

        if (!int.TryParse(TxtNumeri.Text, out int anno))

        {

            MessageBox.Show("Errore: inserire un numero intero valido.");

            return;

        }

        string numeroRomano = ConvertiInNumeriRomano(anno);

        MessageBox.Show($"Numero romano: {numeroRomano}");

 

 

    }

    catch (ArgumentOutOfRangeException ex)

    {

        MessageBox.Show("Errore:" + ex.Message);

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore:" + ex.Message);

    }

}

 






venerdì 12 giugno 2026

C# Windows Forms, visualizzare un file immagine di tipo Webp in un controllo picturebox

Il controllo PictureBox, di un progetto di tipo Windows Forms, non permette la visualizzazione di file immagini di tipo "webp". 
Tramite la libreria "SkiaSharp", possiamo convertire il file in un formato idoneo alla visualizzazione in un controllo PictureBox.

Aggiunge al progetto tramite "Nuget" il componente "SkiaSharp", in questo modo disponiamo di classi per la gestione delle immagini.

Di seguito si riporta la funzione per convertire il file "webp" in un formato immagine png idoneo al controllo PictureBox.




C#

 string percorso = "C:\\Varie\\Immagine.webp";

 //Rilevo lo stream dei dati

 using (var data = File.OpenRead(percorso))

 {

     //Creo un oggetto skiaBitmap dallo stream dati

     var skiaBitmap = SKBitmap.Decode(data);

 

     //Converto SKBitmap in System.Drawing.Image

     using (var ms = new MemoryStream())

     {

         //Imposto nel MemoryStream l'oggetto  SKBitmap come PNG

         using (var skiaImage = SKImage.FromBitmap(skiaBitmap))

         {

             skiaImage.Encode(SKEncodedImageFormat.Png, 100).SaveTo(ms);

         }

         ms.Position = 0; // Reset stream position

 

         //Visualizzo l'immagine nel PictureBox

         pcbAnteprima.Image = System.Drawing.Image.FromStream(ms);

     

     }

 }

 

giovedì 11 giugno 2026

Steganografia con C# - inserire un file word in un file immagine png

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/steganografia-csharp-inserire-file-word-file-immagine-png 


In questo articolo vedremo una tecnica per nascondere in un file di tipo “PNG”, un documento di Microsoft Word, utilizzando la tecnica della steganografia, senza che l’immagine perda nitidezza.

La steganografia è la tecnica di nascondere un messaggio all'interno di un altro contenuto in modo che la sua stessa esistenza rimanga invisibile, una tecnica particolare, che si trova in vari ambiti.

L’articolo non vuole portare a conoscenza di tecniche che possono essere usate per scopi illeciti o per situazioni di mancato rispetto delle leggi, ma spiegare una tecnica informatica.

In particolare, vedremo come in un progetto di tipo “Windows Forms”, con il linguaggio di programmazione C# e la versione del Framework .Net 10, si poss inserire in un file immagine un documento Microsoft Word, di tipo docx.


Creazione del progetto

Si crea un nuovo progetto di tipo Windows forms, con l’ultima versione del Framework, nel momento in cui stiamo scrivendo, è la versione 10.

Una volta caricato il progetto, aggiungiamo due controlli di tipo “Button”, in uno impostiamo la proprietà “Name” con il valore “BtnNascondi”, e la proprietà “Text” con il valore “Nascondi”, in un altro  controllo impostiamo la proprietà “Name” con il valore “BtnEstrapola” e la proprietà “Text” con il valore “Estrapola”.

Si crea un documento Microsoft Word, aggiungendo del testo e si salva in una cartella ben precisa. Nel nostro caso si troverà nella cartella denominata “Varie”. Si copia, o qualora non si ha a disposizione un file immagine di tipo “Png”, se ne crei uno, e si salva nella cartella “Varie”. La parte della creazione del progetto e dei file è terminata, non resta che scrivere il codice per nascondere l’immagine nel file immagine e per estrapolarlo dal file immagine.


Stesura del codice

Passiamo in visualizzazione codice della form, in un punto dentro classe “Form”, scriviamo una funzione, che dati tre parametri, quali, percorso e nome del file word, percorso e nome del file png, e percorso e nome del nuovo file, crei una nuova immagine png con il file word al suo interno.

Questa funzione manterrà in alterata la resa dell’immagine, senza perdere nitidezza.

Dopo aver letto lo stream byte dei due file presenti, effettuerà la creazione di un nuovo file, mettendo lo stream dati del file word alla fine dello stream dati del file immagine di tipo “png”.

Di seguito si riporta la funzione delle suddette operazioni nel linguaggio di programmazione C#


C#

private void NascondiDocxInPng(string pathImmaginePng, string pathDocx, string pathNuovoFilePng)

{

    try

    {

 

 

        //Rilevo i byte del file immagine e del file doc

        byte[] pngBytes = File.ReadAllBytes(pathImmaginePng);

        byte[] docxBytes = File.ReadAllBytes(pathDocx);

 

        //Marcatore per ritrovare il file dopo. 16 byte a caso

        byte[] marcatore = { 0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE,

                 0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE };

 

        //Creo il nuovo file unendo i due array byte

        using (FileStream fs = new FileStream(pathNuovoFilePng, FileMode.Create))

        {

            fs.Write(pngBytes, 0, pngBytes.Length);

            fs.Write(marcatore, 0, marcatore.Length);

            fs.Write(BitConverter.GetBytes(docxBytes.Length), 0, 4);

            fs.Write(docxBytes, 0, docxBytes.Length);

        }

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore: " + ex.Message);

    }

}


Passiamo in visualizzazione grafica e facciamo doppio click sul pulsante “BtnNascondi”, quello con la proprietà “Text” impostato su Nascondi, in modo da passare in visualizzazione codice nell’evento click del pulsante.

In questo evento verrà richiamata la funzione appena creata, passando i file word esistente, il file png esistente, ed il nuovo file immagine di tipo png, che conterrà al suo interno il file di Microsoft Word.

Di seguito si riporta il frammento di codice delle suddette operazioni.

C#

private void BtnNascondi_Click(object sender, EventArgs e)

{

    NascondiDocxInPng(@"C:\varie\picchio.png", @"C:\varie\documento.docx", @"C:\varie\nuovaImmagine.png");

}


Una volta creato il file, dobbiamo creare una funzione, che permette di estrapolare dal file immagine il contenuto salvato.

Passiamo visualizzazione codice, e nella classe della form, in un qualunque parte, meglio se sotto la funzione creata in precedenza, scriviamo la funzione per l'operazione di estrazione. In particolare questa funzione permetterà di estrapolare il file Microsoft Word, salvato nel file png, che abbiamo creato in precedenza.

La funzione si aspetta due parametri, uno riguardante il percorso e nome del file png dal quale estrapolare il file Word, ed un parametro, con il nome e percorso nel file Word, che andremo a creare.

La funzione chiamerà un’altra funzione, per trovare l’indice in cui si trova il mercato, ed iniziare da quel punto, il rilevamento dei byte per la creazione del file Microsoft Word.

Di seguito si riporta la funzione per rilevare l’indice del marcatore nel file png.

C#

private int IndexOf(byte[] arrayBytePng, byte[] marcatore)

{

    for (int i = 0; i < arrayBytePng.Length - marcatore.Length; i++)

    {

        bool trovato = true;

        for (int j = 0; j < marcatore.Length; j++)

        {

            if (arrayBytePng[i + j] != marcatore[j]) { trovato = false; break; }

        }

        if (trovato) return i;

    }

    return -1;

}

 



Dopo aver creato la funzione per rilevare l’indice del marcatore, occorre creare una funzione che rileva l’array dei byte presenti nel file png riguardante il file Microsoft Word, e successivamente crea il file Word.

Di seguito si riporta la funzione per estrapolare l’array byte e creare il file Word.


C#

private void EstraiDocxDaPng(string pathPngConDocx, string pathOutputDocx)

{

    try

    {

 

 

        byte[] tuttiBytes = File.ReadAllBytes(pathPngConDocx);

        byte[] marcatore = { 0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE,

                 0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE };

 

        //Trova il marcatore

        int posizione = IndexOf(tuttiBytes, marcatore);

        if (posizione == -1) throw new Exception("Nessun file trovato");

 

        posizione += marcatore.Length;

        int dimensioneDocx = BitConverter.ToInt32(tuttiBytes, posizione);

        posizione += 4;

 

        byte[] docxBytes = new byte[dimensioneDocx];

        Array.Copy(tuttiBytes, posizione, docxBytes, 0, dimensioneDocx);

        File.WriteAllBytes(pathOutputDocx, docxBytes);

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore: " + ex.Message);

    }

}




Passiamo in visualizzazione grafica e facciamo doppio click sul pulsante quello per estrapolare il file word dal file immagine, nominato in precedenza con il valore “BtnEstrapola”, in questo modo passiamo in visualizzazione codice dell’evento click

In questo evento richiamiamo la funzione, passando come parametro il percorso e nome dell’immagine png contenente il file, ed un altro parametro indicando il percorso e nome del file Microsoft Word che verrà generato.

Di seguito si riporta il frammento di codice delle suddette operazioni.



C#

private void button1_Click(object sender, EventArgs e)

{

    EstraiDocxDaPng(@"C:\varie\ nuovaImmagine.png", @"C:\varie\NuovoDocumento.docx");

}







Conclusioni

L’articolo ha voluto fornire al lettore, una tecnica per inserire in un file png un file di tipo Microsoft Word, inoltre è stata illustrata la tecnica per estrare il elativo contenuto.

Si fa presente che in caso che il file venga convertito in altro formato, quale jpg, si perderà la possibilità di estrare il file Microsoft Word. Possiamo inserire anche altre tipi di file, Microsoft Excel testo, ed altro ancora.