domenica 9 ottobre 2016

Visual Studio Dev Essentials

Per chi come me è costantemente alla ricerca di nuovi stimoli per migliorare le proprie conoscenze e di tenersi al passo con lo stato dell’arte, voglio condividere un suggerimento utile a chi vuole implementare soluzioni con il meglio delle tecnologie Microsoft.
Visual Studio Dev Essentials, il cui claim è Everything you need all in one place, ed effettivamente è un po’ un *santo graal* dal quale attingere strumenti di sviluppo, formazione di livello altissimo, e *last but not least*, un credito mensile di 25€ da spendere in servizi Microsoft Azure.


Tra le risorse messe a disposizione, quella, a mio avviso, più preziosa, è proprio l’accesso temporaneo o a tempo indeterminato ai corsi, del quale ho già cominciato ad usufruire, approfondendo gli argomenti relativi allo stato dell’arte del nuovo stack per applicazioni web di Microsoft ASP.Net Core con il corso Building a Web App with ASP.NET Core, MVC 6, EF Core, and Angular.



Enjoy


martedì 4 ottobre 2016

Internet of Things & M.E.A.N Stack - (Part IV)

Continuiamo con l'esplorazione delle varie tecnologie legate al mondo dell'Internet Of Things, valutando un altro dei protocolli utilizzati nella comunicazione M2M, il protocollo CoAP. Come al solito, ho seguito un approccio hand-on, la cui implementazione è disponibile su GitHub al link.
Enjoy





mercoledì 28 settembre 2016

Integrazione Continua con Visual Studio Team Service

Nel video che segue viene proposta un'interessante dissertazione su una delle nuove features introdotte da Visual Studio Team Services, l'Integrazione Continua, o CI (Continuous Integration), ovvero la pratica che prevede l'utilizzo "intensivo" di un sistema di versioning, spesso con il supporto di un tool di Build automatico.



Have fun





martedì 20 settembre 2016

Internet of Things & M.E.A.N Stack - (Part III)

Finalmente siamo arrivati al momento in cui tenteremo di togliere parte della simulazione dai nostri test. A tal fine torna utile un Arduino Due che riposava in un cassetto da troppo tempo.

Arduino DUE

L’approccio ufficiale per la programmazione di questo giocattolo, passa per l’utilizzo dell’IDE ufficiale scaricabile dal link,
Arduino IDE Splash Arduino IDE

che, sebbene sia un ottimo strumento per far approcciare chi non ha grandi esperienze di programmazione al mondo del DIY, per la realizzazione di questo esempio, abbiamo utilizzato Atom, un ottimo editor di testo disponibile gratuitamente per i maggiori sistemi operativi, unitamente al plugin PlatformIO.

PlatformIO IDE
Come al solito, per la descrizione dettagliata dell’implementazione di questo nuovo step, si rimanda al repository GitHub creato per questa serie di note, raggiungibile dal link.
Nel video seguente viene data una dimostrazione riassuntiva dei risultati ottenuti in questa serie di note su IoT e M.E.A.N. Stack.

Arduino Due vs MQTT

Have Fun.





venerdì 16 settembre 2016

Internet of Things & M.E.A.N Stack - (Part II)

Continuiamo il discorso iniziato con la nota precedente, Internet of Things & M.E.A.N Stack, nel quale abbiamo esplorato alcune opzioni per implementare un web server che fornisse il nostro sistema delle funzionalità C.R.U.D necessarie per interfacciarci al database NoSQL mongoDB.
Lo step successivo è quello di utilizzare il framework M.E.A.N. per creare una Single Page Application che ci consenta di visualizzare i dati storici e real-time prodotti dal nostro sistema IoT.
Per i dettagli relativi all’implementazione, rimandiamo al repository GitHub, nel quale sono disponibili sia i sorgenti che la descrizione degli strumenti utilizzati e dei passi seguiti.
La web app realizzata si compone di una home page che si presenta come:
home-page
La seconda pagina, dedicata alla visualizzazione dei dati storici salvati dal client mqtt realizzato in precedenza mediante il servizio REST, ha una visualizzazione tabellare dei dati
home-page
ed una grafica
home-page
Infine, last but not least, abbiamo una vista nella quale i dati provenienti dal campo, vengono visualizzati in tempo reale.
home-page
Il prossimo obiettivo, è quello di realizzare un caso non simulato di dispositivo IoT. A tal fine proveremo ad utilizzare l’implementazione Embedded C++ del progetto paho,
home-page
in abbinamento ad un controller Arduino Due.
home-page

Have Fun





martedì 13 settembre 2016

Internet of Things & M.E.A.N Stack

Approfittando degli esperimenti sui protocolli di comunicazione legati al mondo dell’IoT, iniziati con la nota Internet Of Things - Protocolli di Comunicazione, cogliamo l’occasione per valutare il grado di integrabilità, tra le tecnologie che ruotano intorno a questo mondo, ed un insieme di strumenti che ha attirato la mia attenzione durante quest anno, che vanno sotto la denominazione di M.E.A.N Stack, che si propongono come la miglior alternativa ai classici stack per lo sviluppo di applicazioni web (.NET, LAMP, ...).


mongoDB

express

AngularJS

Node.js
M. E. A. N.

Tra le varie risorse utilizzate per apprendere le basi delle tecnologie coinvolte, una menzione speciale va alla piattaforma di e-learning gratuita Microsoft Virtual Academy
ed in particolare ai seguenti tutorial:
Un’altra preziosa fonte di informazioni è stata il video tutorial ed il blog di Travis Tidwell che introduce degli strumenti formidabili per la realizzazione rapida sia delle funzionalità lato server (le API REST che consentiranno, nel nostro caso, si salvare su db i dati provenienti dal campo), che lato client, rendendo possibile la realizzazione di un front-end che sfrutti appieno le tecnologie dello stack in esame.



Il primo risultato di tale integrazione, per i cui dettagli si rimanda al repository creato in occasione della precedente nota, è stato quello di realizzare un’infrastruttura in grado di persistere le letture dal campo del nostro termostato intelligente, su un database mongoDB.
In particolare è stato implementato un server REST che consente le operazioni C.R.U.D. sul db, ed è stato modificato il comportamento dell’oggetto remote in modo da esguire una scrittura sul database per ogni dato ricevuto dall’oggetto thermostat. L’esito di un run della simulazione è quello di avere i dati serializzati nel nostro database NoSQL pronti per eventuali analisi successive.

Eseguendo una query sulla collection thermostats dal prompt dei comandi, l’esito è:

mongo cli

oppure utilizzando il client visuale Robomongo,

Robomongo

Have fun.





lunedì 12 settembre 2016

Internet Of Things - Protocolli di Comunicazione

Riprendendo il discorso iniziato nella nota Industry 4.0. -To boldly go where no man has gone before… (Part II), entro la fine del 2020, 20.8 miliardi di dispositivi saranno connessi ad internet per formare l’Internet delle Cose. Considerando che, per lo stesso anno è prevista una popolazione mondiale di poco superiore a 7.5 miliardi, avremo, connessi ad internet, circa tre dispositivi per abitante sulla terra.
world population
Sulla base di questa considerazione, la domanda che sorge spontanea, è: “come si connetteranno tutti questi dispositivi tra loro, ai provider di servizi o, più in generale al cloud, considerando che, in generale, il requisito principale sarà quello di garantire una minima occupazione di banda, e massima efficienza energetica, e che le risorse computazionali disponibili saranno, nella quasi totalità dei casi, molto ridotte?“.
Una risposta alla domanda, ci viene dalla seguente tabella, che riassume i requisiti minimi dell’hardware e delle infrastrutture di rete per consentire l’implementazione di un’efficace comunicazione M2M.
IoT End-Node/Device Requirements
fonte Electronic Design
Obiettivo di questa nota è quello di esplorare, con un approccio hands-on, alcuni degli strumenti attualmente disponibili per l’implementazione di tale comunicazione, simulando l’implementazione di un termostato intelligente, e di diversi tipi di controllo remoto dello stesso. I risultati, e le note dei vari step intermedi saranno disponibili su un repository Internet Of Things creato per l’occasione su GitHub.

Have fun