Author: <span class="vcard">kenio.carvalho</span>

IBM Champions demonstrate both expertise in and extraordinary support and advocacy for IBM technology, communities, and solutions.

I am an IBM Champion since the first class  (2011) an this year i wish to be  an IBM Champion for the year 2020.

New Champion Nominations are open now through 22 November 2019. Current IBM Champions may submit a renewal through 9 November 2019.

To nominate an IBM Champion use this link

 

Uncategorized

Node-Red 1.0 released today.

Some new features:

Asynchronous message passing

This release changes the message passing between nodes to be always asynchronous rather than it being sometimes asynchronous and sometimes synchronous depending on the implementation of individual nodes.

Node Send API

Nodes now have a new API available for how they handle messages in the runtime. This API allows them to tell the runtime when they have finished with a message.

This will help the runtime to track nodes as they flow through the system – enabling future features such as automatic timeouts of nodes.

To go along with this change, we’ve introduced a new Complete node. This node can be targeted at another node, like the Catch node, and it will be triggered when the targeted node finishes handling a message.

Cloning messages

A knock-on effect of the async messaging change is a change to how the Function node clones messages. It used to avoid cloning messages if it could, but this led to hard to detect issues once the async message change was introduced.

So now the Function node will also clone all of the messages you pass to node.send().

If you have a flow that depends on the message not being cloned, you’ll need to update your flow to request the runtime not to do the cloning.

 

Read  more information here

 

IoT

The course isn’t quite for total beginners as it assumes people have done a little programming in JavaScript or played around with the MIT-developed Scratch visual programming language aimed at kids.

But it could help beginners kick-start ambitions to build machine-learning apps, web applications, or automate processes on a desktop.

Uncategorized

The Configuration Comparison Tool (CCT) is a lightweight wsadmin script and Python report generation script which will produce HTML reports on configuration settings for the following types of resources.

  • Application Servers
  • Node Agents
  • Global Security configuration (not Domain Security)
  • Trust Association (Global and Domain)
  • SSL Configurations
  • Data Sources
  • J2C Resource Adapters
  • JDBC Drivers
  • Object Cache instances
  • Servlet Cache instances
  • Service Integration Bus instances
  • Resource Environment Providers
  • Resource Environment Entries
  • File system comparisons

CCT usage scenarios:

  • Isolating configuration creep: Periodic configuration snapshots can be gathered and archived. These can be used to see what configuration changes that have been made over time.
  • Troubleshooting inconsistent cluster member configuration: Servers and node/server specific resource configuration anomalies can causes unexpected runtime behavior from different servers within a cluster.
  • Assisting in migration to a new version of WebSphere: Cross version configuration reports can help ensure a complete migration of server and resource settings.

More information on this IBM Technote

A webcast is scheduled to September 12 about this tool

WebSphere WebSphere Portal

One of my apps does not start after a restart. I changed several things on the Node-Red app and i think the restart will be a good idea.

On the logs view there was no good messages to see what is happening with Node-Red

So i start the terminal and go to use IBM cloud CLI

to get the app log just logon and type ibmcloud cf logs [appname] > log.txt

I saw the following messages

[CELL/0] OUT Cell a64da35a-93fb-4f76-abd8-219869380b84 creating container for instance 6b30e79e-2853-4199-4c3e-1cc0
2019-09-04T13:54:47.36-0300 [CELL/0] OUT Cell a64da35a-93fb-4f76-abd8-219869380b84 successfully created container for instance 6b30e79e-2853-4199-4c3e-1cc0
2019-09-04T13:54:55.45-0300 [CELL/0] OUT Starting health monitoring of container
2019-09-04T13:55:06.64-0300 [APP/PROC/WEB/0] OUT > [email protected] start /home/vcap/app
2019-09-04T13:55:06.64-0300 [APP/PROC/WEB/0] OUT > node –max-old-space-size=180 index.js –settings ./bluemix-settings.js -v
2019-09-04T13:55:06.98-0300 [APP/PROC/WEB/0] OUT 4 Sep 16:55:06 – Starting Node-RED on IBM Cloud bootstrap
2019-09-04T13:55:06.98-0300 [APP/PROC/WEB/0] OUT 4 Sep 16:55:06 – Loading bluemix-settings.js
2019-09-04T13:55:07.18-0300 [APP/PROC/WEB/0] OUT 4 Sep 16:55:07 – Failed to find Cloudant service: /^IoT-Cool.cloudantNoSQLDB/
2019-09-04T13:55:07.19-0300 [APP/PROC/WEB/0] ERR module.js:478
2019-09-04T13:55:07.19-0300 [APP/PROC/WEB/0] ERR throw err;
2019-09-04T13:55:07.19-0300 [APP/PROC/WEB/0] ERR ^
2019-09-04T13:55:07.19-0300 [APP/PROC/WEB/0] ERR Error: Cannot find module ‘./node_modules/node-red/red/runtime/storage/localfilesystem’

Node-Red was unable  connect to Cloudant. But not was changed on Cloudant side.

I changed the Title of the app to another name before the restart, that was the cause of the problem.

I think there is a relation between the APP name and the Cloudant Service linked to the app

After i change the app name to the old one, Node-Red starts again.

 

 

 

IoT Uncategorized

I’m working on projects that involve many technologies and frameworks.

Particularly in one of our projects the IceGuard many things have been used such as Flutter for mobile application, Node-Red for  integrations,  IBM Cloud and IBM Watson IoT services.

We have reached a point where an asset management application such as sensors and gateways is required.

The application has the requirements:

1 – Run OffLine and Web

2 – Data replication

3 – Authentication and  Data security

4 – Integration with other applications.

5 – Implement a simple flow of approval.

Another detail is that we needed it to be developed rapidly.

Much is said that the Lotus IBM HCL Notes & Domino is dead.

Not for my case. If I were to use another product (s)/technologies I would spend two working days at least to architect the entire application, choose the Framworks to do the job, not to mention  database modeling,  authentication service, etc., etc.

With the HCL Notes & Domino i create the application in just one day!

It is a simple application, but that solved a real problem of my project.

Notes & Domino do the job.

Domino

These are my steps to create a MySQL Docker container, i am using Docker for Mac.

1 – Create a folder to save the database. If you do not create a Docker volume you will loose your data when you restart your container.  My folder is /Users/keniocarvalho/VolumesDocker/mysqdata

2- Execute the command bellow:

docker run –name mysqldb -p 3306:3306 -v /Users/keniocarvalho/VolumesDocker/mysqdata/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest

3 – Enter on the mysql container using the command :  docker exec -it mysqldb bash

4 – Inside the container type : mysql -uroot -p. The system will ask for the password. Here the password is password.

5 – To access the database from outside the container run this commands on the mysql console:

CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’;

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;

FLUSH PRIVILEGES;

Verify the permission:

mysql> SELECT host, user FROM mysql.user;
+———–+——————+
| host | user |
+———–+——————+
| % | root |
| localhost | healthchecker |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+———–+——————+

Now you can access the mysql from outside of the container using port 3306  from any host.

Obs: This is not a setup for Production use only in your development workstation.

 

Uncategorized

Last week i got back my Macbook Pro 15 2016, after 10 days.  The laptop go to service on an Apple Technical Assistance here in my city.

My first Macbook Pro (Mid 2012) works for 5 years without issues.

The first problem was the speakers. Sound was horrible.  The problem is the same described on this link.

The second problem was the battery. With only 86 cycles a message about to service the battery appears.

The third problem was #staingate. 

Apple replace all parts of my Macbook. The service is ok until now.

Lots of problems with this expensive machine. The quality is not the same anymore.

Uncategorized

 

Cloud service end of marketing and end of service: Connections Cloud

Effective July 16, 2019, HCL® will withdraw from marketing all part numbers related to Connections Cloud (5725-F82), inclusive of but not limited to Verse, SmartCloud Notes, Connections S1, Connections S2, Connections Social Cloud, Connections Engagement Center, Connections Chat, Connections Meetings, Dual Entitlement,  and Domino Applications on Cloud (5900-A1K) as subscribed to under the applicable agreements.  Existing Connections Cloud customers will be able to purchase additional entitlements through the end of service date.

Effective, July 16, 2020, HCL will end service for all part numbers related to Connections Cloud.

More information here

Cloud

Rules are key elements for an IoT solution. Using rules you can trigger an action or send an alert any kind of notification.
IBM update his platform and now you can create rules using a graphical interface.

The key part of a rule is the expression that will be evaluate to true or false.  The expression language are built using JSONata.
JSONata is a lightweight query and transformation language for JSON data.

The point is that IBM are using JSONata v1.4x. and the current version of JSONata is v1.6.5. The versions have lots of difference.
Yesterday i was writing a rule to get the hour for an event. If you are using v1.6.5 you can use the function $fromMilllis with picture.
$fromMillis(1510067557121, ‘[H01]’, ‘-0500’) => “10”
But Watson IoT are using v1.4x  and $fromMillis doesn’t have the picture implemented. The only way i found is to manipulate strings and i got the following expression:

$number($substring($fromMillis($state.datahora),11,1)) < 1 and $number($substring($fromMillis($state.datahora),12,1)) < 3 ? $number($substring($fromMillis($state.datahora),12,1))+24-3 : $number($substring($fromMillis($state.datahora),11,1))*10+ $number($substring($fromMillis($state.datahora),12,1))-3
$state.datahora returns an epoch timestamp.
This expression returns the hour on my timezone (-3). If anyone have a more elegant solution post on comments. I know my solution can’t be the better one, but it works.

IoT

This month i am creating a Course about AI & IoT   (AI & IoT Fundamentals).

The course are about AI and IoT in general but i will use IBM Watson APIs, IBM Watson IoT and off course Node-Red and Raspberry Pi to make the excersices.

The course is 15 hours long (lots off video) plus the exercises.

Using the Keynote to generate de videos is fine but when i export the video the only option is M4V type.  To convert the videos i am usin FFmpeg.

1 – Install FFmpeg brew install ffmpeg

2 – Convert to mp4 using ffmpeg -i input.m4v out.mp4

3 – Convert to webm ffmpeg -i input.m4v output.webm

 

AI IoT MAC

This is the first public beta release of Node-RED 1.0.

The changes in this release are mostly focused on the editor – and there are some significant changes in there.

More info here

Installing the beta

If you want to try out the beta, you will need specify node-red@next when you use npm to update. Without the @next you’ll still get 0.20.x.

So on a Pi you’d do:

sudo npm install -g --unsafe-perm node-red@next

IoT