Windows8

M2Mqtt Spy : Windows Store e Windows Phone companion apps per “spiare” il traffico MQTT

Logo.scale-240

windows-logo-new-370x229

Dopo aver aggiunto il supporto per WinRT al progetto M2Mqtt nell’ultima release, ho deciso di realizzare una semplice “companion” app : M2Mqtt Spy.

01 02

Questa applicazione è disponibile come Windows Store e Windows Phone app e fornisce le seguenti funzionalità base :

  • connessione ad un broker MQTT locale o remoto (con eventuali username e password);
  • sottoscrizione/desottoscrizione ad uno o più topics (con QoS 0);
  • dashboard con i messaggi ricevuti in corrispondenza dei topics sottoscritti;
  • pubblicazione di un messaggio con (QoS 0) su un topic;
01 02 03_thumb.png

Ovviamente, questa è solo la versione iniziale, grazie alla quale poter aver un primo applicativo di testing MQTT sui proprio device Windows.

M2Mqtt e GnatMQ … adesso anche su Windows 8.1 e Windows Phone 8.1 !!

Windows_logo_-_2012 m2mqttpng
gnat

Sembra che io sia stato in vacanza (vista la mancanza di post sul mio blog) ed è la verità !

Nonostante la vacanza, ho proseguito lo sviluppo del progetto M2Mqtt ed oggi ho il piacere di rilasciare la nuova versione 3.6.0.0 con il supporto per WinRT !!

Ho dovuto intervenire soprattutto nei punti di gestione del networking (in WinRT non ci sono le Socket ma gli StreamSocket), dei thread (passaggio da Thread a Task) e della sicurezza ma finalmente il primo client MQTT per tutte le piattaforme .Net, da oggi funziona anche sui tablet dotati di Windows 8.1 e sugli smartphone con Windows Phone 8.1.

Il nuovo progetto, aggiunto in una solution per Visual Studio 2013, è una “portable class library” che ho utilizzato e testato in una Universal App.

La stessa sorte è toccata al “fratello” GnatMQ, giunto alla versione (Beta) 0.9.2.0, grazie al quale abbiamo a disposizione un broker MQTT da eseguire su tablet e smartphone della famiglia Windows 8.1.

Ovviamente ho provveduto ad aggiornare anche il package Nuget aggiungendo gli assemblies per WinRT.

Spero di aver fatto cosa gradita per moltissimi utilizzatori di M2Mqtt che in passato mi hanno richiesto fortemente questo porting !

Sorriso

IoT@Work e MobileDay : due eventi da non perdere !

3404.Cattura_187953B7

La community romana DomusDotNet (i “cugini” dei membri del DotNetCampania) e TinyCLR.it (di cui faccio parte) sono lieti di presentarvi IoT@Work, un evento in collaborazione con Microsoft ed Intel, completamente dedicato al mondo dell’Internet Of Things che si svolgerà il prossimo 6 Giugno a Roma !

La giornata è assolutamente gratuita ed affronta uno dei temi più “caldi” dell’ultimo anno relativo all’Internet delle Cose.

Si inizia con la sessione “IoT – What is it ?” di Mirco Vanini che ci spiega che cosa si intende per Internet of Things, quali sono i campi applicativi e le implementazioni attuali nel mondo reale. Subito dopo c’è la mia sessione “IoT Protocols Landscape” in cui affronto l’analisi dei principali protocolli che ad oggi si stanno mettendo in evidenza nel mondo dell’IoT con un occhio di riguardo a quello che mi sta più a “cuore”, MQTT. La mattinata si conclude con Lorenzo Maiorfi e la sessione su “IoT NodeRed”, un interessantissimo strumento basato su NodeJS ed utilizzato per la cosiddetta “flow-based programming” molto efficace nel mondo M2M.

Subito dopo la pausa pranzo, il pomeriggio parte con una demo corale (io, Mirco e Lorenzo) che mostra un sistema di Smart Home e Smart Factory e con una dimostrazione pratica dei concetti di IoT nell’ambito della domotica e dell’automazione industriale. A seguire, Francesco Baldassarri portavoce di Intel, sponsor dell’evento, ci mostra le caratteristiche principali e le potenzialità della board Galileo con le sue applicazioni future.

4478.Cattura_7019FB95

Il 13 Giugno a Napoli, DotNetCampania vi invita al MobileDay per poter parlare di sviluppo mobile con le tecnologie Microsoft e del partner Xamarin.

Nella prima sessione, Michele Aponte e Mauro Ghiani ci mostrano quali sono i principali problemi del web mobile ed i principali framework a disposizione con relativi esempi di applicazioni reali; quali sono le tecniche di responsive design e creare un sito web specifico per mobile in modo da fornire ai nostri utenti una user experience più o meno adatta ai dispositivi con cui accedono alla nostra applicazione. A seguire, Fabio Cozzolino parla di Xamarin attraverso il quale sia possibile sviluppare applicazioni mobile “cross-platform” data l’eterogeneità delle piattaforme sul mercato da Windows Phone ad iOS passando per l’immancabile Android. Infine, Emanuele Garofalo ci mostra la nuova linea di sviluppo Microsoft con le “universal” apps su Windows 8.1 e Windows Phone 8.1 in modo da condividere il codice che possa girare su smartphone e su tablet/desktop.

Insomma, il mese di Giugno inizia alla grande con due eventi assolutamente da non perdere !

Microsoft Embedded Conference 2014 : anche la seconda edizione è andata alla grande !

Sabato 15 Febbraio è andata in scena la seconda edizione della Microsoft Embedded Conference che si è tenuta presso l’Holiday Inn di Napoli ed organizzata dalla community DotNetCampania di cui sono membro insieme a TinyCLR.it ed Embedded101, la community online di riferimento su Windows Embedded di cui, a partire da Novembre 2013, sono un “board of director” member.

Anche quest’anno c’è stata una buona affluenza di partecipanti nonostante fosse Sabato, anche perché l’argomento principe era l’Internet of Things e la M2M Communication di cui si sente parlare insistentemente nell’ultimo periodo come il business del futuro per la grande rete.

8750.1798736_10202466587658439_1394143997_n_thumb_137C73D8 1307.WP_20140215_08_58_39_Pro_thumb_668710FC
6406.WP_20140215_09_05_37_Pro_thumb_1EC58815 5100.WP_20140215_09_35_49_Pro_thumb_5703FF2D

Alle ore 8:00, il team era già pronto per i preparativi e l’organizzazione in modo da poter accogliere egregiamente i partecipanti e garantirne l’inizio in perfetto orario. Come per tutti gli eventi, abbiamo iniziato con la keynote del nostro presidente Michele Aponte, che ha presentato la nostra community, ed al quale ho dato supporto io per la parte di descrizione dell’agenda della giornata.

7585.WP_20140215_09_05_05_Pro_thumb_2433F8B9 4035.WP_20140215_09_42_35_Pro_thumb_2765E0A1
8640.1660895_10202466530457009_1226687914_n_thumb_268D7AB7 8233.WP_20140215_11_09_09_Pro_thumb_1A8B8A83
5025.WP_20140215_10_50_42_Pro_thumb_31D68EF4 7563.WP_20140215_10_34_38_Pro_thumb_30FE290A
7266.WP_20140215_09_04_44_Pro_thumb_693CA022 8156.1797336_10202466548937471_1904813788_n_thumb_68643A38
0825.1653735_10202466528416958_982574380_n_thumb_7C7D56C1 5025.WP_20140215_11_46_52_Pro_thumb_34BBCDDA

La mattinata è iniziata con la sessione di Valter Minute, come sempre un ottimo mix di conoscenza ed esperienza oltre che ilarità. Valter ha introdotto l’Internet of Things prendendo come spunto un potenziale “flirt” tra una lavatrice ed uno scaldabagno che in un futuro prossimo potranno comunicare senza alcun problema. Interessante la sua demo sull’interconnessione di una board Toradex al Cloud (in questo caso quello di Amazon). A seguire, la prima parte della sessione che ho tenuto io insieme a Lorenzo Maiorfi e Mirco Vanini; è stata completamente teorica ed ha visto protagonisti i principali protocolli per l’IoT, tra cui in evidenza MQTT, ed il fantastico strumento per la realizzazione di flussi quale è NodeRed. Dopo l’intervallo e la mini sessione del nostro sponsor “principe”, AVNET Embedded, con Cesare De Siena, la nostra sessione è ripresa con tutta la parte pratica relativa alla demo con lampade, ventole e buzzer che si azionavano grazie al sistema messo in piedi per l’occasione !!

8168.1947871_10152160961833567_567087922_n_thumb_53FE74AD 1881.IMG_20140215_144446_thumb_1A0F31C1
1222.WP_20140215_15_28_28_Pro_thumb_6B49791E 4540.WP_20140215_15_28_36_Pro_thumb_3F68FF62
3858.WP_20140215_16_31_27_Pro_thumb_77A7767A 7266.IMG_20140215_163200_thumb_16EA1D4E

Subito dopo la pausa pranzo, con l’immancabile pizza tra “amici”, il pomeriggio è ripreso con la sessione di Beppe Platania e Gianni Rosa Gallina sul sistema  Sense3 per show-room e congressi basato su Kinect e realizzato dalla BEPS Engineering. L’ultima sessione “italiana” ha visto protagonista Marco Dal Pino, con un’interessantissima introduzione alle nuove POS API per Windows 8.1. Ho parlato di ultima sessione “italiana”, perché la giornata è stata conclusa nel miglior modo possibile da una sessione online, direttamente dagli USA, di Samuel Phung, uno dei principali MVP su Windows Embedded a livello mondiale. Grazie a Live Meeting abbiamo potuto azzerare le distanze che ci separano ed averlo “virtualmente” con noi.

Nel complesso, l’evento ha avuto un ottimo riscontro sempre in relazione ai complimenti ricevuti dai partecipanti al suo termine. Un grazie particolare va ad Antonio Liccardi per la gestione della logistica, a Michele Aponte e Carmine Alfano per tutta la parte Web ed al resto della community che ha pubblicizzato al meglio l’evento. Siamo veramente un gran bel team !

Ovviamente, un grazie a tutti gli speaker, che a titolo completamente gratuito e con lo spirito “community” che li contraddistingue hanno portato con se il loro enorme bagaglio di conoscenza ed esperienza (non dimentichiamoci che erano presenti tutti gli MVP italiani su Windows Embedded). Infine, un grazie agli sponsor che hanno permesso e garantito l’organizzazione dell’evento stesso !!

A breve saranno disponibili le slide e le demo delle sessioni sul sito ufficiale dell’evento, nell’attesa che trascorra un altro anno per poter organizzare la terza edizione !!!

Perchè Windows Embedded Compact è qui per restare

E’ dall’evento Build in cui è stato presentato Windows 8 che mi faccio continuamente la stessa domanda : “Se Windows 8 sarà possibile eseguirlo anche su macchine con processori ARM, vedi tablet, quali sono le intenzioni di Microsoft riguardo Windows Embedded Compact”.

Ho postato il mio dubbio anche sul forum ufficiale della Microsoft ma nessuno ha saputo darmi una risposta valida, poichè nessuno può prevedere le intenzioni della Microsoft stessa.

Oggi ho trovato un articolo interessante sul sito WindowsForDevice e scritto da Maharajan Veerabahu, che finalmente ha saputo dare delle motivazione per le quali “Windows Embedded Compact è qui per restare”.

Scelta dell’hardware

Windows 8 è comunque orientato ai processori ARM di fascia alta per il mercato consumer (tablet) mentre con Windows CE si può mirare anche alla realizzazione di sistemi embedded il cui processore ARM è di fascia medio/bassa e quindi a costi inferiori.

Per quanto sia stato sicuramente migliorato rispetto a Windows 7, Windows 8 ha molta più “fame” di memoria RAM rispetto a Windows CE per il quale talvolta bastano anche soli 16 MB di RAM per un sistema perfettamente funzionante.

Sviluppo dei driver e shared source code

Con Windows CE si possono sviluppare drivers di tutti i tipi per device di qualsiasi categoria che possono tranquillamente interfacciarsi al sistema operativo. Con Windows 8 bisognerà vedere cosa sarà messo a disposizione nel DDK (Driver Development Kit).

Inoltre, Microsoft fornisce la maggior parte dei sorgenti di Windows CE sui quali si ha anche la possibilità di intervenire in casi estremi. Non è pensabile una soluzione del genere per Windows 8.

Performance

Sicuramente Windows CE fornisce un boot-time inferiore rispetto a Windows 8 (nonostante i notevoli passi avanti). C’è una gestione più mirata del power-management e soprattutto è da considerarsi a tutti gli effetti un sistema hard-real time, caratteristica che non interessa assolutamente al mercato consumer per Windows 8.

Per quanto riguarda la sicurezza, essendo Windows CE modulare, lo sviluppatore ha anche la facoltà di rimuovere quei componenti che sono facilmente attaccabili e non necessari.

Conclusioni

Sono assolutamente d’accordo con quanto scritto da Maharajan Veerabahu e spero che la Microsoft tenga conto di tutte queste considerazioni, in quanto non esiste solo il mercato consumer che fa uso dei processori ARM ma un mercato parallelo di sistemi embedded che oramai troviamo in un qualsiasi oggetto.

Vi rilascio all’articolo originale per approfondire questo tema interressante.