martedì 30 luglio 2019

Nuovo portale Microsoft per trovare gli esempi della documentazione

Samples browser on docs.microsoft.com


Come riportato dalla seguente notizia https://docs.microsoft.com/it-it/teamblog/code-samples è stato pubblicato da pochi giorni, una sezione del sito Microsoft per la navigabilità degli esempi della documentazione in ambito sviluppo.
Con il nuovo portale, è possibile filtrare e cercare gli esempi della documentazione.
Qui https://docs.microsoft.com/it-it/samples/browse/ il nuovo sito degli esempi.

lunedì 29 luglio 2019

Programma gratuito portatile anti malware


Il programma gratuito Emsisoft Emergency Kit in lingua italiana, permette di effettuare la scansione del proprio pc, per la rimozione di Malware.

Il programma offre una valida interfaccia e funzionalità, ma altra particolarità e la portabilità ossia possibilità di metterlo su chiavetta ed utilizzarlo.

Il programma si può scaricare gratuitamente dal seguente sito https://www.emsisoft.com/en/home/emergencykit/ senza nessuna registrazione.


sabato 27 luglio 2019

Download gratuito immagini vettoriali

Dal seguente sito https://www.vectorjunky.com/ potete scaricare gratuitamente immagini vettoriali, anche in formato Jpeg da utilizzare per uso personale.
Il sito, in lingua inglese, offre la possibilità di cercare tramite parole chiavi, oppure cercarle in base alle categorie presente nel sito nella parte inferiore.

venerdì 26 luglio 2019

FT: Elenco delle specie delle meduse nei mari italiani

poster-meduse-focus

Un fuori tema dedicato alla stagione estiva, ed in particolar modo al mare.
Sul bellissimo sito di Focus https://www.focus.it/ambiente/animali/che-meduse-ci-sono-questanno è stato pubblicato un poster, riguardante le specie di meduse presenti nei mari italiani.
Il poster, si può scaricare gratuitamente dal sito indicato è può tornate utile sia come formato digitale e sia in formato cartaceo.
Qui https://www.focus.it/site_stored/imgs/0004/047/poster-meduse.pdf il file pdf.
Complimenti a Focus, per questa iniziativa.

giovedì 25 luglio 2019

Strumento online per rimuovere lo sfondo dalle immagini

Se state cercando un sito gratuito che permette di togliere lo sfondo dalle immagine, il seguente sito https://www.remove.bg/ in lingua inglese, fornisce uno strumento molto valido.
Dopo aver caricato l'immagine, il sito eliminerà lo sfondo dall'immagine e sarà possibile scaricarla gratuita senza indicare email o registrazione.
Per maggiori informazioni ed altro visitate il sito indicato.

mercoledì 24 luglio 2019

PHP componente gratuito per la gestione dei file PDF

Logo

Per coloro che utilizzano il linguaggio PHP segnalo questo http://www.fpdf.org/ componente gratuito per la gestione dei file PDF.

Il sito è anche il lingua italiana.

martedì 23 luglio 2019

DatagridView salvare da una colonna immagine un file sul pc tramite VB.Net e C# seconda parte

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/programmazione/art_net-datagridview-salvare-da-una-colonna-_1628.aspx


Riprendiamo la seconda parte dell'articolo riguardante l'utilizzo del controllo DatagridView con il quale andremo a salvare l'immagine presente in una colonna della griglia.
Come si vede dal frammento di codice precedente, la funzione ha tre parametri, uno di tipo image, utilizzato poi da una classe di tipo “Bitmap, due parametri di tipo int, riguardante l’altezza e larghezza, ed infine il percorso e nome file dove salvare il file, tramite la classe Bitmap.
Se passiamo in visualizzazione design, tramite la finestra delle proprietà del controllo datagrid, possiamo gestire l’evento che permette di visualizzare una finestra per indicare all’utente il percorso e nome del file che si vuole salvare sul pc.
L’evento per gestire il click all’interno della cella è “CellContentClick” se facciamo doppio click, si passerà in visualizzazione codice, a questo punto verifichiamo se la cella è vuota o no, indicando il numero di riga e numero di colonna, e poi procedere al relativo salvataggio.
Verrà creato un oggetto di tipo SaveFileDialog, con il quale andremo ad impostare alcune proprietà che permettono il salvataggio dei file in formato immagine.
Inoltre si converte il contenuto della cella qualora è valorizzato in un oggetto di tipo “Image”
Verrà richiamata la funzione per ridefinire l’immagine, in modo viene generato senza problemi.
Qui di seguito si riporta il codice delle suddette dichiarazioni.


VB.Net

Private Sub dataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataGridView1.CellContentClick

        If e.ColumnIndex = 2 Then

 

            If dataGridView1.Rows(e.RowIndex).Cells(2).Value IsNot Nothing Then

                Dim salvaFile As SaveFileDialog = New SaveFileDialog()

                salvaFile.Filter = "Immagine(.JPG)|*.jpg"

                salvaFile.Title = "Salva file sul pc"

                salvaFile.CheckPathExists = True

 

                If salvaFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                    Dim ImmagineRilevata As Image = (TryCast(dataGridView1.Rows(e.RowIndex).Cells(2).Value, Image))

                    RidefinisciImmagine(ImmagineRilevata, ImmagineRilevata.Height, ImmagineRilevata.Width, salvaFile.FileName)

                End If

            End If

        End If

    End Sub

 

 

 

 

 

 

C#

 

  private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {

            if (e.ColumnIndex == 2)

            {

                if (dataGridView1.Rows[e.RowIndex].Cells[2].Value != null)

                {

                    SaveFileDialog salvaFile = new SaveFileDialog();

                    salvaFile.Filter = "Immagine(.JPG)|*.jpg";

                    salvaFile.Title = "Salva file sul pc";

                    salvaFile.CheckPathExists = true;

                    if (salvaFile.ShowDialog()== System.Windows.Forms.DialogResult.OK)

                    {

                         

                        Image ImmagineRilevata = (dataGridView1.Rows[e.RowIndex].Cells[2].Value as Image);

 

                        RidefinisciImmagine(ImmagineRilevata, ImmagineRilevata.Height, ImmagineRilevata.Width, salvaFile.FileName);

                      

                       

                    }

                  

 

 

                }

                

               

            }

        }



Siamo giunti alla conclusione della stesura del codice, ora dovremmo scrivere le istruzioni per caricare la griglia.
Qui di seguito il codice, supponendo di avere una nostra immagine nel nostro computer.
Il frammento di codice è molto semplice, perché simula una fonte dati.
L’esecuzione del codice, avviene nell’evento Load della nostra form, naturalmente in una riga abbiamo lo stream dell’immagine, relativo ad un file che abbiamo sul nostro pc, mentre nell’altra no, per verificare se la cella è vuota oppure valorizzata.
Verrà richiamata la funzione GetImmagine, per trasformare un array byte (di solito presente in una base dati) in un classe di tipo “Image”.
Qui di seguito l’esempio di codice per entrambi i linguaggi.





VB.Net

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim ListOggetti As List(Of OggettoNuovo) = New List(Of OggettoNuovo)()

        Dim oggetto As OggettoNuovo = New OggettoNuovo()

        oggetto.nome = "Emanuele"

        oggetto.Cognome = "Mattei   "

        oggetto.Immagine = File.ReadAllBytes("D:\test.jpg")

        ListOggetti.Add(oggetto)

        oggetto = New OggettoNuovo()

        oggetto.nome = "Luigi"

        oggetto.Cognome = "Cristaldi"

        ListOggetti.Add(oggetto)

        Dim risultato = (From dati In ListOggetti Select New With {Key .Nominativo = dati.nome, Key .CognomeNominativo = dati.Cognome, Key .Foto = If(dati.Immagine Is Nothing, Nothing, getImmagine(dati.Immagine))})

        dataGridView1.RowTemplate.Height = 100

        dataGridView1.AutoGenerateColumns = False

        dataGridView1.Columns(0).ValueType = GetType(String)

        dataGridView1.DataSource = risultato.ToList()

    End Sub

 

C#

private void Form1_Load(object sender, EventArgs e)

        {

 

            List<OggettoNuovo> ListOggetti = new List<OggettoNuovo>();

            OggettoNuovo oggetto = new OggettoNuovo();

           oggetto.nome = "Emanuele";

            oggetto.Cognome = "Mattei   ";

            oggetto.Immagine = File.ReadAllBytes("D:\\test.jpg");

 

 

            ListOggetti.Add(oggetto);

            oggetto = new OggettoNuovo();

            oggetto.nome = "Luigi";

            oggetto.Cognome = "Cristaldi";

            ListOggetti.Add(oggetto);

 

            var risultato = (from dati in ListOggetti

                             select new

                             {

                                 Nominativo = dati.nome,

                                 CognomeNominativo = dati.Cognome,

                                 Foto = dati.Immagine==null?null:getImmagine(dati.Immagine)

 

                             });

            dataGridView1.RowTemplate.Height = 100;

            dataGridView1.AutoGenerateColumns = false;

            dataGridView1.Columns[0].ValueType = typeof(string);

            dataGridView1.DataSource = risultato.ToList();

           

          

 

 

 

        }





Conclusioni

L’articolo ha voluto fornire informazioni sull’utilizzo del controllo DatagridView in ambiente Windows Application, il quale si presenta in maniera semplice e flessibile sulla gestione dei dati.
Un controllo, al quale il programmatore può sfruttare le numerose funzionalità messe a disposizione ed al tempo stesso estendere quelli presenti, anche se il controllo ha numerose proprietà e funzioni.
Abbiamo voluto illustrare di come nelle nostre applicazioni di tipo gestionali possiamo offrire all’utente un’interfaccia amichevole e con la possibilità di vedere rapidamente le informazioni richieste.

Qui http://emanuelemattei.blogspot.com/2019/06/datagridview-salvare-da-una-colonna.html la prima parte di questo articolo

lunedì 22 luglio 2019

Corso gratuito di Analisti Sicurezza

Come riportato dal sito Pc Academy, qui https://lavoro.pcacademy.it/lavori/corso-gratuito-analisti-sicurezza-roma-offerta-di-lavoro-cis-170719/ la notizia di una società IT che offre la possibilità di partecipare ad un corso gratuito di sicurezza informatica.
Il corso che si terrà a Roma, copre argomenti molto interessanti e soprattutto di grande attualità fornendo ai partecipanti quella conoscenza adeguata per lavorare o migliorare la propria preparazione in ambito di sicurezza informatica.
Per maggiori informazioni ed altro visitate il sito indicato.

An unhandled exception of type 'System.PlatformNotSupportedException' occurred in Microsoft.SharePoint.dll Additional information: Microsoft SharePoint is not supported in 32-bit process. Please verify that you are running in a 64-bit executable.

Nel caso che stiamo utilizzando Visual Studio .Net per la creazione di applicazioni Windows Application per la gestione di SharePoint, può visualizzare il messaggio di errore:

"An unhandled exception of type 'System.PlatformNotSupportedException' occurred in Microsoft.SharePoint.dll

Additional information: Microsoft SharePoint is not supported in 32-bit process. Please verify that you are running in a 64-bit executable."

Questo è dovuto, perchè la compilazione è impostata su "AnyCPU" .
Per risolvere il problema, andate nella proprietà del progetto, nella voce "Compila" o "Build" e nell'elenco TargetCPU o Platform target selezionare il valore "x64" .




domenica 21 luglio 2019

Rilasciata la nuova versione di ML.NET 1.2




Come riportato dal seguente post https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-2-and-model-builder-updates-machine-learning-for-net/ da qualche giorno è stata rilasciata la nuova versione del Framework per l'intelligenza artificiale ML.Net.
La versione appena rilasciata è la 1.2, nel post tutte le informazioni, mentre qui https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet per iniziare ad utilizzarlo.

sabato 20 luglio 2019

3000 di questi post

Con il post di ieri, ho toccato quota 3.000.
Da quando è nato il blog, che ho curato in questi 12 anni, e continuo a farlo con piacere e voglia di informare sulla tecnologia e non solo, tra articoli, notizie, siti e vita privata sono arrivato a quota 3 000 pubblicazioni.
Tante, molte, ma che mi fanno capire come è importante questo luogo virtuale.
Spesso il mio blog mi è tornato utile per lavoro nel reperire quelle informazioni che mi servivano, non solo per altri quindi, ma anche per me con esempi di codice che a volte devo ripetere.
Spero e mi auguro di continuare, e soprattutto inserire ulteriori argomenti.