Wednesday, September 6, 2017

Great resource if you want datacentric apps

This is a very useful site that you should acquaint yourself with. You can create apps that work with SQL Server with all of the following:

C#
Java
NodeJS
PHP
Python

on

Windows
macOS
RHEL
UBUNTU
SLES (Suse...)



You need to start at this link:

Thursday, August 31, 2017

Where I can find the latest TypeScript?


TypeScript 2.5 (the latest) is now available for download here:

http://www.typescriptlang.org/#download-links



TypeScript2.5_0

If you have installed npm, installing TypeScript is a breeze.

> npm install -g typescript

Read here for installing npm:

http://hodentekhelp.blogspot.com/2017/08/what-is-npm-and-how-is-it-useful.html

Sunday, August 27, 2017

Most useful program for mobile development

npm is the package manager for JavaScript and the world’s largest software registry. npm is distributed with Node.js- which means that when you download Node.js, you automatically get npm installed on your computer.

Test if you have installed Node.JS and npm. There are lots of versions of Node.JS and npm and be aware of the versions and their compatibility.


NodeNmpInstalled.png

npm registry has the largest(millions) number of packages of free, reusable code.
Depending on your needs you may choose one of these account types for using npm.


Node_NpmAccTypes

It provides an huge registry with many different programs like jQuery, AngularJS etc.

For example, if you are installing Cordova package you can do so from command-line like in here;

 C:\>npm install -g cordova

The -g switch means globally, otherwise it will be installed in the node_modules subdirectory.

Here is help file for npm:
---------
npm is the package manager for JavaScript and the world’s largest software registry. npm is distributed with Node.js- which means that when you download Node.js, you automatically get npm installed on your computer.

Test if you have installed Node.JS and npm. There are lots of versions of Node.JS and npm and be aware of the versions and their compatibility.


NodeNmpInstalled.png

npm registry has the largest(millions) number of packages of free, reusable code.
Depending on your needs you may choose one of these account types for using npm.


Node_NpmAccTypes

It provides an huge registry with many different programs like jQuery, AngularJS etc.

For example, if you are installing Cordova package you can do so from command-line like in here;

 C:
\>
npm install -g cordova

The -g switch means globally, otherwise it will be installed in the node_modules subdirectory.

Here is how you run the help file for npm:


Node_npmHelp

npm master reference here:
https://www.npmjs.com/

Here is how you run the help file for npm Install:


Node_npmHelp

npm master reference here:
https://www.npmjs.com/

Wednesday, August 23, 2017

Jumpstart Javascript to program IoT controllers using Johnny-Five

HTML/JavaScript option to work with IoT will have a large following. Johnny-Five a JavaScript Robotics platform (by the Bocoup group released in 2012) will be very popular with IoT developers.


If you use the Johnny-Five Inventor's kit (J5IK, $125.95) you can program a lot and learn a lot.
The J5IK empowers users to build internet-connected, JavaScript-powered hardware projects by marrying the ubiquitous language with the Tessel 2 single-board computer and several components to get users started immediately.

Tessel 2 Features (from Tessel site):

This kit (from Johnny-Five site):
  • Provides a powerful foundation for IoT projects
  • Includes everything needed to complete 14 circuits
  • Does not require previous programming experience or soldering
  • Connects users with a thriving community and exemplary documentation.
  • Supports beginner and more advanced projects 
Although the applications are limitless, the kit allows users to control and read external sensors and displays, control motors, and use and learn JavaScript.

Tuesday, August 22, 2017

Turn your smart phone into a PC

It is more correct to call it Samsung DeX Station (hardware) that pairs with Samsung's Galaxy S8 phone to provide you a real desktop experience that you always wanted.

Hear what VMware calls this:
"Samsung DeX redefines what a smartphone can do to keep mobile workers productive with just their smartphones."

Your Samsung Desktop would consist of a computer monitor, keyboard, mouse, Samsung Galaxy S8 and the DeX Station.
Review the below image:


As you can see in the above image, Microsoft is there with all its Office 365 products.  Microsoft's dream of entering the mobile world may still be realized although Windows Phone is near extinction.
Microsoft has played a smart hand in going with Samsung on this.

Looks like Google Drive is still accessible and there are still few more programs(Hancom Office, Citrix Receiver and VMware Horizon Client).

Hancom Office consists of Hanword (a.k.a. Hangul, hwp), Hancell (Spreadsheet), and Hanshow (Presentation program).

Citrix Receiver is a suite of products that allow client devices to connect to various desktop virtualization services offered by Citrix.

VMware Horizon:
VMware Horizon delivers true Windows desktop and applications computing experience on Samsung Galaxy S8 through the VMware digital workspace and Samsung Desktop Experience (DeX)



Friday, August 18, 2017

Page navigation in Single Page Applications! using AngularJS

Actually there are no 'Pages' in a Single Page Application (SAP) but no problem. If you are familiar with anchor tags in HTML, you could follow it with the help of the SRC's in your script that will help updating the page dynamically calling up the routing in AngularJS.

These are two important script references that you should add to your SPA:<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script><br /><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script> 
This is an important module that makes routing possible:
ngRoute:

ngRoute module provides the routing and deep linking services and directives for a Angular JS applications.

You should read the documentation which gets clearer when you do an example.

ngRoute teams up with ngView directive to render the partial views.

ngView:
"ngView is a directive that complements the $route service by including the rendered template of the current route into the main layout (index.html) file. Every time the current route changes, the included view changes with it according to the configuration of the $route service."

Here is an example of a SPA hosted on my localhost (the file below is placed in the wwwroot directory of  C:\inetpub

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>

<body ng-app="HtekApp">
<h1>HODENTEK BOOKS</h1>
<p><a href="#/!">Welcome to Hodentek</a></p>

<a href="#!SSIS">SSIS </a>
<a href="#!SSRS">SSRS</a>
<a href="#!Azure">Azure SQL</a>


<div ng-view></div>

<script>
var app = angular.module("HtekApp", ["ngRoute"]);
app.config(function($routeProvider) {
    $routeProvider
    .when("/", {
        template : "Click on the link to see the contents"
    })
    .when("/SSIS", {
        template : "<h1>SQL Server Integration Serivces 2005"
    })
    .when("/SSRS", {
        template: "<h1>SQL Server Reporting Services</h1><h2>SSRS 2008: ISBN: </h2><h2>SSRS 2012: ISBN</h2>"
    })
    .when("/Azure", {
        template: "<h1>Microsoft SQL Azure Enterprise Application Development</h1>"
    });
});
</script>


</body>
</html>

The page renderings of the links are as shown:











Monday, August 14, 2017

svg in HTML5

SVG is variously described as  'part of HTML5 specification' or an HTML5 extension. In either case, I am very happy as I am a fan of SVG.

In HTML documents you could embed an in-line SVG code.
SVG in some cases appear superior to Canvas in HTML. SVG creates prefabricated graphics that is part of the documnet model which can be accessed by the ID for any event based action, where as the graphics for use in CANVAS needs to be created and rendered during page loading.

Read my SVG related posts here:

http://hodentekhelp.blogspot.com/2015/12/does-microsoft-edge-support-svg.html

http://hodentek.blogspot.com/2009/10/finally-svg-in-visual-studio.html

http://hodentek.blogspot.com/2010/09/svg-gets-rendered-on-ie-90.html

http://hodentek.blogspot.com/2013/08/short-of-cash-get-apache-openoffice-40.html

http://hodentek.blogspot.com/search?q=svg

http://hodentekmobile.blogspot.com/2016/03/intel-xdk-controls-2-usage-of-svg-and.html

Monday, July 17, 2017

Single Page (web) Applications are trending

It is exactly what it says. Single Page Applications (SPAs) are web applications with a single web page that uses AJAX for its dynamic interactions. As page refresh is on the client side the SPAs can have downside of performance degradation if they are not properly designed and SEO optimized.

There are many JavaScript frameworks to write SPAs. There are lots of JavaScript frameworks that you can use to build SPAs. Lots of them are Open Source. Here are some:

WinJS
Angular
React
Ember
Aurelia
Dojo
Vue.js
Cycle.js
Backbone
Dojo


I hear a lot about Angular and Aurelia, perhaps more people are using them.
Intel XDK had both Angular and Backbone templates, but they are not supporting them anymore.

AngularJS is in Version 2.

I have a large number of posts on Intel XDK here.

Friday, June 30, 2017

Comprehensions in JavaScript

Comprehension(s) list(array) is used in many computer languages. What it does is it takes an array and modifies it  to create a new list(array) based on some modifier.

For example if you have a list like this: [ 1,2,3 ],
you can create a new list with each element of list replaced by itself multiplied 3 times like in Example 1

In the second example from Mozilla site, you take an array of lower case letters and use the Javascript string operatory 'toUpper()' to generate a new array with letters of each element capitalized.


Read here:
https://www.xul.fr/javascript/comprehension.php
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Comparison_operators

These were tested to work in Mozilla Firefox (I believe it is version 54). However it does not work in Microsoft Edge. I believe these are still being tested for future version of ECMA script according to the Mozilla Developer site.

Monday, June 26, 2017

Apache CORDOVA is the place to go if you were using Intel XDK

I was following Intel XDK for more than a year  with many posts on my blog for mobile devices and participating in Intel's forums.  I have observed that its emphasis was slowly changing and I started looking for alternatives. There are programs for which you need to pay, which I am not ready, as I do not derive any revenue from what I do. I am looking for free programs.

Progressively Intel XDK has been shifting their focus to mostly Intel IoT devices. The App Designer support does not exist anymore except for a few features in the interface. The Interface as you knew it is now mostly geared for IoT devices. Intel XDK forum suggests that there are more tools freely available (on the Internet) that may do equally well and a strong recommendation for using Cordova CLI.

Well one cannot expect a tool to live eternally and things do change. What is needed on the part of developers\users is to turn somewhat nomadic and look for new pastures.

Here is a link to Apache CORDOVA site where you need to forage next. Of course, Apache CORDOVA will be there much longer than Intel XDK could have been. For one thing, Apache CORDOVA has a neat architecture for building web/native apps which means you need to use the plugins if you need to access sensors in the mobile device.

Here is a picture of the well-knit Apache CORDOVA architecture from their site:


Monday, June 19, 2017

AngularJS Directives that you should know

AngularJS directives are extensions of HTML markups. They can be attributes, element names, CSS class etc. AnuglarJS script reference is important and the script can be found here:

https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"
The above script reference needs to be added to your hTML page.

You can find the whole list of directives here:
https://docs.angularjs.org/api

Here is the usage of some directives placed in a html page that can be displayed on your localhost (in this case the IIS in Windows 10). Place this code with a suitable name in the inetpub / wwwroot directory.

======================


  Some directives in AngularJS

ng-app
Sorry, blogger still does not support the "pre" tag!. The ng-app directive can be in the 'html' or the 'body' (shown here).
==============
When viewed on the browser (in this case Microsoft Edge), the HTML page renders as shown.



Type anything it gets copied next to Hello
Enter the increment region with your mouse, the count (presently 1) gets incremented
Click the link and you get to the page

More to come in future posts on AngularJS

Monday, May 29, 2017

What is Cafee2Go?

You create a video and you want it the way Picasso or Monet would have visualized it. Can it be done? The answers appears to be answered by Facebook's Caffe2Go. It was easy with stills as many programs do it, but with a video it is another thing.

Caffe2Go is supposed to be third iteration of AI, the deep learning. This was possible earlier with big machines and lots of computing power, since the program has to learn the myrid images that these great artists envisioned it could not have been done otherwise. But to do it on the phone in the palm of your hand, that is something that Facebook seems to have pulled off, with the Facebook app Caffe2Go.

It is a deep learning platform on the mobile phone. The app takes the style of the artist and transforms the input video, it is basically a style transformer.

Here is a demo of this deep learning app:
https://www.facebook.com/Engineering/videos/1015460775164720

Thursday, April 6, 2017

Markdown Syntax makes web page more readable, editable

HTML markup is well known and Markdown Syntax is a construct to make a web page readable.  Markdown syntax is used to make it possible to write to the web using simple text.  It is a text-to-HTML tool for web authors. No need to type those angle brackets(< and >).

Markdown syntax is very small and not extensive like that of HTML. It is not used to replace HTML but to make it easy to read/write/edit prose in a web page. Markdown does not need special editors.

Since Markdown consists of few constructs if you need beyond them you can use HTML. One of the special constraints in using Markdown is in the case of block level elements such as 'table', 'pre', 'p' etc. In this case for using Markdown just surround block-level elements with blank lines and Markdown syntax takes care of the rest.

Learn more about Markdown syntax here. While you are there click on the tab Dingus tool (written in Perl) to convert your Markdown Syntax to html syntax.

For example you can create first and second level headers by just typing them as shown here:

A First Level Header
=====================

A Second Level Header
---------------------


The above Markdown text will be converted  into the HTML source by the Dingus tool: (note: Blogger does not render the 'pre' tags which are in the source of this page. That is why you are seeing the h1 and h2 tags rendered. Review my post on this browser problem.

A First Level Header

A Second Level Header

The Markdown text is readable and can be typed in with a text editor and the tool converts it to web compliant HTML.

Review the screen shot here:

The
pre
tags continues to not work in Blogger

For quite sometime I have had problem displaying HTML code in my blog as the Pre tag did not render correctly. Here I am trying to see what is happening, if any, in rendering the Pre tag. I decided to show only screen shots of either the HTML tab in my blog post, or the Compose tabbed page of my blog so that the browser effects are properly seen.

When you want to create a new post in Blogger, this is the HTML code you get and the 'Compose' page is empty.


Pre_00
Now I enter a single line-'This is a test' in the Compose tabbed page.

Pre_01

The HTML markup shows this:


Pre_02

Now I add a 'Pre' tag as shown.


Pre_03

The following is the content of the 'Compose' page.

Pre_04
So far no problem, good.

I now go back to HTML pane. Looks OK, but it has added another repeating line at the top.


Pre_05

Not a big difference. I refresh the browser and everything back to as it was before refresh.
I just draw a line in 'Compose'.


Pre_06

The HTML after this appears as shown. It has added 'Pre' tags as shown. Why 'pre' tags why not just 'p'.

Pre_07

I just added a 'div' tag and I am going to place a 'Pre' tag inside the 'div' tag.


Pre_08

This is the 'compose' page.

Pre_09

I added some 'pre tag' inside the div tag


Pre_10
The compose  now appears as shown.

Pre_11
I add another div and within div I add a pre tag. In the pre tag I add special characters (HTML markup) as shown.


Pre_12

The Compose page after the above appears as shown.

Pre_13

The pre tag did not work as intended for html tags.
I revert to the HTML to see if the blogger's processor has added any thing by itself. It does some time. No change.


Pre-14
I add a dotted line in HTML code.


Pre_15

There is an expected change as shown.


Pre_16

I revert to HTML and I see it has changed.


Pre_17
This time it accommodated the dotted line inside the 'div'. I modify the page with 'code' tags as shown. Some recommendation from some of the Internet sites is to enclose it in 'code'


Pre_18

The 'Compose' page now appear as shown.
The extra > in the last line appears to be an error while typing.
 Page_19

It is getting worse!

I refresh the page and nothing is changed in 'Compose'.

I host the html page on the local IIS Server and the response is as shown.


Page_20

The conclusion is  'Pre' tag is not working in the Blogger as it is supposed to.



Publishing Mobile Reports using SQL Server Mobile Report Publisher

SQL Server Mobile Report Publisher (SSMRP) is an authoring tool that can be used to quickly creating Reporting Services mobile reports that are optimized for mobile device with a variety of form factors. You can have an assortment of visualizations, from time, category, charts, tree maps, and custom maps.

With SSMRP you can,
  • Connect mobile reports to a range of data sources including on-premises SQL Server and Analysis Services
  • Layout reports on a design surface to accommodate flexible mobile reports
  • Save mobile reports to a Reporting Services server and interact with them in a browser or with Power BI on mobile devices(iPad, Android Phones and tablets and Windows 10 devices).
What do you need to create Reporting Services mobile reports?
You need the SQL Server Mobile Report Publisher

Version: 1.0.3923
File Name: SSRS.MobileReportPublisher.Installer.msi
Date Published: 9/22/2016
File Size: 25.3 MB

System requirements:
Supported Operating System
Windows 10 , Windows 7, Windows 8.1
.NET Framework 4.5 (or later)
Visual C++ Redistributable for Visual Studio 2012 (x86)

Download SSMRP here:
https://www.microsoft.com/en-us/download/details.aspx?id=50400

Wednesday, March 29, 2017

Apps with Mobile Roadie, the one-stop platform

MobileRoadie is the platform to build mobile apps with rich features. It is also one-stop, build, manage, design and engage. It supports all media, photos, video and audio. The text color in the picture may not show you the logo clearly!



Here are features taken from Mobile Roadie site.

Using Photos:

Upload your photos manually, or automatically pull in your photos from an RSS feed, Flickr account, Instagram account or hashtag, Mobypicture, Picasa, Twitpic, or Facebook Fan Page profile photos.
Users will see your photos in a grid layout of your choosing, and can even play a slideshow of your photos.

Embed news:

Add news posts manually, or import automatically via RSS feed, Twitter account, or Google News keywords.
   
Each item has artwork, title, date & time, and HTML story content.

FAN Wall:

    Import your past and upcoming events from Artistdata, Bandsintown, Songkick, Plancast, Ticketmob, SonicLiving, Eventbrite, or add them manually.
    Your users can RSVP to events, add to their calendar, see who else is going, and post photos of the event.
    Choose to display your events as Live Shows layout or Sessions/Workshops layout to best suit your content.

Locations:

Add locations along with addresses, contact info, and images.
    Your users can view your locations as pins on a map, as well as in a simple list.

Others:

    We have a wide variety of sections to suit your content, and are constantly adding more.
    Some of the other sections you can add to your app are: Accounts, Attendees, Biography, Books, Category Shortcut, Copyright, Directory, Discography, Favorites, Links, Mailing List, Menus, QR Scanner, Speakers, Store, Top Users, Twitter.

How to get started building apps with MobileRoadie?


Easy. Click the button Start Now at the bottom of the site, fill up their form and wait form them to reply.

 I thought I would find more technical details. It appears I have to register and get the reply before I can see how all of this get integrated.

Now we have Samsung Galaxy S8 and S8+

They are black, they are beautiful and they have OLED screen. There is yet another voice assistant BIXBY to join the Cortana, Alex and others. The future looks like the battle of the voice assistants.
While S8 is 5.8", the S8+ is 6.2" with an aspect ratio of 18.5/9. probably the battery (3000 Ah & 3500 Ah) must have had an extra overhaul. The battery can be charged using the USB-C charging port.

It has nice resolution 2960x1440 with the display covering 83% of the face. There is no HOME button but there is a pressure sensitive area that functions as one.The cameras remain the same as in its earlier phones.

It appears that it has been designed to work with the up and coming Internet Of Things like the Connect Home feature.The OS is android.

The phones ship sometime next month.


Here are the specs (look after zooming) as seen on the SAMSUNG News Room site.








Monday, March 27, 2017

Is Microsoft Band 2 dead?

I thought it was a nice fitness device, not as flashy as Apple Watch. I was even preparing to buy one. The only place where I could by was at amazon.com. It is not available in Microsoft Stores.

I believe Microsoft has pulled it out of the stores. Even the developers SDK is not available anymore.

Cutting of the limbs like this can only mean one thing. Microsoft Band 2 is dead.

I have to look at other options. There seems to be too many with a staggering price range.

Well what about Samsung's band? I will look into it. It will not come cheap.

Sunday, March 26, 2017

Creating a database in SAP's Ultralite 17 - Part 2

Mobile apps without data are not very interesting especially for enterprise / business applications. Most  businesses are data-centric. Ultralite databases with their small foot print are ideal for mobile applications. As described in the previous post you can use the APIs to create apps on many different devices.

In this post I describe the steps to create a database with all the default settings using the SQL Central interface. If you are new to SQL Central (was previously called Sybase Central) you may want to read my older posts here.

Launch SQL Central from All Programs under SQL Anywhere 17.
Click Tools and choose under UltraLite to create a database as shown.


Create_00.png

 Creating a database is driven by the Wizard which appears as soon as you click Create Database... in the above window. The following sequence of windows shows how the database is created. Although you can make many changes to the database settings, all defaults are used in this post.

You start with the welcome window. Read the notes here.


Click Next,


Use the Browse... button to find the location for the database you are going to create and provide a name. Herein the name is Mar25_2017.

Click Next. Accept the default storage settings.

 Click Next.
Next choose the Collation and character set. Herein Ultralite defaults are accepted.

 Click Next.
Accept the default creation parameters. Have a look at what they are (these are Ultralite defaults).
You can change any or all of them.

 Click Next.
You may leave this as is. Synchronization is important for synchronizing the UltraLite with the main server. For the moment you may leave this empty.


 Click Next after placing a check mark for connecting to the new database. This makes the database available in the SQL Central Management interface.


 Click Next. Oh! you get the command line way of creating this database. What the wizard delivered is the execution of the command line with the parameters (Switches) shown here. This is neat. Next time around you may just use the command line.


 Click Close. The database is created and now appears in the SQL Central under Ultralite 17 (Compare this to the very first image in this post)


Here is the Properties page for this database. Presently it has objects such as Tables, Users etc.