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.

Developing Apache Cordova App using Visual Studio 2015 Community

Visual Studio 2015 Community is a free Comprehensive Windows IDE from Microsoft. You can develop both web apps as well as native apps. It is also cross-platform. Besides these you can develop a whole lot other types of projects including Databases and IoT.

This post deals with creating a Apache Cordova app using Visual Studio 2015 Community Update 3.
In the New Project... window you find only one template, a Blank App available for developing a Apache Cordova JavaScript based app.

ApacheCordova_00.PNG

If you accept the default blank project you would see the following in the Solution Explorer.

ApacheCordova_01.PNG

The project can be developed at least for two platforms Android and Windows unless scripts are not needed for WP8 and IOS devices.

By default when you try to build this project, the IDE builds it for Android. The build process is lengthy and takes some time. As this computer does not have Google Chrome installed when you try to Start Debugging, you will get the following error:
==============
Severity Code Description Project File Line Source Suppression State
Error  Error: DEP10401 : The Ripple emulator requires Google Chrome to launch your app, but Chrome is not installed on this computer. Please install it from: https://www.google.com/chrome/browser/index.html. BlankCordovaApp_0   IntelliSense
=====================
In order to test this blank project you need the Ripple emulator.

However one can direct debug target to another device Windows Universal (for example).

In order to build for Windows Universal we can change it from the Project's Property page (Menu Project | Project Properties) as shown:

However when you try to run this you get this error:


Most of these errors are related to not choosing the right debug target device / emulator.

Next post debugging of this default project.
http://hodentekmobile.blogspot.com/2016/10/developing-apache-cordova-app-using_27.html



Tuesday, October 25, 2016

Using Bootstrap Framework in Intel XDK - 2

Start an HTML Standard project with the option to use the App Designer. Give a name to the project, a project with your chosen name is created. The first thing that comes up is the choice to use the type of designer. Of the several existing options most will be deprecated in future version of Intel XDK. Presently Twitter Bootstrap v3 is still supported fully. The latest version of Bootstrap is 3.3.7 and you can download as described in my previous post.

Creating a project like above is not enough to bring in Bootstrap related js and css references that are needed for developing Bootstrap based apps.

Here is what you get in terms of project folders/files by default:


BS_04.png

You need to place at least one UI element to the project to include these files as shown for a similar project on which a 'button' from the designer was dragged and dropped. Here are the project files/folders.

BS_05.png

After making the above preparation you will be able to use the  Bootstrap JS and CSS codes. Now you are ready to use.

I removed the button after placing it, the references stayed.

Monday, October 24, 2016

Start developing with Bootstrap Framework and Intel XDK - 1

Bootstrap, the most popular framework is a free front-end framework for everything in HTML, CSS and JavaScript. Web development will be faster and easier with Bootstrap. Bootstrap has design templates with buttons, forms, typography, and more. Moreover, it supports responsive web design, designs that automatically adjusts to the devices from smart phones to desktops.

It is,
Easy to use
Has responsive features
Mobile-first
Wide browser compatibility


Intel XDK has built-in support for Bootstrap Framework.


BS_02

For example in a Standard HTML5 project with Bootstrap Framework chosen, placing a 'button' widget on a page adds the following HTML fragment to the page.



BS_00

You can download Bootstrap from here and choose the option to download as shown:

BS_01

You could also link reference Bootstrap from the following CDNs:


Sorry, I can only use images of HTML fragments on the blogger as it does not support 'Pre' tags correctly.

Of course there are many other ways ot using Bootstrap refer ot the link dhsown ealrier.



Wednesday, October 19, 2016

Launch of JS Foundation - Broadening appeal of JavaScript

The Linux Foundation announced the launch of JS Foundation. JS Foundation will be a new project for everything that developer would be going to the open governed, open source JavaScript.

Both JQuery Foundation and Dojo Foundation plan on joining to create a more forceful new foundation.

The fact is JavaScript has become very popular.

"JavaScript is a pervasive technology, blurring the boundaries between server, client, cloud and IoT. We welcome any projects, organizations or developers looking to help bolster the JavaScript community and inspire the next wave of growth for application development."

The initial members are:

Bocoup
IBM
Ripple
Samsung
Sauce Labs
Sense Technic Systems
Site Pen
StackPath
University of Westminster
WebsiteSetup


There is also a mentor program.

The main motive for the foundation is to encourage and drive JavaScript centric projects towards broad adoption and facilitate ongoing development of related technologies.

Read for more about this interesting article here;
https://adtmag.com/articles/2016/10/17/js-foundation-launched.aspx


Tuesday, October 18, 2016

Upgrading to 3619 may encounter problems

There appears to be some problem when you try to install the version 3619 from within Intel XDK. I encountered the same problem and after visiting the Intel XDL forum, I find many others getting into the same problem (Cannot extract package error). Intel forum members identified and suggested work around, getting the xdk-wrapper folder into the correct sub-folder of the installation folder.



It did not work for me. I downloaded the new version from Intel and while installing the full version, I chose the option to repair and that solved the problem.

Are you into IoT? Visit Barcelona to attend the IOT World Congress

IOT Solutions World Congress takes place in Barcelona, Spain during 25-27 October 2016. Not many days left.


The IoT Solutions World Congress is the only event featuring live testbeds of Industrial IoT solutions and applications.

Here are some copied from their site:

Communication & Control Testbed for Microgrid Applications
ENERGY & UTILITIES
Continuous noise monitoring and sound event detection & identification
INNOVATION & TECHNOLOGY

Energy, Information, and Avatars
ENERGY & UTILITIES
"When a physical system is connected in such a symbiotic relationship with its virtual representation, we call the resulting interconnected system a “cyber-physical avatar”.

Industrial IoT beneath our cities. Interoperability and IPv6
INNOVATION & TECHNOLOGY

Remote Patient Monitoring
HEALTHCARE

"Cognizant’s Remote Patient Monitoring solution, powered by Microsoft’s Azure Internet-of-Things platform, empowers healthcare providers to transform the patient care relationship while mitigating the challenges impeding innovation and outcomes.

Sensitive Networking Testbed
MANUFACTURING
"The goal of this testbed is to display the value of new Ethernet standards referred to as Time-Sensitive Networks in a Manufacturing ecosystem of applications."

Smart Airline Baggage Management
TRANSPORTATION & LOGISTICS
"Actual smart baggage trackers / RFID sensors will be shown that generate live data when they move – illustrating how the trackers are used with and applied to airline checked bags generating baggage data and alerts. "

Surgical Kit Tracking Solution
HEALTHCARE
Inventory tracking for surgical kits

Transformation of business operations through IoT enabled edge to cloud video, sensors and advanced analytics
BUSINESS TRANSFORMATION
"Telefonica Fleet Management testbed will show how B2B customers from different industry segments can benefit from vehicle telematics solutions and the best way to support them through the digital transformation process."

Complete agenda of the IOT Congress here:
http://www.iotsworldcongress.com/congress/2016-agenda/

Monday, October 17, 2016

Are you building apps with Intel XDK?

Then you may note the following:

  • The latest update released October 11, 2016 is v3619
  • If you are using versions prioer to 2893 released in March 2016 then the following are no longer supported:
          Build Tab
         Test Tab
         and the Intel App Preview

Please upgrade to version 3619. After this the Debug tab and the hosted weinre server while using Test Tab and the Live Development pane under DEVELOP Tab are deprecated and will be retired soon.

What's new in v 3619?

A keyword-based filter for sorting samples and prjects
New Linux and Apple OSX installers
New Iot Project Samples using Microsoft Azure

Many other issues have been addressed. Too numerous to sumarize here.
Follow this link:
https://software.intel.com/en-us/xdk/docs/release-notes-information-intel-xdk

Monday, October 10, 2016

Intel XDK: Controls 13: ACCORDION Control in App Designer 7

In this post I will be considering the most basic implementation of the ACCORDION control in an Intel XDK App Framework 7 project.

I had described the accordion control  years ago while using the DOJO framework, another framework that worked splendidly.

You can create a project with an ACCORDION control on the web page.

You launch Intel XDK (Version3522) and create a Standard HTML5 project and choose to use the App Framework 7. This creates a single page application and the DESIGN features will be available.

I just placed a HEADER and replaced its title to My Books. The ACCORDION control is available under CONTROLS as shown.


Accordion_00

For this post I tried dragging and dropping this control on to the page and it does not work, probably by design. What you need to do is to drop the following HTML fragment for this control on the page.

Accordion_01

This is where you would place this code:


Accordion_02

This will generate an accordion control with three accordion items, the second of which is displayed expanded in SIMULATION (very faint ellipsis at the left edge of displayed area below 'My Books'..


Accordion_03

The first three ellipsis in the display belong to the three acordion items and the last ellipsis is what is shown in the fragment.

The second fragment is shown here and it shows a toggle and also the content it will toggle to.


Accordion_04

Now I added some content to replace the ellipsis in the HTML fragment as shown. The changes are as shown. In the content area insert your content which may include images, etc.


Accordion_05

With the above, the DESIGN page looks like this:


Accordion_06

The displayed page appears as shown with the first item in Clicked state. You can click the other accordion items which will close the one that is open and opens the one that is clicked.


Accordion_07

I apologize in inserting pictures of code instead of the code itself as the blogger does not support the 'pre' tags.


       

   

Developing Universal Windows Platform on Windows 10 devices -1

You must be in Developer Mode both on the PC on which you develop Universal Windows Apps as well as any device on which you want to test your app.

In this post I discuss the Settings in your PC. If your in Developer Mode on your PC then you can open a Universal Windows Platform (UWP) project in Visual Studio.

Developer Mode on the PC:
For example I am in Developer Mode on this computer on which I intend to develop a UWP App. When I open up Settings as shown I can search the item for 'For developers'.


UWP_00

Clicking on 'For Developers the following is displayed, where if are not already in Developer Mode choose the option.


UWP_01

As you develop you may want to test on a connected device which may be on the local area network or a USB connected device and you should enable them on this page.


UWP_02

You should also enable the Windows Explorer settings to make your work more efficient.


UWP_03
Also settup the Remote Desktop settings and some of them are default when you are developer mode.


UWP_04

You may need the assist of PowerShell and to avoid bottle necks in running the PS code locally this settings will be needed.


UWP_05

In the next post I describe the settings for a Windows 10 Phone, the Microsoft Lumia 950.

Tuesday, October 4, 2016

Google enters the phone hardware battle with its Pixel phones

The field is full of actors having various kinds of difficulties from exploding phones to trembling hardware infected with 'touch disease'. Apart from the headline news of problems there is the underlying problem with 'Sales'. Google wants to take on Apple, if I go by some of the Internet sites.

Microsoft has tried to enter smart phone market with a really good phone like Microsoft Lumia 950. It has not made any significant dent and can Google with similarly priced phones with very similar features do any better. OK, there is a better camera, so what?

Google is also moving to AI-First from Mobile-First. Looks like it wants to one-up the Microsoft's Mobile-First slogan.

Google phones were already in the market with the brand name Nexus made by Chinese and Korean manufacturers but now PIXEL is a Google branded phone made by HTC. Pre-ordering has started in many countries and you can pre-order at the Google site.




The most significant feature of what makes it different from other phones is its advertised AI integration. Wait and see how good it is!

This is the core of the future of 'Windows', the Universal Windows Platform

Windows evolved from just windows to include 'phones'.

When Windows 8.1 was introduced Windows Runtime(WinRT) which was evolution of Windows app model came up with the Universal Windows 8 apps for both Windows and Windows Phone. Windows and Windows Phone shared a ccommon piece of code.

Universal Windows Platform was introduced beginning Windows 10. The target was no more the Windows OS or Windows Phone OS but a common platform with a unified core. This core runs on all devices in the Windows family.

Devices running this core can target can not only call WinRT APIs that are common to all devices but also Win32 and .NET APIs that are specific to device family. This means all you need to develop is a single app package that can be installed on a wide variety of devices shown here.

UWP_00.PNG

On any device, you have therefore, the guaranteed core and you add APIs on top of it specific to the device. You will conditionally access the device specific features in your code.

Here is the present line up of the device family.

UWP_01.PNG

Here is a Video from Microsoft's Channel 9 with additional information: