lunedì 18 marzo 2024

Download The Bridge

 



Disponibile gratuitamente e senza limitazioni il gioco di rompicapo The Bridge in lingua italiana.

Il gioco per sistemi operativi Windows, adatto a tutta la famiglia.

Fino al 21 marzo 2024 si potrà scaricare gratuitamente dopo tale data, il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito https://store.epicgames.com/it/p/the-bridge

Angular mat-select change event

Quando si utilizza Angular Material, in particolare il controllo della casella combinata mat-select, può tornare utile gestire l'evento che viene sollevato nel momento in cui si cambia l'elemento nella selezione.
L'evento per gestire la selezione degli elementi è (selectionChange). Di seguito si riporta un frammento di codice.

HTML:
 <mat-select  (selectionChange)="NomeEventoChange($event.value)"    >
             

TypeScript:

NomeEventoChange(value)
     {
            console.log(value); //Valore dell'elemento selezionato, id per esempio
           
     }

domenica 17 marzo 2024

C# lambda numero elevato al quadrato

Il frammento di codice di seguito, illustra una tecnica di utilizzo lambda con il linguaggio C# per elevare una serie di numeri al quadrato, ossia moltiplicare il numero per se stesso.

 private void BtnLambdaMoltiplicazione_Click(object sender, EventArgs e)
 {
     int[] numeri = { 4, 5, 7, 9 };
     var numeriAlQuadrato = numeri.Select(x => x * x);
     foreach (var elemento in numeriAlQuadrato)
     {
         MessageBox.Show(elemento.ToString()); //16, 25, 49, 81
     }      
 }

sabato 16 marzo 2024

Download Deus Ex: Mankind Divided

 




Il gioco Deus Ex: Mankind Divided, è un videogioco per sistemi operativi Windows per un pubblico maggiorenne, di guerra.

Il gioco è in lingua italiana ed offre una grafica molto accurata e ben dettagliata.

Fino al 21 marzo 2024 si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito https://store.epicgames.com/it/p/deus-ex-mankind-divided-4c6370 

download programma gratuito per la gestione delle immagini digikam

 


Un programma gratuito per gestire le immagini ma soprattutto le fotografie, parliamo di Digikam, scaricabile qui https://www.digikam.org/ un software gratuito ed open source, molto ben fatto.


venerdì 15 marzo 2024

Angular mat-select click event

Se abbiamo esigenza di gestire l'evento click del controllo Mat-select, la combobox di Angular Material, dobbiamo definirlo con la parola chiave click.

Di seguito il frammento di codice:

Html
 <mat-select (click)="MioEvento()"

TypeScript:
initForm2() {
//Codice
}

giovedì 14 marzo 2024

download programma creazione chm con Dr.Explain

 


Il software Dr.Explain https://www.drexplain.com/ permette la creazione di file chm, questi file sono da utilizzare come guida nelle proprie applicazioni.

Il programma è in lingua inglese ed è gratuito.

Qui https://www.drexplain.com/press/articles/how_to_create_help_files_for_net_c_application_in_dr_explain/ si trova un tutorial sulla creazione ed utilizzo di file guida di tipo .chm.

mercoledì 13 marzo 2024

Angular mat-select event click

Quando si utilizza Angular Material, può tornare utile gestire il click nel controllo di tipo mat-select, il controllo della casella combinata.

Di seguito si riporta un esempio di tale utilizza che richiama una funzione nel file "TypeScript".

 <mat-select   [(ngModel)]="VariabileValore" name="NomeControllo" (click)="Metodo()"  >

martedì 12 marzo 2024

Download gioco Phantom Blade: Executioners

 



Disponibile gratuitamente e senza limitazioni il gioco di azione Phantom Blade Excecutioners per sistemi operativi Windows.

Il gioco offre una grafica e giocabilità molto interessante.

Per maggiori informazioni e download visitate il seguente sito https://store.epicgames.com/it/p/phantom-blade-executioners-918ac0

domenica 10 marzo 2024

C# creazione di un grafico a torta con legenda in .Net 8

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_csharp-creazione-di-un-grafico-a-torta-con-legenda_1854.aspx


Nella creazione di progetti di tipo Windows Forms, può essere necessaria la creazione di applicazioni che fanno uso dei grafici, tutto questo era possibile fino alla versione del Framework 4.8 ma dalla versione 5 di .Net non sono più presenti i controlli chart per Windows forms.
In questo articolo vedremo come creare un grafico a torta utilizzando le classi di messe a disposizione da .Net 8 con il linguaggio di programmazione C# e l’ambiente di sviluppo Visual Studio 2022 Community.
Verrà illustrata una tecnica per la creazione di grafici a torta, con una legenda che illustra a cosa sono riferiti i vari colori e quindi fette, il tutto come mostrato in figura 1.




Figura 1 – Il grafico a torta con legenda

Nell'articolo inoltre sarà fornito anche un esempio di come esportare il grafico in formato immagine di tipo .Jpg


Creazione del progetto

Si crea un nuovo progetto di tipo Windows Form selezionando come modello di progetto “App Windows Forms” , fare click sul pulsante “Avanti” e nella finestra successiva impostare un nome al progetto, continuando con la finestra successiva selezionare l’ultima versione del Framework, in questo momento in cui si stiamo scrivendo l’articolo la versione è la 8.
Dopo aver fatto crea, verrà visualizzata una form, inserite un pulsante e nella proprietà “Name” impostare il valore “BtnSalva” mentre per la proprietà “Text” impostare il valore “Salva”.
A questo punto la creazione del progetto è terminata


Stesura del codice

Terminata la preparazione del progetto non resta che scrivere il codice. Passiamo in visualizzazione codice ed in una qualsiasi parte della classe “form” scriviamo una funzione che sarà richiamata dall’evento “Paint” del form e dall’evento click del pulsante, per la creazione del grafico o del file grafico.
La funzione accetterà diversi parametri, quali un oggetto Graphics per la creazione del grafico, un oggetto rect per la creazione dell’area dove creare il grafico, una variabile di tipo array float per i dati corrispondente ad ogni fetta, un array di tipo colors per il colore dei vari elementi ed infine un array di tipo string con le voci per ogni elemento.
Di seguito si riporta la funzione per la creazione del grafico.


C#

        private void CreaGrafico(Graphics g, Rectangle rect, float[] dati, Color[] colori, string[] testoValori)

        {

 

            // Calcola la somma totale dei valori

            float totale = dati.Sum();

 

            // Inizializza l'angolo di partenza per la creazione della forma del grafico

            float angoloPartenza = 0;

 

            // Disegna ogni fetta del grafico a torta

            for (int contaElementi = 0; contaElementi < dati.Length; contaElementi++)

            {

                // Calcola l'angolo di spostamento per il valore corrente per ogni fetta

                float angoloFetta = dati[contaElementi] * 360 / totale;

 

                // Disegna la fetta del grafico a torta

                g.FillPie(new SolidBrush(colori[contaElementi]), rect, angoloPartenza, angoloFetta);

 

                // Aggiorna l'angolo di partenza

                angoloPartenza += angoloFetta;

            }

 

            // Disegna la legenda

            for (int ContaElementi = 0; ContaElementi < testoValori.Length; ContaElementi++)

            {

                // Disegna il simbolo della legenda

                g.FillRectangle(new SolidBrush(colori[ContaElementi]), rect.Right + 10, rect.Top + ContaElementi * 20, 10, 10);

 

                // Disegna il testo della legenda

                g.DrawString(testoValori[ContaElementi], new Font("Arial", 12), Brushes.Black, rect.Right + 25, rect.Top + ContaElementi * 20);

            }

 

 

 

        }





Come si è visto nel precedente esempio, tramite i metodi fillPie, fillRectangle, DrawString possiamo creare un grafico a forta con vari colori, il tutto gestendo le informazioni che passiamo alla funzione.

Ora dobbiamo visualizzare il grafico nella form, questo avviene richiamando la funzione precedentemente creata, possiamo eseguire la funzione nell’evento “Paint” della nostra form. 
Nell’evento Paint passeremo alla funzione un oggetto di tipo grafico per gestire il disegno, un oggetto rettangolo per impostare l’area, l’array dei dati , l’array di tipo testo che sarà utilizzato per la legenda ed un array di color per i vari colori.

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



C#

private void Form1_Paint(object sender, PaintEventArgs e)

{

    // Crea un oggetto grafico

    Graphics g = this.CreateGraphics();

 

    // Crea un array di dati

    float[] dati = { 10, 20, 30, 40 };

    string[] leggenda = { "Gennaio", "Febbraio", "Marzo", "Aprile" };

    //Oggetto per i colori di ogni fetta

    Color[] colori = { Color.Red, Color.Blue, Color.Green, Color.Yellow };

    //L'area di disegno

    Rectangle rectangle = new(100, 100, 200, 200);

    //Eseguo la funzione

    CreaGrafico(g, rectangle, dati, colori, leggenda);

            

}






A questo punto la stesura del codice per la creazione del grafico a torta con legenda è terminato, non resterà che eseguire il nostro progetto per vedere il risultato simile alla figura 1.

Salvataggio del grafico in formato immagine

Nel caso che si desidera salvare il grafico in un file di tipo immagine, dobbiamo passare all’oggetto  Graphics un oggetto di tipo Bitmap, il quale tramite il metodo “Save” salverà il grafico in un file immagine.
Passiamo in visualizzazione grafica della form e facciamo doppio click sul pulsante, in questo modo viene visualizzata la modalità codice per l’evento click del pulsante.
Di seguito si riporta il frammento di codice delle suddette operazioni per il salvataggio del grafico.



C#

private void BtnSalva_Click(object sender, EventArgs e)

{

    // Crea un oggetto di tipo Bitmap per salvare l'immagine

    Bitmap bmp = new Bitmap(800, 600);

 

    // Crea un nuovo oggetto Graphics dal Bitmap

    Graphics g = Graphics.FromImage(bmp);

    float[] dati = { 10, 20, 30, 40 };

    string[] leggenda = { "Gennaio", "Febbraio", "Marzo", "Aprile" };

    Color[] colori = { Color.Red, Color.Blue, Color.Green, Color.Yellow };

           

    // Disegna il grafico a torta sul Graphics

    CreaGrafico(g, new Rectangle(10, 10, 100 - 20, 100 - 20), dati, colori, leggenda);

 

    // Salva l'immagine

    bmp.Save("C:\\Varie\\Grafico.png", System.Drawing.Imaging.ImageFormat.Png);

 

    // Rilascia le risorse

    g.Dispose();

    bmp.Dispose();

}





Conclusioni

L’articolo ha voluto fornire le basi per la creazione di un grafico a torta nei progetti di tipo “Windows Forms”. 
I vari esempi di codice permettono di far comprendere al lettore la possibilità di creare grafici, in particolare quelli di tipo a torta con legenda, utilizzando le classi base del Framework .Net versione 8. Di recente sono disponibili una serie di controlli gratuiti sulla creazione di grafici, ma comprendere come realizzarli utilizzando le classi per la grafica fornisce al programmatore le basi per  creare grafici con particolari funzionalità ed aspetti che in quelli presenti sul mercato  non possono avere  o creare grafici personalizzati di proprio interesse. 

sabato 9 marzo 2024

Download ebook gratuito cyberbullismo per genitori

 


Il Dipartimento delle politiche per la famiglia, ha recentemente pubblicato una notizia https://famiglia.governo.it/it/politiche-e-attivita/comunicazione/notizie/disponibile-la-guida-per-genitori-e-adulti-di-riferimento-luci-e-ombre-di-una-generazione-interconnessa-cyberbullismo-impara-a-conoscerlo/ per il download di un ebook gratuito ed in italiano sul cyberbullismo.

Un ebook per i genitori molto utile ed interessante.

L'ebook si può scaricare dal seguente sito https://famiglia.governo.it/media/lxrjo0kc/guida-per-genitori-e-adulti-di-riferimento.pdf




venerdì 8 marzo 2024

Download Astro Duel 2

 


Disponibile gratuitamente e senza limitazioni il gioco sparatutto Astro Duel 2, per sistemi operativi Windows e MacOs.

Il gioco in lingua italiana ha una grafica molto semplice, ma una valida giocabilità.

Il gioco è disponibile gratuitamente per il download fino al 14 marzo 2024 dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito https://store.epicgames.com/it/p/astro-duel-2-e1261d

giovedì 7 marzo 2024

Download Flacon programma gratuito di editing audio

 


Un software open source e gratuito per sistemi operativi Linux e MacOs per la gestione dei file audio.

Il software è molto ben fatto.

Per maggiori informazioni e download visitate il seguente sito https://flacon.github.io/

martedì 5 marzo 2024

Angular typescript map length

Nel caso che abbiamo un oggetto di tipo map e vogliamo sapere quanti elementi ha, tramite la proprietà size otteniamo il numero degli elementi.


public oggetto : Map<number, string>;
oggetto.size

lunedì 4 marzo 2024

Download ebook gratuito cuori connessi uso consapevole di internet

 


Interessante ebook quello realizzato dal sito CuoriConnessi, con il quale spiega il buon uso di internet.

Da pochi giorni rilasciato un nuovo capitolo ed aggiornamento, un ebook realizzato con la Polizia di Stato in collaborazione con Unieuro.

Il download del file in vari formati è gratuito e non richiede nessuna iscrizione o indirizzo email.

Per maggiori informazioni e download visitate il seguente sito https://www.cuoriconnessi.it/

domenica 3 marzo 2024

Corsi gratuiti di archibit




Archibit, ha organizzato una serie di corsi gratuiti per tutti coloro che sono disoccupati o inoccupati.
I corsi di vario genere riguardano temi attuali e legati alla tecnologia.
Per maggiori informazioni ed iscrizioni, visitate il seguente sito https://www.archibit.net/corsi/corsi-finanziati/corsi-finanziati-gol-regione-lazio/

error TS2307: Cannot find module 'ngx-quill'

Nell'utilizzare i vari pacchetti Angular, può capitare di avere un problema per la libreria ngx.quill, in particolare l'errore "error TS2307: Cannot find module 'ngx-quill' " .

Per risolvere il problema occorre reinstallare la libreria tramite il comando "npm i types/quill@1" una volta terminata l'installazione, tramite GIT o Source Control di Visual Studio Code, annullare le modifiche effettuate con l'installazione del precedente comando.

In questo modo è stato risolto il problema.

sabato 2 marzo 2024

Programma gratuito Trasferimento Dati iPhone

 


Interessante software per trasferire dati di un dispositivo IPhone, tramite un programma.

Può capitare di avere l'esigenza di trasferire dati da un dispositivo all'altra, tramite il software EaseUs MobiMover, scaricabile qui Software di trasferire dati tra iPhone per Windows e Mac - EaseUS® MobiMover Free , potete effettuare il trasferimento dei dati del vostro iPhone.

Per maggiori informazioni ed altro visitate il sito che è in lingua italiana.


venerdì 1 marzo 2024

Download gioco Aerial_Knight's Never Yield

 


Disponibile gratuitamente il gioco per un pubblico maggiorenne Aerial Knight's Newer Yield.

Il gioco di avventura è disponibile senza limitazioni per il sistema operativo Windows.

Fino al 7 marzo 2024 si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito https://store.epicgames.com/it/p/aerial-knights-never-yield


Software gratuito per Windows

Una lista qui di seguito di una serie di programmi gratuiti da installare ed utilizzare sul sistema operativo Windows.

Quando si acquista un nuovo pc, è necessario installare alcuni programmi di utilità quotidiana, ma che a volte non troviamo, di seguito una serie di programmi divisi per categorie:



Lettore file pdf (Adobe):

Sono programmi per aprire i file di sola lettura di Adobe, quelli con estensione "pdf".

Di seguito la lista:

 

Adobe: Programma gratuito per la lettura e compilazione dei moduli dei file Pdf. Download qui https://get.adobe.com/it/reader/




Office Automation: 

Sono programmi che offrono la possibilità di una gestire vari tipologie di file quali video scrittura per la stesura delle lettere, foglio di calcolo per operazioni di contabilità e matematici, presentazioni e tanto altro.

Di seguito la lista dei programmi gratuiti da installare uno tra quelli presenti:


Onlyoffice: https://www.onlyoffice.com/it/download-desktop.aspx?from=home-use 

Libre Office: https://it.libreoffice.org/ 

Sono entrambi molto validi, anche se OnlyOffice offre qualcosa in più.


Office online: Suite di Microsoft, gratuita se utilizzata con un account gratuito Microsoft quale indirizzo email outlook o altri. www.outlook.it per accedere.



Navigazione internet browser:

Programmi che permettono di navigare in internet, ossia aprire i vari siti.

Da installare uno o più di uno dall'elenco qui di seguito:

Browser Chromehttps://www.google.com/intl/it_it/chrome

Posta elettronica:

em client Migliore Client di posta elettronica per Windows e Mac (emclient.com)


Grafica:

Programmi per la modifica di immagini o creazione di immagini.

Da installare uno o più dall'elenco qui di seguito in base alle proprie esigenze.


Paint.Net: programma di grafica: Un programma gratuito con codice sorgente, per realizzare immagini anche professionali https://www.getpaint.net/index.html 



Teleassistenza:

Programmi che permettono di collegarsi ad altro pc, per offrire assistenza o prendere il controllo da remoto, permette di vedere cosa accade in un altro pc che è collegato.

Da installare uno dall'elenco qui di seguito.

TeamViewerhttps://www.teamviewer.com/it/


Supremo: https://www.supremocontrol.com/it/



Opzionali.


VPN:

Sono programmi che permettono di avere più sicurezza su internet, e sono utili per nascondere il proprio indirizzo ip.


Avira VPN https://www.avira.com/it/free-vpn

Sicurezza del pc:

Programmi che permettono di proteggere il proprio pc.

Avira free Security https://www.avira.com/it/free-security

Pulizia Adware

AdwCleaner - Strumento gratuito di pulizia e rimozione adware | Malwarebytes https://it.malwarebytes.com/adwcleaner/

Protezione Malware https://www.iobit.com/it/malware-fighter.php

Software anti malware e antivirus gratis per pc windows e sicurezza pc| IObit Malware Fighter | IObit

Video Editing

Vimix

https://brunoherbelin.github.io/vimix/

Audio Editing

Ardour

https://ardour.org/





giovedì 29 febbraio 2024

C# funzione Lambda con parametro di default

Una delle tante novità nel linguaggio C# 12 e versione Framework .Net 8 è quella di utilizzare nelle funzioni lambda il parametro di default.

Di seguito una funzione lamba che viene richiamata con un valore per il parametro default e senza valore per il parametro default.

 var risultato = (string testo, string secondoTesto, string separatore = "-") =>
     {
         return string.Join(separatore, testo, secondoTesto);
     };
 MessageBox.Show(risultato("Testo", "Testo2"));
 MessageBox.Show(risultato("Testo", "Testo2", "/"));

mercoledì 28 febbraio 2024

Entity Framework multi insert C#

Di seguito si riporta un frammento di codice con il linguaggio di programmazione C# per l'inserimento di più record con Entity Framework, utilizzando il metodo AddRange.

 try
 {
     using (var contesto = new DatiContext())
     {
         var nominativi = new List<Anagrafica>()
         {
             new() { Cognome="Rossi", Nome = "Mario" },
             new() {Cognome="Bianchi", Nome="Gianni"},
             new() {Cognome = "Maffei", Nome = "Marco"}
         };
         contesto.AddRange(nominativi);
         contesto.SaveChanges();
     }


 }
 catch (Exception ex)
 {
     MessageBox.Show("Errore: " + ex.Message);
 }

martedì 27 febbraio 2024

Sito di creazione di immagini con l'intelligenza artificiale

 



Sono tanti i siti di intelligenza artificiale che in questi mesi sono stati creati, tra questi molti sulla creazione di immagine.

Segnalo il seguente https://www.artguru.ai/it/ in lingua italiana sulla creazione di immagine tramite intelligenza artificiale.


lunedì 26 febbraio 2024

strumento online per la rimozione dello sfondo tramite Intellligenza artificiale

 


Il seguente sito https://www.fotor.com/it/features/background-remover offre un servizio gratuito senza richiedere registrazione ed email, per rimuovere lo sfondo dalle immagini.-

Il sito in lingua italiana, utilizza l'intelligenza artificiale. Molto valido.


domenica 25 febbraio 2024

Libreria gratuita per la scansione dei documenti Ntwain

Per chi deve aggiungere funzionalità di scansione documenti tramite scanner, può tornare utile la seguente libreria Ntwain.

Qui soukoku / ntwain — Bitbucket e qui GitHub - soukoku/ntwain: A TWAIN lib for dotnet. alcuni riferimenti.





sabato 24 febbraio 2024

Download gioco gratuito Dragonheir: Silent Gods

 


Disponibile gratuitamente e senza limitazioni il gioco di combattimento Dragonheir Silent Gods, per sistemi operativi Windows.

Per il download e maggiori informazioni, visitate il seguente sito https://store.epicgames.com/it/p/dragonheir-silent-gods-559a4c

venerdì 23 febbraio 2024

Angular mat-option set style disabled

Qualora si ha la necessità di impostare ad un controllo mat-optional uno stile quando è disabilitato il controllo, occorre impostare nel file di tipo ".scss" l'ovveride dello stile quando è disabilitato.

Di seguito il frammento di codice di tale modifica.



.mat-select-disabled {
    ::ng-deep .mat-select-value {
      color:  hwb(352 8% 4%) !important;
    }
}

giovedì 22 febbraio 2024

Recensione libro Python per Data Science

 




La scheda del libro:

Editore:                  Tecniche Nuove

Prezzo:                  € 33,16

Caratteristiche:                  232 pag - 17 x 24 cm Rilegatura Brossura

ISBN:          978-88-481-4654-8

Anno di edizione:          11/2023

Numero dell'edizione:  1


In quest’ultimi anni il linguaggio di programmazione Python ha trovato sempre più interesse da parte di persone che lavorano nel settore dell’informatica o in quelli interessati alla programmazione. Un linguaggio multi piattaforma che si può utilizzare in vari sistemi operativi o anche dispositivi come le schede programmabili Raspberry.

Il libro Python per Data Science https://www.tecnichenuove.com/libri/python-per-data-science edito della casa editrice tecniche nuove https://www.tecnichenuove.com fornisce una panoramica molto esaustiva e completa sull’utilizzo di questo linguaggio di programmazione in ambito della gestione dei dati.

Tantissimi gli esempi di codice che illustrano varie tecniche per gestire i dati e di come rilevare importanti informazioni durante le varie operazioni di codice estrapolando analisi molto affidabili ed anche complesse.

Nonostante possono sembrare poche le circa 230 pagine, in realtà ogni pagina offre una serie di esempi di codice, che forniscono al lettore informazioni esaurienti e dettagliate dell’argomento trattato.

I primi due capitoli avvicinano il lettore alla gestione dei dati, in particolar modo agli array, una tecnica usata in molti linguaggi di programmazione.

Nel capitolo terzo vengono illustrate alcune librerie gratuite per gestire dati di una certa rilevanza, ma soprattutto fornire una valida conoscenza.

Nel quarto capitolo l’autore inizia a fornire quelle basi essenziali per realizzare applicazioni di un certo livello ma soprattutto nell’attingere le informazioni, in particolare numerosi esempi di codice per gestire i file e le richieste web, le famose webapi.

Un capitolo importante è il quinto, che tratta un tema indispensabile e che troviamo in tutti i linguaggi di programmazione, la gestione di una base dati. In questo capitolo troviamo tanti esempi e tanti scenari di come gestire i dati tramite una fonte dati.

Il sesto e settimo capitolo sono simili, forniscono al lettore la gestione dei dati in ambito aggregativa e di raggruppamento nel gestire più informazioni da più ambiti.

L’ottavo capitolo fornisce una panoramica sui grafici, fornendo al lettore esempi e librerie per la rappresentazione grafica dei dati sottoforma di alcuni modelli come a torta, pila o lineare.

Il capitolo nono, se pur molto breve, affronta un tema che difficilmente viene illustrato in altri linguaggi di programmazione, l’utilizzo dei dati in ambito geografico, per rilevare determinate luoghi e posizioni partendo dalle varie coordinate ed informazioni.

Nel capitolo decimo l’autore illustra come rilevare informazioni utili in ambito di gestione del tempo, nel calcolare le varie differenze.

Il penultimo capitolo, l’undicesimo, fornisce informazioni di base sull’associazione dei dati e di come rilevare informazioni utili in base alle varie interrogazioni sui dati presenti.

Il dodicesimo ed ultimo capitolo, tratta un tema che in questi ultimi due anni è di grande attualità, il machine learning, l’apprendimento automatico. Il capitolo vuole avvicinare il lettore a questa nuova gestione dei dati, il quale tema va approfondito visto la complessità dell’argomento trattato. Questo capitolo fornisce una  valida e chiara introduzione a questo nuovo ambito, fornendo un punto di partenza per approfondire successivamente.


Conclusioni

Un libro molto ben fatto ed in lingua italiana che fornisce una panoramica completa ed esaustiva sull’utilizzo di questo linguaggio in ambito di analisi dei dati. Il libro è adatto a chi già utilizza il linguaggio di programmazione Python e comunque a chi ha una certa dimestichezza o formazione di base su questo linguaggio, in quanto molti aspetti si danno per scontato.

Il tema affrontato che se pur complesso viene illustrato in maniera molto semplice, dando così a tutti la possibilità di avvicinarsi a questo ambito.  Un libro consigliatissimo e che non deve mancare nella libreria di un buon programmatore Python. 

mercoledì 21 febbraio 2024

angular material custom style textarea when disabled

Nel caso che vogliamo applicare uno stile ad un controllo textarea disabilitato in Angular Material, dobbiamo applicare uno stile nel file scss.
Lo stile dovrà essere applicato in maniera di ovveride permettendo di sovrascrivere la formattazione di default.

Di seguito un esempio di come applicare un determinato stile (grassetto e colore verde) quando il controllo TextArea è disabilitato.



.mat-input-element:disabled{
    color:  hsl(102, 84%, 45%) !important;
    font-weight: bold !important;

}

martedì 20 febbraio 2024

Tutorial TypeScript : Parte quarta - gli array

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/javascript/art_parte-quarta-gli-array_1853.aspx


In questo nuovo articolo del tutorial sul linguaggio di programmazione TypeScript, vedremo l’utilizzo degli array, variabili ed oggetti che possono avere un insieme di dati.
Gli array possono tornare utile nelle situazioni in cui dobbiamo gestire una serie di informazioni, questi dati possono essere recuperati effettuando delle ricerche all’interno della variabile stessa.
In questa quarta parte vedremo alcuni aspetti degli array, per chi già programma troverà  la sintassi molto simile ai più comuni linguaggi di programmazione.

Array di string

Di seguito si riporta un esempio di frammento di codice di array di tipo string, nel quale una variabile contiene più valori.

TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[] = ['Ema', 'Luigi', "Giulia", "Alex", "Olga", "Marco"];

 

  }

 

Come si è visto dal frammento di codice precedente, la definizione di variabile contiene le parentesi quadrate, che indicano che la variabile sarà di tipo array. A seguire viene inizializzata con dei valori tutti racchiusi in altre parentesi quadrate.
Altra modalità di dichiarazione di array, è quella di utilizzare la classe “Array” indicando il tipo di array. 
Di seguito si riporta il frammento di codice delle suddette operazioni.


TypeScript

 ngOnInit(): void {

 

     let ArrayTesto2: Array<string> = ['Ema', 'Luigi', "Giulia", "Alex", "Olga", "Marco"];

   

 

 

  }

Possiamo impostare i valori nell’array anche in un secondo momento non è obbligatorio nel momento in cui si crea la variabile. Di seguito un esempio di codice.

TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[];

    arrayTesto = ['Ema', 'Luigi', "Giulia", "Alex", "Olga", "Marco"];

  }

 

 

Array di tipo number

Le variabili o oggetti di tipo Array, possono essere numeric e di altro tipo. A titolo semplificativo si riporta un esempio  di array di tipo number che la sintassi è simile agli esempi procedenti con la sola variazione del tipo di array.

TypeScript

ngOnInit(): void {

    let ArrayNumerico: number[] = [1,2,3,4];

  }

 

Lettura dei dati 

Per rilevare il dato di un array, dobbiamo indicare l’indice dal quale vogliamo ottenere il valore, il quale viene indicato dopo il nome dell’array tra parentesi quadrate.
Di seguito si riporta un frammento di codice, con il quale viene visualizzato il dato dei primi due valori presenti nell’array.


TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[];

    arrayTesto = ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

    console.log(arrayTesto[0]);

    console.log(arrayTesto[1]);

 

  }

 

Come si è visto dal precedente codice, i valori che verranno visualizzati sono “Ema” e “Luigi”, si fa presente che l’indice 0, è il primo elemento dell’array.
Gli array partono da 0, per coloro che utilizzano altri linguaggi di programmazione, tipo C# e Java troveranno similitudine.
Il rilevamento di uno o più valori può avvenire come spesso si verifica nella scrittura dei programmi, nei cicli for.
Di seguito si riporta un frammento di codice delle suddette operazioni.

TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[];

    arrayTesto = ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

    for (var elemento of  arrayTesto) {

      console.log(elemento);

 

    }

 

  }

 




Tramite il metodo “Push” possiamo aggiungere elementi all’array, in modo che in determinate punti del codice o su determinate condizioni possiamo aggiungere valori al nostro array.
Di seguito si riporta un frammento di codice nel quale aggiunge ad un array di tipo string, un altro elemento string.

TypeScript

ngOnInit(): void {

 

    let arrayTesto: string[];

    arrayTesto = ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

    arrayTesto.push("Alex");

    for (var elemento of  arrayTesto) {

      console.log(elemento);

 

    }

 

  }

 

Array bidimensionali 

Gli array, possono essere anche a due dimensioni, ossia avere una coppia di valori. 
Di seguito si riporta un frammento di codice, che illustra la creazione di un array bi dimensione di tipo string.



TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[][] = [['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"],['Ema2', 'Luigi2', "Giulia2", "Pasquale2", "Olga2", "Marco2"]];

    console.log(arrayTesto[0][0]); //EMA

    console.log(arrayTesto[0][1]); // Luigi

    console.log(arrayTesto[1][0]); //EMA2

    console.log(arrayTesto[1][1]); //Luigi2

 

  }

 


Come si è visto nel frammento di codice precedente, l’array multi dimensione è dichiarato tramite le doppie parantesi quadrate.
Per rilevare un valore, dopo il nome variabile si imposta il valore per indicare di quale gruppo della multi dimensione rilevare il dato (in questo caso 0  è uguale al primo gruppo, mentre 1 al secondo gruppo) , mentre nella seconda coppia di valori, indicare l’indice (la posizione dell’elemento)  del gruppo indicato nel valore che precede.  Nell’esempio precedente, 0 è il primo elemento e 1 il secondo elemento.
Questa tecnica di avere più dimensioni per array  è poco usata nella gestione dei dati.

Metodi e proprietà Array

Nel gestire i dati presenti in un array, possiamo utilizzare vari metodi e proprietà che gli array posseggono, di seguito si riportano alcuni di essi.
Il metodo “Push” visto in precedenza, aggiunge un valore ad un array esistente.
Di seguito un esempio di codice con il quale alla lista dei nomi si aggiunge anche ‘Alex”, posizionato come ultimo elemento.

TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

    arrayTesto.push( 'Alex' );

 

     for (var elemento of  arrayTesto) {

      console.log(elemento);

 

    }

 

  }

 

La proprietà “Length” indica il numero degli elementi che sono presenti nell’array.
Di seguito il  frammento di codice dell’utilizzo della proprietà length.


TypeScript

 ngOnInit(): void {

 

    let arrayTesto: string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

   alert(arrayTesto.length); //6

 

 

  }

 

Un metodo molto interessante è il “sort” che permette di effettuare l’ordinamento dei vari elementi presenti in un array.
Di seguito si riporta un frammento di codice di tale utilizzo.


TypeScript

ngOnInit(): void {

 

    let arrayTesto: string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

    arrayTesto.sort();

    for (var elemento of  arrayTesto) {

      console.log(elemento);

 

    }

 

  }

 

Il risultato sarà come mostrato in figura 1, con gli elementi ordinati (dalla A alla Z) .


Figura 1 – L’ordinamento degli elementi all’interno dell’array.

Con il metodo “Concat” possiamo aggiungere ad un array, ulteriori elementi che possono essere presenti in altro array.
Con questo metodo, possiamo aggiungere n elementi ad un array già esistente.
Di seguito si riporta un esempio di codice, con il quale ad un array di tipo string, si aggiungono due nominativi.



TypeScript

gOnInit(): void {




    let arrayTesto: string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

    let ArrayTesto2: string[]  =  ['Ema2', 'Luigi2'];

    arrayTesto = arrayTesto.concat(ArrayTesto2);

    for (var elemento of  arrayTesto) {

      console.log(elemento);

 

    }

 

  }

 


Altro metodo che possiamo utilizzare con gli array è il ciclo foreach, che permette di scorrere tutti gli elementi.
Di seguito si riporta il frammento di codice del relativo utilizzo.


TypeScript

  ngOnInit(): void {

 

    let  arrayTesto:    string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

    arrayTesto.forEach(valore=>console.log(valore));

 

  }

 

Array Readonly 

Possiamo creare anche array di sola lettura, tramite la parola chiave readonly. 
Di seguito la dichiarazione di un array di tipo string di sola lettura.


TypeScript

let arrayTesto: readonly  string[]  =  ['Ema', 'Luigi', "Giulia", "Pasquale", "Olga", "Marco"];

 

Se proviamo ad utilizzare il metodo “Push” per aggiungere un elemento, l’ambiente di sviluppo Visual Studio Code, fornirà un errore, il tutto come mostrato in figura 2.


Figura 2 – L’errore che indica che non esiste il metodo.

Conclusioni

In questa quarta parte si è visto l’utilizzo degli array, una tecnica per la gestione di più valori in un unica variabile o proprietà, permettendo in questo modo di scorrere e gestire i vari dati.
Per chi ha già programmato con altri linguaggi, quale C# o Java o altri, troverà molto simile l’utilizzo e la sintassi. 
La tecnica di utilizzare gli array permette di esaminare e gestire i valori di tanti elementi, dando così la possibilità di ottimizzare il codice e soprattutto semplificare l’utilizzo.
Sono stati affrontati alcuni metodi di cui dispongono gli array, lasciamo al lettore di approfondire gli altri metodi ed utilizzo anche avanzato degli array, con il quale si aprono molti scenari, alcuni anche complessi.