Last month I developed a lot and I had the pleasure of being speaker to three national events and an international one in California (but from remote).I was greatly involved to write code and content that I decided to summarize hoping that you could enjoy them.
With the slides I tried to describe the most important features of the Azure Service Bus focusing on the Event Hubs and its use within the telemetry pattern in IoT :Event Hubs : million events per second to the Cloud (MEC Internet of Things Conference 2015 in Naples)Event Hubs : million events per second to the Cloud (Global Azure Bootcamp, OC community California) of which it is also available the video here on YouTubeMicrosoft e l’IoT (M2M Forum in Milan, session with Roberto Andreoli and Erica Barone from Microsoft Italia)Azure Service Bus : under the hood (IoT Day in Venice)These slides have related demos where I used my last Azure SB Lite library, thanks to which you can access to the Microsoft Azure Service Bus using the same API of the "o ...
Read the rest of entry »
Developing a new library for accessing to the Microsoft Azure Service Bus (event hubs, queues, topics / subscriptions) based on AMQP (and AMQP .Net Lite library) I came across a bug in the code of the regular expression in the .Net Micro Framework.
The bug occurred by chance, when I had a "connection string" in which there was the "SharedAccessSignature" field that has a value when we use the AMQP connection with CBS (Claim Based Security); for example when we publish to a "publisher" endpoint in the event hubs with a SAS-based security token.
Few days ago Microsoft was included in the ranking of the 10 most innovative companies of 2015 as part of the Internet of Things and this result can not be absolutely considered a case. Most likely, the main reasons that have enabled Microsoft to achieve this great result are two :
The announcement of an operating system like Windows 10 that is able to run on any kind of device, from embedded systems, smartphones, tablets, gaming consoles and finally to the PC;
The wide Microsoft Azure cloud services offer through which you can "accommodate" and analyze in real time the huge amount of data from the "things";
The Microsoft offer for the Internet of Things covers everything from embedded device (the "T") to the Cloud (the "I") failing to provide a solution under one "hat".
What are the available technologies ? How can we really "bring" our "things" in the Cloud and make them an integral part of the Internet of "Your" Things as it was renamed by Microsoft ...
Finally the new M2Mqtt 4.1 version is out !
In the last months, my library was under pressure thanks to my friends Olivier Vigliengo (from Adeneo) and Nicolas Besson (Microsoft MVP on Windows Embedded, from Adeneo). They used the MQTT client for their hobbistic projects and stressed it a lot !
After exchanging a lot of emails with log traces, I fixed some bugs and added some improvements to the library.
The first "visible" step of the new .Net Micro Framework has been accomplished ... finally the official repository for the future versions is GitHub; viceversa all previous versions of the framework will remain onCodePlex as the forum. Each bug/issue reported on CodePlex will be evaluated and included as "work item" on GitHub.
Due to the "interpreter" nature of the runtime, the project was named ".Net Micro Framework Interpreter" but contains the interpreter, the BCL (Base Class Library) and the native code for porting.
In this post we'll see a big difference on "string interning" mechanism between .Net Framework and .Net Micro Framework ...
Developing on all versions of the .Net Framework (full, compact and micro) I have always the portability problem and I avoid to use methods that are not available in one of three framework or using directives for precompilation.
It never happened a case where the method exists in all the frameworks but the parameters have a different meaning ... are even reversed !!
The method in question is the overload Regex.Split(String, String, RegexOptions) !
As we know, to be able to access to some Microsoft Azure services, there is the SAS (Shared Access Signature) Authentication by sending a token by which we get the rights to perform specific operations.
This token is obtained by building a string containing some information including the URI to access and the expiration time over which to calculate an HMAC (Hash Massage Authentication Code) withSHA256. The result of this hashing operation is encoded in Base64 and the result obtained is inserted in the token (Shared Access Signature) with an appropriate format.
The goal of this short post isn’t to describe the procedure for determining the token but to warn the user about the Base64 conversion functions provided by the .Net Micro Framework.
In the Internet of Things world and especially when we are going to protect the data transmitted by an embedded system from prying eyes through encryption algorithms (AES, DES, 3DES, RSA, ...) and with related network protocols (SSL, TLS , DTLS, ...), correct date/time on our board plays a fundamental role.
In fact, the encryption algorithms are strongly based on Pseudor-Random Number Generators (PRNG), which often needs to use the current date/time as a "seed" of the generation. Being pseudo-random generators and not real generators, it is important that for each system boot the "seed" is different otherwise the generated sequence is the same as the earlier boot and therefore predictable.
One of the biggest initiatives of 2014 was definitely the birth of DotNetPodcast, podcast completely in Italian and dedicated to Microsoft technologies. Guests are always of the highest level and earlier this year, I had the honor of being able to record an episode, completely dedicated to the Internet of Things and the development of IoT solutions using the .Net Micro Framework.
View this page in another language: