Thursday, December 1, 2016

Intel IoT and IoT Gateways

Intel XDK is changing its emphasis focusing more on IoT. Going forward many may want to experiment with Intel XDK for IoT. Here is a brief summary of one of the key elements in doing IoT, the IoT Gateway.

IoT Gateways connect IoT Devices or 'Things' to some kind of computing platform or to the cloud to provide intelligence for the IoT Solution. Although it is possible to directly connect the device to cloud if some form of intelligence to be derived before going to the cloud, a Gateway is a better solution.

If devices are TCP/IP enabled as in modern devices connecting them to the cloud is easy but there are legacy devices which are not TCP/IP enabled and therefore they need an intermediary device to connect to the cloud.

These are some of the reasons that requires an intermediary Gateway:

  • Support for legacy devices 
  • Run edge analytics- Reduces communication bottleneck by pre-processing (batching, filtering, compressing etc) 
  • Minimize Latency- processing near edge faster than in the cloud 
  • Conserve network bandwidth- 
  • Reliability of operation- 
  • Address security- Gateways can provide an extra level of security
Microsoft Azure IoT Gateway:
In the case of Microsoft technology, Microsoft Azure IoT Gateway helps developing a solution for on-premises computation augmenting the functionality provided by Microsoft Azure cloud services. Microsoft Azure IoT Gateway can be used to create a gateway solution.

More here:
https://azure.microsoft.com/en-us/blog/introducing-the-azure-iot-gateway-sdk-beta/

Intel Corporation:
Intel IoT Gateway connects legacy and New systems for seamless and secure data flow using pre-integrated, pre-validated Hardware and Software Blocks

Of course both Legacy and New systems are supported. Perhaps there are more legacy devices than the new ones.

Intel IoT Gateway is built on McAfee and Wind River using their security and operating system technologies. Read further down regarding Wind River and Wind River Products.


IntelIoTGateway_00

A variety of programming languages can be used:


Dell.com

Dell's Edge Gateway 5000 also provides Gateway solutions for transporting information from edge devices to the end point computing cloud.

Here are some specs for the Dell's Edge Gateway 5000
Spec: https://qrl.dell.com/Files/en-us/Html/Z5000/Spec%20Sheet.html

Processor
   
1).
Intel® Atom™ E3825 1.33GHz | 2 cores
Memory: 2G (4x256Mx16 DDR3L)
1067MHz

2)   
Intel® Atom™ E3827 1.75GHz | 2 cores
4G (8x 256Mx16 DDR3L)
1333MHz

Manageability:
WindRiver: Helix Device Cloud for Linux
Ubuntu Snappy(https://developer.ubuntu.com/en/snappy/) and Windows IoT Industry

There are some useful video's on Dell's Gateway (you may find others on the Internet) that explains in simple terms what their gateway provides



Wind River
Wind River is an Intel company and call their Gateway as Wind River Intelligent Device Platform XT
They use Intel SoC and other Intel products.

http://windriver.com/products/product-notes/PN_IDPXT/PN_IDPXT.pdf

Intel Products: Intel Baytrail, Intel Quark and Intel Core and propriety software(Wind River Intelligent Device Platform XT 3, Wind River Workbench, McAfee Embedded Control 6.6)



The trend is more towards Open Source than proprietary, a movement most suited for IoT development. Looks like Intel will make a lot of money with IoT.

Sunday, November 27, 2016

Changing emphasis of Intel XDK

If you have been using Intel XDK to build apps both HTML5 based and native apps, there is going to be (actually has been going on) a change in the direction. A number of frameworks were used with Intel XDK in the designer. You might have noticed that the number of frameworks are being deprecated. Presently, in version (the latest) 3641 only the Twitter Bootstrap is currently supported and the others are being deprecated.

Intel XDK is going to focus more on IoT apps. The other apps are not going to be supported in the Intel XDK. Since most of the technologies used in developing non-IoT apps are mature, Intel XDK will get provide documentation help to use these technologies.

This is according to Paul, one of the Intel XDK moderators:

" it's not that there is a benefit for developing IoT apps over mobile apps, they are quite different apps; the point is that we are focusing the tool to emphasize IoT app development, especially since the free and open-source tools available for developing, debugging and building Cordova mobile apps have now become quite mature. We will continue to support the development of Cordova mobile apps, but will rely more heavily on these freely available tools, rather than try to compete with them. The product today supports the creation of two basic types of apps: IoT apps and mobile Cordova apps. When we say "IoT companion apps" we simply mean a mobile Cordova app that is focused on working with an IoT app and any supporting IoT cloud services. As the product progresses it will make more sense."



In version 3641




That going forward the emphasis will be on IoT apps makes great sense from the point  view of Intel Corporation. Intel Corporation makes IoT boards of different kinds and will be investing a lot of effort on IoT.

What better way can be there than this change of direction.

More here for all comments on related topic:
https://software.intel.com/en-us/forums/intel-xdk/topic/700951

Polyfill with JavaScript

In the early days of Internet (some 10 years ago or so) one had to write some kind of code that recognizes the browser and control the flow so that the audience is given the information that there was no browser support for the functionality.

An extreme kind of instruction was that the browser's JavaScript functionality was not on, etc.

A Polyfill ( piece of code, plug-in,add-in, script) is a browser fallback so that feature(s) works in a modern browser also works in older browsers which per se did not support what is supported in the modern browser.

Here is a comprehensive collection of HTML5 Cross Browser Polyfills.

The term Polyfills was coined by Remy Sharp to describe JavaScript shims that replicate standard API found in modern browsers for those older browsers that do not support.

Polyfills are created by developers to fulfill this requirement and one can create ones own Polyfill .

One of the most popular Polyfills is htmlshiv (https://github.com/aFarkas/html5shiv)

In IE versions of 9.0 and prior versions
and would have been parsed as empty elements. These tags however described nesting of elements and styling them would have been difficult. Html5shiv takes care of this by directing the page if opened in IE 9 to use the appropriate script:



Wednesday, November 23, 2016

Good source for Apps with streaming content

Apps that use streaming data can be created with many programming languages including HTML, .NET, etc. with full SDK support.

According to this site,
"PubNub is a global Data Stream Network (DSN) and easy-to-use secure realtime communication API for IoT, mobile and web apps. The service scales to hundreds of millions of devices with 1/4-second worldwide latency and over 70 SDKs"

This is the stuff you should look into if you are interested in streaming data.

Here are developer support items that you may be interested in.

Mobile
Web

IoT

Games

Server Desktops




Thursday, November 10, 2016

JavaScript with TypeScript 2.1

Microsoft's TypeScript (also regarded as industrial strength JavaScript)  is getting upgraded with new features:

Improved Inference
Async Functions


TypeScript 2.0 was released as recent as September 2016. TypeScript 2.1 is in RC (release candidate)

The upgrade makes modelling easier and migrating JavaScript to TypeScript easier. Aysnc/await () introduced in ECMAScript 2016  is featured in the new release and makes asynchronous programming easier. It shares same keywords in C#, Dart and Python.

Here is sample code from the msdn blog links above:
=====
async function main() {
 await ping();
}
async function ping() {
 for (var i = 0; i < 10; i++) {
  await delay(300);
  console.log(“ping”);
 }
}
function delay(ms: number) {
 return new Promise(resolve => setTimeout(resolve, ms));
}
main();
====
Read the rest of the story here if you are into programming with JavaScript.


Saturday, October 29, 2016

Automate mobile app integration using AppFusion

Less coding and more fusing is what AppDome offers on the cloud.

First of all AppFusion is a codeless platform to automate mobile integration. It is a cloud-based service that can be used by mobile developers as well as mobile professionals (Mobile IT, Ops, LOB etc) to rapidly integrate new functionality and services to mobile apps on demand without any coding.

The following are the key parts of this platform:

Mobile Integration Workflow
 Primary user interface for interacting with the services. The workflow is intuitive for uploading, fusing, signing and deploying. Also analyze fused apps plus collaboration and productivity tools.

App library
 Upload and store unlimited number of apps in a stateful, private repository.

Fusion workbench
  Choose services that the customer wants to fuse to the app and create what are called Fusion Sets to apply to apps.

AppFusion Catalog

Also to note: When you sign you can add a complete best practice mobile security suite to mobile apps - for FREE

View fusion video here:




View security related video here:



Read more details here, or even better create a trial account if it is available. Trying it out to find if it  fits your requirements.

Get your beta here.
Source: AppDome web site.

Thursday, October 27, 2016

Developing Apache Cordova App using Visual Studio 2015 Community - Contd

This is continued from my previous post here:
After creating the blank project and building it, it was found that trying to run (Start Debug) the project resulted in the following error:



In this post, I try to probe further to see if it can work with other devices\emulators. Windows Emulators run in Hyper-V and that needs to be working as the next message shows trying to work with Windows 10. This message is strange as Hyper-V is enabled. However, there
must have been a Windows 10 update which probably resets other settings.


I enabled Hyper-V using the Control Panel. However, you also need to restart the computer.


 As I had launched the Visual Studio as a normal user, it needs to run in elevated mode.

 Well. I still get this error message and cannot run..

 I changed my emulator to Windows x64 and the program ran without any errors and the emulator image is shown below.

 I tried to run in Window Phone emulator and it came up with many other errors. This one is hard to run in Windows 10 emulator.

 I am not sure what this error message is about. I wish there were more helpful messages.


Finally I ran the start debug for Window Phone with the Emulator 8.1 WVGA 4 inch 512 mode and the program ran without errors.
I have to see how it runs in other emulators/devices.