domenica 15 gennaio 2012

Introduzione a Linq VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_introduzione-a-linq-vbnet-e-c_1127.aspx





Introduzione
In questo articolo vedremo le basi della tecnologia Linq, per i linguaggi VB.Net e C#, tutti gli esempi si possono utilizzare con la versione 4 del framework.



Stesura di codice
Qui di seguito si riportano i vari esempi di LINQ, il più comune è la select, ossia l’estrapolazione dei dati.
Prima di utlizzare le varie funzioni, si devono creare due classi, su cui poter effettuare dei test.
Qui di seguito si riportano le classi di nome Editore e Libri.



VB.Net



Public Class Libro



Public ID As Integer



Public titolo As String



End Class







Public Class Editore



Property id As Integer



Property Categoria As String



End Class





C#



public class Libro



{





public int ID { get; set; }



public string titolo { get; set; }





}







public class Editore



{



public int id { get; set; }





public string Categoria { get; set; }



}





Dopo aver creato le classi, bisogna creare le funzioni per il caricamento dei dati, ossia due funzioni, che restituiscono una lista di oggetti, in modo che possiamo effettuare le query tramite linq.







VB.Net



Private Function CaricaEditore() As List(Of Editore)



Dim editor As New Editore()



Dim listEditore As New List(Of Editore)



editor.id = 1



editor.Categoria = "Romantici"



listEditore.Add(editor)



editor = New Editore()



editor.id = 2



editor.Categoria = "Avventura"



listEditore.Add(editor)



editor = New Editore()



Return listEditore



End Function





Private Function CaricaLibri() As List(Of Libro)



Dim libro As New Libro()



Dim listLibro As New List(Of Libro)



libro.ID = 1



libro.titolo = "Il principe"



listLibro.Add(libro)



libro = New Libro()



libro.ID = 2



libro.titolo = "Il vento"



listLibro.Add(libro)



libro = New Libro()



libro.ID = 1



libro.titolo = "Il re"



listLibro.Add(libro)



Return listLibro



End Function







C#



private List<Editore> CaricaEditore()



{



Editore editor = new Editore();



List<Editore> listEditore = new List<Editore>();



editor.id = 1;



editor.Categoria = "Romantici";



listEditore.Add(editor);



editor = new Editore();



editor.id = 2;



editor.Categoria = "Avventura";



listEditore.Add(editor);



return listEditore;



}





private List<Libro> CaricaLibri()



{



Libro libro = new Libro();



List<Libro> listLibro = new List<Libro>();



libro.ID = 1;



libro.titolo = "Il principe";



listLibro.Add(libro);



libro = new Libro();



libro.ID = 2;



libro.titolo = "Il vento";



listLibro.Add(libro);



libro = new Libro();



libro.ID = 1;



libro.titolo = "Il re";



listLibro.Add(libro);



return listLibro;





}





Terminata la parte riguardante i dati, per la relativa manipolazione, vediamo come estrapolare i dati.
Tramite la select, visualizziamo a video tutti i dati.



Qui di seguito si riporta un esempio di Select per il linguaggio VB.Net e C#




VB.Net



Private Sub BtnSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSelect.Click





Dim listEditore = CaricaEditore()



Dim editori = From elemento In listEditore



Select elemento





For Each elemento In editori



MessageBox.Show("Categoria: " & elemento.Categoria)





Next



End Sub





C#



private void BtnSelect_Click(object sender, EventArgs e)



{





var listEditore = CaricaEditore();





var editori = from elemento in listEditore



select elemento;



foreach (var elemento in editori)



{



MessageBox.Show("Categoria: " + elemento.Categoria);



}



}







Se invece vogliamo estrapolare i dati utilizzando un certo criterio, come nelle istruzioni Sql, dobbiamo utilizzare la parola chiave “Where”, qui di seguito si riporta un esempio.




VB.Net



Private Sub BtnWhere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnWhere.Click



Dim listEditore = CaricaEditore()



Dim editori = From elemento In listEditore



Where elemento.id = 1



Select elemento





For Each elemento In editori



MessageBox.Show("Categoria: " & elemento.Categoria)



Next



End Sub





C#



private void BtnWhere_Click(object sender, EventArgs e)



{



var listEditore = CaricaEditore();





var editori = from elemento in listEditore



where elemento.id == 1



select elemento;



foreach (var elemento in editori)



{



MessageBox.Show("Categoria: " + elemento.Categoria);



}



}



Mentre se vogliamo raggruppare i dati in base ad un determinato campo, come potrebbe avvenire in Sql, anche qui possiamo utilizzare la parola chiave “Group”.



Si riporta un esempio di codice in cui si crea un alias di nome count, in cui si trova il totale dei singoli raggrupamenti, qui un esempio per entrambi i linguaggi.



VB.Net



Private Sub BtnGrouping_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGrouping.Click



Dim listLibri = CaricaLibri()



Dim risulLibri = From elementi In listLibri



Group By elementi.ID Into gruppi = Group, Count()





For Each elemento In risulLibri





MessageBox.Show("Codice: " & elemento.ID.ToString() + " Count: " & elemento.Count.ToString())





Next





End Sub





C#



private void BtnGrouping_Click(object sender, EventArgs e)



{





var listLibri = CaricaLibri();



var risulLibri = from elementi in listLibri



group elementi by elementi.ID into gruppi



select new { CodiceID = gruppi.Key, count = gruppi.Count() };







foreach (var elemento in risulLibri)



{



MessageBox.Show("Codice: " + elemento.CodiceID + " Count: " + elemento.count);



}





}





Mentre se vogliamo ottenere il dato che ha il valore maggiore, utilizziamo la parola chiave “Max”
Qui di seguito si riporta un esempio per entrambi i linguaggi.




VB.Net



Private Sub BtnMax_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMax.Click



Dim listLibri = CaricaLibri()



Dim risulLibri = From elementi In listLibri



Select elementi



MessageBox.Show("MAX: " + risulLibri.Max(Function(m) m.ID).ToString())





End Sub





C#



private void BtnMax_Click(object sender, EventArgs e)



{



var listLibri = CaricaLibri();



var risulLibri = from elementi in listLibri





select elementi;



MessageBox.Show("MAX: " + risulLibri.Max(m => m.ID).ToString());





}



Mentre se vogliamo ottenere il dato che ha il valore minore, utilizziamo la parola chiave “Min”
Qui di seguito si riporta il codice per entrambi i linguaggi.



VB.Net



Private Sub BtnMin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMin.Click



Dim listLibri = CaricaLibri()



Dim risulLibri = From elementi In listLibri



Select elementi



MessageBox.Show("MIN: " + risulLibri.Min(Function(m) m.ID).ToString())



End Sub





C#



private void BtnMin_Click(object sender, EventArgs e)



{



var listLibri = CaricaLibri();



var risulLibri = from elementi in listLibri





select elementi;



MessageBox.Show("MIN: " + risulLibri.Min(m => m.ID).ToString());



}



Per ottenere la media dei valori, possiamo utilizzare la parola chiave “Average” che ci fornisce il valore medio di tutti dati in riferimento ad un campo.
Qui si riporta un esempio di codice.



VB.Net



Private Sub BtnMedia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMedia.Click



Dim listLibri = CaricaLibri()



Dim risulLibri = From elementi In listLibri



Select elementi



MessageBox.Show("MEDIA: " + risulLibri.Average(Function(m) m.ID).ToString())



End Sub





C#



private void BtnMedia_Click(object sender, EventArgs e)



{



var listLibri = CaricaLibri();



var risulLibri = from elementi in listLibri





select elementi;



MessageBox.Show("MEDIA: " + risulLibri.Average(m => m.ID).ToString());



}





Se invece, vogliamo effettuare una query di relazione, come spesso utilizziamo per una base dati, tramite la parola chiave “Join” possiamo “legare” due oggetti ed estrapolare i dati con i campi di entrambi.
Qui di seguito si riporta un esempio di codice per entrambi i linguaggi.




VB.Net



Private Sub BtnJoin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnJoin.Click



Dim editori = CaricaEditore()



Dim libri = CaricaLibri()



Dim dati = From elementoLibri In libri



Join elementoEditori In editori On elementoLibri.ID Equals elementoEditori.id



Select New With {elementoLibri.titolo, elementoEditori.Categoria}



For Each elemento In dati



MessageBox.Show("Titolo: " + elemento.titolo + " Categoria: " + elemento.Categoria)



Next



End Sub





C#



private void BtnJoin_Click(object sender, EventArgs e)



{



var editori = CaricaEditore();



var libri = CaricaLibri();



var dati = from elementoLibri in libri



join elementoEditori in editori on elementoLibri.ID equals elementoEditori.id



select new {elementoLibri.titolo, elementoEditori.Categoria};







foreach (var elemento in dati)



{



MessageBox.Show("Titolo: " + elemento.titolo +" Categoria: " + elemento.Categoria);



}





}





Infine l’ultimo esempio di questa introduzione, riguarda la paginazione, come estrapolare determinati dati e renderli impaginati, il tutto si ottiene prendendo un limitato numero (tramite il metodo “take”) evitando quelli precedenti (tramite il metodo “skip”)
Qui di seguito si riporta un esempio di codice




VB.Net



Private Sub BtnPaging_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPaging.Click



Dim editori = CaricaEditore()



Dim libri = CaricaLibri()



Dim dati = (From elementoLibri In libri



Join elementoEditori In editori On elementoLibri.ID Equals elementoEditori.id



Select New With {elementoLibri.titolo, elementoEditori.Categoria}).Skip(1).Take(1)



For Each elemento In dati



MessageBox.Show("Titolo: " + elemento.titolo + " Categoria: " + elemento.Categoria)



Next



End Sub





C#



private void BtnPaging_Click(object sender, EventArgs e)



{



var editori = CaricaEditore();



var libri = CaricaLibri();



var dati = (from elementoLibri in libri



join elementoEditori in editori on elementoLibri.ID equals elementoEditori.id



select new { elementoLibri.titolo, elementoEditori.Categoria }).Skip(1).Take(1);







foreach (var elemento in dati)



{



MessageBox.Show("Titolo: " + elemento.titolo + " Categoria: " + elemento.Categoria);



}



}







Conclusioni
L’articolo ha voluto fornire al lettore le basi di questa tecnologia, rilasciata dalla versione 3.5 del Framework.
Le potenzialità offerte, sono moltissime, e illustrarle tutte richiederebbe un libro o una lunga serie di articoli.
Ricordiamo che gli esempi utilizzati in questo caso, si possono utilizzare anche con una fonte dati, infatti linq, si può utilizzare con un database Sql server (linq to sql) o file xml (linq to xml) o altro.
Uno strumento in più che permette al programmatore di disporre di soluzioni potenti e flessibili.

sabato 14 gennaio 2012

sql server 2008 il salvataggio delle modifiche non è consentito. In base alle modifiche apportate è necessario eliminare e ricreare

In questi giorni, sto lavorando su un db Sql, che non usavo da diverso tempo, e precisamente la versione 2008.




Mi sono accorto, che una volta creata la tabella con i relativi campi, cambiando un campo (da chiave int a chiave int contatore ) con determinati attributi, mi dava il seguente errore.




Usando altre versioni di Sql server, non mi era capitato ciò, ma come sempre, un amico esperto di database (LB http://community.ugiss.org/blogs/lbianchi/default.aspx ) mi ha fornito la soluzione.




Per risolvere tale problema, andate nel menu Strumenti->opzioni e nella finestra che viene aperta, selezionate "Designers", nella parte destra, togliete la spunta in "Impedisci il salvataggio delle modifiche per cui è necessario ricreare la tabella"




Il consiglio però e che una volta definito il database, e riempito con i dati, i campi delle tabelle non vanno modificati. Nel mio caso, il db è uno di test usato a casa.







Un ringraziamento va al caro amico Luca Bianchi http://community.ugiss.org/blogs/lbianchi/default.aspx sempre gentile e disponibile.













Figura 1







venerdì 13 gennaio 2012

Tutorial Datagrid Silverlight parte 4 VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-silverlight-alla-scoperta-del-d_1134.aspx





Introduzione
Continua il nostro percorso alla scoperta del controllo Datagrid, di silverlight 4, illustrando questa volta, altre interessanti tecniche sulla creazione di particolare colonne per il controllo in questione.
Vedremo come creare una colonna, di tipo checkbox,.



Stesura del codice
Prendendo l’esempio del sorgente precedente, modifichiamo la classe persona, aggiungendo una proprietà di tipo boolean per gestire le informazioni per la colonna di tipo checkbox.
Come riportato qui di seguito:





VB.Net



Property Adulto As Boolean





C#



public Boolean Adulto



{



get { return _adulto; }



set { _adulto = value; }



}



Qui di seguito si riporta il codice completo della classe persona






VB.Net



Public Class Persona



Property Nome As String



Property Cognome As String





Property Data As Date





Property Adulto As Boolean





End Class





C#



public class persona



{



string _nome;



string _cognome;



DateTime _data;



Boolean _adulto;





public string Cognome



{



get { return _cognome; }



set { _cognome = value; }



}



public string Nome



{



get { return _nome; }



set { _nome = value; }



}



public DateTime Data



{



get {



return _data;



}



set { _data = value; }



}





public Boolean Adulto



{



get { return _adulto; }



set { _adulto = value; }



}





}





Ritorniamo in visualizzazione Design, modificando tramite l’editor di Visual studio 2010, il nostro controllo Datagrid, aggiungendo una nuova colonna di tipo “DataGridCheckboxColumn” ed impostando la proprietà Header a “Adulto”.
Ora, in visualizzazione codice di tipo XAML, nella riga aggiunta, per questa colonna, impostiamo l’attributo “Binding” al campo Adulto.
Qui di seguto si riporta il codice XAML.




<sdk:DataGridCheckBoxColumn Binding="{Binding Adulto}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Adulto" Width="Auto" />



Terminata la parte di progettazione del codice, dobbiamo, impostare in maniera adeguata la fonte dati.
Nel load della nostra pagina, impostiamo la proprietà Adulto, della classe Persona, con un valore true e poi successivamente false.
L’esempio riportato qui di seguito, riguarda un solo campo, ma possiamo utiizzare, anche gli altri campi come la data, nome e cognome, utlizzati negli articoli precedenti.
Si riporta il codice completo nella fase di caricamento della nostra form.



VB.Net



Private Sub LayoutRoot_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles LayoutRoot.Loaded



Dim listPersona As New List(Of Persona)



Dim per As New Persona



per.Adulto = True



listPersona.Add(per)



per = New Persona()



per.Adulto = False



listPersona.Add(per)



'carico i dati



dataGrid1.ItemsSource = listPersona



End Sub





C#



private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)



{



List<persona> listPersona = new List<persona>();



persona per = new persona();



per.Adulto = true;



listPersona.Add(per);



per = new persona();



per.Adulto = false;



listPersona.Add(per);



//carico i dati



dataGrid1.ItemsSource = listPersona;





}








Se viene eseguito il codice, Il tutto sarà come mostrato in figura 1.



Figura 1





Rilevamento valori
Vediamo come rilevare il valore della colonna.
Tramite la proprietà selectitem, ottieniamo la riga selezionata. Va ricordato, che nel caso si fa click sulla singola cella oppure non si seleziona nulla, il valore delle proprietà selectitem è null.
Nell’eventualità che si fa click all’interno della cella, possiamo utilizzare la proprietà currentcolum.
Qui di seguito si riporta il codice inserito nell’evento click di un pulsante, per rilevare il valore di una riga selezionata





VB.Net



Private Sub BtnValore_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles BtnValore.Click



If DataGrid1.SelectedItem Is Nothing Then Exit Sub



MessageBox.Show(CType(DataGrid1.SelectedItem, Persona).Adulto.ToString())



End Sub







C#



private void BtnValore_Click(object sender, RoutedEventArgs e)



{



if (dataGrid1.SelectedItem == null)



return;



MessageBox.Show(((persona)dataGrid1.SelectedItem).Adulto.ToString());



}












Ora vediamo altro aspetto della colonna, ossia la possibilità di impostare tre valori.
Se impostiamo nella parte XAML la proprietà “IsThreeState” a true, si ha la possibilità di avere tre modalità di stato, il tutto come mostrato in figura 2, quindi avremmo l'aspetto vuoto, il baffetto ed il trattino.
Naturalmente, la fonte dati, dev’essere a tre stati, nel nostro caso, il boolean, viene definito com nullable e quindi dichiarato come boolean?



Si riporta un esempio di codice XAML




IsThreeState="True"



Esempio della proprietà adulto



VB.Net



Property Adulto As Boolean?





C#



Boolean? _adulto;





Figura 2



Conclusioni
Siamo giunti alla conclusione dell’articolo, abbiamo visto come generare in maniera molto semplice e rapida una colonna di tipo boolean, applicando anche la possibilità di avere tre stati per una colonna di tipo checkbox.
Il controllo si presenta in maniera flessibile, lasciando al programmatore, molti spunti, per generare griglie accattivanti.



Qui trovate la parte 1 http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-datagrid-di-silverlight-parte-p_1105.aspx qui la parte seconda http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-controllo-datagrid-di-silverlig_1079.aspx e qui http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-datagrid-in-silverlight-tramite_1080.aspx la terza parte.

giovedì 12 gennaio 2012

motore di ricerca per icone ed immagini

Dal seguente sito http://www.iconwanted.com/ trovate un buon motore di ricerca per immagini.
Inoltre nella home page, possiamo navigare tra le varie categorie che vengono proposte.
Un sito molto utile, per coloro che sono alla ricerca di immagine ed icone.

mercoledì 11 gennaio 2012

Happy Hours al Museo: programma 2011/2012 museo di zoologia di Roma






















Riprendono gli appuntamenti gratuiti del museo di Zoologia di Roma, i cosidetti happy Hours.


Nella precedente edizione, ho avuto il piacere di partecipare a questi incontri, e sono di una qualità eccezionale, il posto, l'aperitivo gentilmente offerto, ma soprattutto i contenuti e gli speaker che illustrano in maniera esemplare e ottimale l'argomento trattato.




Si parte domani, 12 gennaio, per concludersi il 24 maggio.


Ricordiamo che gli eventi sono gratuiti, ma bisogna registrarsi chiamando il numero telefonico presente nel seguente sito http://www.museodizoologia.it/attivita/incontri-e-convegni-1/happy-hours-al-museo-programma-2011-2012/happy-hours-al-museo-programma-2010-2011 dove trovate tutte le indicazioni ed il relativo calendario.




Vi invito a partecipare, sono bellissimi.


Che dirvi... buona visione :-D

martedì 10 gennaio 2012

Recensione libro: Arduino progetti e soluzioni





Scheda del libro:

































































































































Autore:




Michael Margolis
Prezzo:Euro 46,67
Caratteristiche:




648 pagine - 17x23,5 bn
Numero Edizione:














1
Anno di edizione:Ottobre 2011
ISBN:978-88-481-2539-0
Lingua:Italiano
Ebook:Si





Se state cercando un libro per avvicinarvi alla programmazione della scheda Arduino, o già utilizzate questa scheda ma volete ampliare le vostre conoscenze, il libro Arduino Progetti e Soluzione http://www.tilibri.com/libri/arduino_progetti_soluzioni.html edito della casa editrice tecniche nuove http://www.tilibri.com/ fa per voi. Un libro, con numerosi esempi di codice nel linguaggio C e C++, per programmare questa scheda. I diciotto capitoli di quest’ottimo manuale affrontano in maniera ottimale l’utilizzo di questa scheda italiana, con vari casi di utilizzo. Un libro molto importante, uno tra i migliori del suo genere.

Arduino ed altri componenti si possono acquistare dal seguente sito http://www.regaliedesideri.it/









Ma vediamo qui di seguito i vari capitolo che fanno parte di questo libro.






Nel capitolo 1, sono fornite al lettore, le informazioni di base di Arduino, disegni e note dettagliate forniscono al lettore adeguate conoscenze per comprendere la scheda. Questo capitolo è utile per chi si avvicina alla prima volta ad Arduino, mentre può essere saltato nel caso che già lo si conosce.






Nel secondo capitolo, si passa direttamente alla programmazione della scheda, nel capitolo, sono forniti interessanti informazioni sul linguaggio (c e c++) di programmazione da utilizzare per questa scheda. Un capitolo interessante per coloro che iniziano a muoversi nella programmazione.






Il terzo capitolo più breve dei precedenti, riguarda gli operatori di matematica, ossia i vari aspetti in materia di matematica che possono tornare utile nello sviluppare i programmi.






Nel quarto capitolo, l’autore del libro, passa ad interessanti tecniche e progetti reali, come la possibilità di comunicare con lettori LCD, l’utilizzo di simulatori e GPS. Nel capitolo, viene affrontata in maniera ottimale l’utilizzo della comunicazione, l’invio e la ricezione dei dati. Un capitolo molto importante per il lettore.






Il capitolo quinto, riguarda la parte relativa alla gestione di corrente, in particolare esempi d’interruzione di corrente o no, come può essere un interruttore. Nel capitolo sono presenti importanti indicazioni che invitano il lettore a prestare molta attenzione per evitare di danneggiare la scheda, inoltre i vari disegni, forniscono chiarezza all’argomento trattato.






Nel capitolo sesto, viene fornita al lettore diverse tecniche per utilizzare i sensori, come il calcolo della distanza degli oggetti dalla scheda di Arduino, la luce, il suono, la temperatura, e tanto altro. Tantissimi esempi di codice, da utilizzare nelle proprie applicazioni.






Il capitolo 7, è dedicato alla parte visiva, ossia la gestione dei led. In questo capitolo, sono affrontati gli elementi di base per utilizzare componenti per gestire i led per visualizzare determinate colorazione. Il capitolo fornisce adeguate conoscenze su tale argomento.






Un capitolo ostico è importante è l’ottavo, in questo capitolo si passa alla gestione dei servomotori e tutti quei componenti motorizzati. In questo capitolo, troviamo numerosi esempi, su come muovere un determinato componente. Il lettore, leggendo il capito, avrà una valida conoscenza sul tema trattato, argomento poco trattato nei vari libri su Arduino.






Il capitolo 9, riguarda il suono. Un capitolo, con esempi di base su come riprodurre un suono, gestire l’audio, ed altro ancora. I numerosi esempi, coprono in maniera esaustiva la parte audio.






Il capitolo 10, sarà di grande interesse per molti utilizzatori di Arduino, infatti il capitolo riguarda la gestione dei dispositivi remoti, come la gestione di un telecomando (per esempio di un televisore) , la gestione di una macchina fotografica digitale, esempi molto interessati che stuzzicano l’interesse di coloro che utilizzano da diverso tempo questa scheda.






Nel capitolo 11, si passa ai display, argomento e tema molto richiesto, visto che spesso si devono visualizzare nei pannelli, scritte, numeri o altro per segnalare determinate informazioni Il capitolo illustra l’utilizzo dei display LCD, con numerosi esempi di codice, permettendo al lettore di acquisire una buona padronanza dell’utilizzo dei display. Un capitolo ben fatto con tantissimo materiale.






Il capitolo 12, più breve dei vari capitoli di questo libro, illustra la possibilità di creare programmi e strumenti inerenti il tempo, come la creazione di un orologio o di una sveglia, visto che il capitolo è interamente dedicato alla gestione dell’ora e data.






Nel capitolo tredicesimo, si passa all’utilizzo della comunicazione utilizzando I2C e SPI, esempi come utilizzare l’accelerometro del nunchuck della WII, orologi esterni, rilevare la temperatura da un termometro digitale, ed altro ancora.






Il capitolo 14, tratta argomento di grande attualità, visto anche la diffusione di questo strumento, ossia la gestione della rete Wireless. Il capitolo è molto ampio e tramite le numerose immagini ed esempi, illustra come Arduino può gestire la scheda Wireless.






Il quindicesimo capitolo, continua la comunicazione della rete, questa volta tramite ethernet ed altre tecniche. Dopo una breve introduzione sulle reti, si passa ad esempi di codice per verificare se c’è un collegamento alla rete oppure no. Gli esempi contenuti in questo capitolo, sono diversi, come ottenere in maniera automatica il proprio indirizzo IP, risolvere gli hostname in indirizzi IP, e tanto altro, anche riguardante la web.






Il capitolo 16, fornisce una breve panoramica sulle librerie, ossia quei componenti software, che permettono di aggiungere ai nostri programmi, funzionalità per l’utilizzo della scheda Arduino. Il capitolo, fornisce indicazione sull’utilizzo e creazione di librerie.






Anche il capitolo diciassettesimo, è breve come il precedente, in questo capitolo, si forniscono consigli sull’utilizzo della memoria. Consigli legati alla programmazione.






L’ultimo capitolo (18), fornisce indicazioni sull’utilizzo della scheda, informazioni molto preziose.






L’appendice A fornisce indicazione sui componenti da utilizzare.






L’appendice B, riguarda i diagrammi schematici e le schede.






Appendice C, creazione di un circuito






Appendice D interessanti nozioni sulla soluzione dei problemi che si potrebbero riscontrare nell’utilizzo software di questa scheda.






Appendice E. consigli alle problematiche hardware.






Appendice F e G, tavole tecniche.






Qui di seguito si riportano i vari capitoli del libro. el libro.






1) Per cominciare






2) Le basi della programmazione negli skectch






3) Usare gli operatori matematici






4) Le comunicazioni seriali






5) Input digitali e analogici semplici






6) Ricavare input dai sensori






7) L'output visivo






8) L'output fisico






9) L'output audio






10) Controllare dispositivi esterni in remoto






11) Utilizzare display






12) Utilizzare data e ora






13) Comunicare utilizzando I2C e SPI






14) La comunicazione wireless






15) Ethernet e la comunicazione in rete






16) Utilizzare, modificare e creare librerie






17) Codice avanzato e gestione della memoria






18) Utilizzare l'hardware del controller






Appendice A - I componenti elettronici






Appendice B - Utilizzare i diagrammi schematici e le schede tecniche






Appendice C - Costruire e collegare un circuito






Appendice D - Consigli per la risoluzione dei problemi software






Appendice E - Consigli per la risoluzione dei problemi hardware






Appendice F - I Pin digitali e analogici






Appendice G - I Set di caratteri ASCII ed esteso







Conclusioni


Un libro, con moltissimi esempi e con un modo semplice e preciso nell’illustrare i vari utilizzi di questa scheda. Un libro adatto a chi si avvicina per la prima volta a questa scheda o per chi già la utilizza. Un libro contenente numerose figure ed esempi di codice, un ottimo manuale che non può mancare nella libreria di un programmatore che utilizza Arduino, indispensabile.

lunedì 9 gennaio 2012

html 5 verificare se il browser supporta geolocalizzazione

In html 5 l'oggetto Navigator, ha un metodo che restituisce se il browser in cui sta eseguendo il codice supporta o no la geolocalizzazione.
Qui di seguito si riporta un esempio di html 5.



< script type="text/javascript" >
function VerificaGeo()
{
if(navigator.geolocation)
{
alert("Geolocalizzazione ok")
}
else
{
alert("Geolocalizzazione no")
}


}

< / script >




la funzione la si può richiamare nell'evento onload del tag body

<
body onload="VerificaGeo()"
>

domenica 8 gennaio 2012

ebook gratuito il dottore dei computer volume 7

















Dal seguente sito http://www.ildottoredeicomputer.com/2011/12/il-dottore-dei-computer-volume-7.html potete scaricare l'ebook gratuito del Dottore dei computer, volume 7.


Il libro, scaricabile gratuitamente ed in italiano, contiene tantissimi consigli nel mondo informatico, tutto ciò che riguarda il computer, internet e programmi da utilizzare.

Vi consiglio di scaricarlo.

Che dirvi... buona lettura :-D