John Boyer (IBM)3 examples of ClearCase reformat VOB

Hello everyone,

Here you have 3 examples with the steps while reformating a VOB, on the first you have a regular dump / load process using "cleartool reformatvob",

on the second we have a manual dump and load using db_dumper and db_loader tool, and the third example we have a dump made using "cleartool reformatvob"  followed by a load using db_loader, util for the cases where a "cleartool reformatvob -load" fail.

####### Index ###########
I - Regular Reformatvob (dump and load)

II - Manual dump/load

III - Dump with reformatvob and load manual


I - Regular Reformatvob  (dump and load)

cleartool lock vob:/vobs/vob-snap-test

cd /home/user1/vobstore/vob-snap-test.vbs/
[user1@machine1 vob-snap-test.vbs]$ ls -lhtr
total 32K
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 vob_oid
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 replica_uuid
-rw-r--r--. 1 user1 user1  625 Nov  1 10:59 vob_server.conf
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 s
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 d
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 c
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 db
drwxr-xr-x. 4 user1 user1 4,0K Nov  1 10:59 admin

[user1@machine1 vob-snap-test.vbs]$ ls -lhtr db/
total 516K
-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
-rw-r--r--. 1 user1 user1 8,0K Nov  1 10:59 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Nov  1 10:59 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Nov  1 10:59 vob_db_schema_version
-rw-r--r--. 1 user1 user1    0 Nov  1 10:59 almd.lck
-rw-r--r--. 1 user1 user1  108 Nov  1 10:59 vob_db.str_file
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k04
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k02
-rw-r--r--. 1 user1 user1  24K Dez 20 18:22 vob_db.k01
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d05
-rw-r--r--. 1 user1 user1  28K Dez 20 18:22 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d01
-rw-r--r--. 1 user1 user1 8,0K Dez 20 18:22 vob_db.d03
-rw-r--r--. 1 user1 user1 334K Mar 29 10:26 almd
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tcf
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:26 vista.taf
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tjf
drwxr-xr-x. 2 user1 user1 4,0K Mar 29 10:26 logs

cleartool reformatvob -dump /home/user1/vobstore/vob-snap-test.vbs

[user1@machine1 vob-snap-test.vbs]$ ls -lhtr
total 36K
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 vob_oid
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 replica_uuid
-rw-r--r--. 1 user1 user1  625 Nov  1 10:59 vob_server.conf
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 s
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 d
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 c
drwxr-xr-x. 4 user1 user1 4,0K Nov  1 10:59 admin
drwxr-xr-x. 3 user1 user1 4,0K Mar 29 10:29 db.reformat
drwxrwxr-x. 2 user1 user1 4,0K Mar 29 10:29 dump.done
[user1@machine1 vob-snap-test.vbs]$

[user1@machine1 vob-snap-test.vbs]$ ls -lhtr db.reformat/
total 516K
-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
-rw-r--r--. 1 user1 user1 8,0K Nov  1 10:59 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Nov  1 10:59 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Nov  1 10:59 vob_db_schema_version
-rw-r--r--. 1 user1 user1    0 Nov  1 10:59 almd.lck
-rw-r--r--. 1 user1 user1  108 Nov  1 10:59 vob_db.str_file
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k04
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k02
-rw-r--r--. 1 user1 user1  24K Dez 20 18:22 vob_db.k01
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d05
-rw-r--r--. 1 user1 user1  28K Dez 20 18:22 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d01
-rw-r--r--. 1 user1 user1 8,0K Dez 20 18:22 vob_db.d03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tcf
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tjf
drwxr-xr-x. 2 user1 user1 4,0K Mar 29 10:26 logs
-rwxrwxr-x. 1 user1 user1    0 Mar 29 10:29 orig
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:29 vista.taf
-rw-r--r--. 1 user1 user1 334K Mar 29 10:29 almd

[user1@machine1 vob-snap-test.vbs]$ ls -lhtr dump.done/
total 36K
-rw-rw-r--. 1 user1 user1 7,0K Mar 29 10:29 pass2_dump_file
-rw-rw-r--. 1 user1 user1  20K Mar 29 10:29 pass1_dump_file
-rw-rw-r--. 1 user1 user1 3,9K Mar 29 10:29 string_dump_file
-rw-rw-r--. 1 user1 user1  480 Mar 29 10:29 pass3_dump_file

 cleartool reformatvob -load /home/user1/vobstore/vob-snap-test.vbs

ls -lhtr
total 36K
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 vob_oid
-r--r--r--. 1 user1 user1   41 Nov  1 10:59 replica_uuid
-rw-r--r--. 1 user1 user1  625 Nov  1 10:59 vob_server.conf
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 s
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 d
drwxr-xr-x. 3 user1 user1 4,0K Nov  1 10:59 c
drwxr-xr-x. 4 user1 user1 4,0K Nov  1 10:59 admin
drwxr-xr-x. 3 user1 user1 4,0K Mar 29 10:30 db.03.29
drwxr-xr-x. 3 user1 user1 4,0K Mar 29 10:30 db

 ls -lhtr db.03.29/
total 516K
-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
-rw-r--r--. 1 user1 user1 8,0K Nov  1 10:59 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Nov  1 10:59 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Nov  1 10:59 vob_db_schema_version
-rw-r--r--. 1 user1 user1    0 Nov  1 10:59 almd.lck
-rw-r--r--. 1 user1 user1  108 Nov  1 10:59 vob_db.str_file
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k04
-rw-r--r--. 1 user1 user1  16K Dez 20 18:22 vob_db.k02
-rw-r--r--. 1 user1 user1  24K Dez 20 18:22 vob_db.k01
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d05
-rw-r--r--. 1 user1 user1  28K Dez 20 18:22 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Dez 20 18:22 vob_db.d01
-rw-r--r--. 1 user1 user1 8,0K Dez 20 18:22 vob_db.d03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tcf
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:26 vista.tjf
drwxr-xr-x. 2 user1 user1 4,0K Mar 29 10:26 logs
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:29 vista.taf
-rw-r--r--. 1 user1 user1 334K Mar 29 10:29 almd

 ls -lhtr db
total 552K
-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:30 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:30 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Mar 29 10:30 vob_db_schema_version
-rw-r--r--. 1 user1 user1    0 Mar 29 10:30 almd.lck
-rw-r--r--. 1 user1 user1 334K Mar 29 10:30 almd
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:30 vob_db.d03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:30 vista.tcf
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:30 vob_db.k04
-rw-r--r--. 1 user1 user1  155 Mar 29 10:30 vob_db.str_file
-rw-r--r--. 1 user1 user1  48K Mar 29 10:30 vista.tjf
-rw-r--r--. 1 user1 user1  16K Mar 29 10:30 vob_db.k02
-rw-r--r--. 1 user1 user1  24K Mar 29 10:30 vob_db.k01
-rw-r--r--. 1 user1 user1  12K Mar 29 10:30 vob_db.d05
-rw-r--r--. 1 user1 user1  28K Mar 29 10:30 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Mar 29 10:30 vob_db.d01
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:30 vista.taf
drwxr-xr-x. 2 user1 user1 4,0K Mar 29 10:30 logs

II - Manual dump/load

 cleartool lock vob:/vobs/vob-snap-testLocked versioned object base "/vobs/vob-snap-test".

 /usr/atria/etc/dumpers/db_dumper.54 /home/user1/vobstore/vob-snap-test.vbs/db
0 hyperlinks dumped.
0 derived objects dumped.
59 events dumped.
1 locks dumped.
Dumper done.

-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:30 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:30 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Mar 29 10:30 vob_db_schema_version
drwxr-x---. 9 user1 user1 4,0K Mar 29 10:30 ..
-rw-r--r--. 1 user1 user1    0 Mar 29 10:30 almd.lck
-rw-r--r--. 1 user1 user1  155 Mar 29 10:30 vob_db.str_file
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:43 vob_db.k04
-rw-r--r--. 1 user1 user1  16K Mar 29 10:43 vob_db.k02
-rw-r--r--. 1 user1 user1  24K Mar 29 10:43 vob_db.k01
-rw-r--r--. 1 user1 user1  12K Mar 29 10:43 vob_db.d05
-rw-r--r--. 1 user1 user1  28K Mar 29 10:43 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Mar 29 10:43 vob_db.d01
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:43 vob_db.d03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:43 vista.tjf
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:43 vista.tcf
drwxr-xr-x. 2 user1 user1 4,0K Mar 29 10:43 logs
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:45 vista.taf
-rw-r--r--. 1 user1 user1 334K Mar 29 10:45 almd
drwxr-xr-x. 3 user1 user1 4,0K Mar 29 10:45 .
-rw-rw-r--. 1 user1 user1  20K Mar 29 10:45 pass1_dump_file
-rw-rw-r--. 1 user1 user1 3,9K Mar 29 10:45 string_dump_file
-rw-rw-r--. 1 user1 user1  480 Mar 29 10:45 pass3_dump_file
-rw-rw-r--. 1 user1 user1 7,0K Mar 29 10:45 pass2_dump_file
[user1@machine1 db]$

$ pwd

[user1@machine1 vob-snap-test.vbs]$ mv db db.old
[user1@machine1 vob-snap-test.vbs]$ mkdir db
[user1@machine1 vob-snap-test.vbs]$ cd db

cd  /home/user1/vobstore/vob-snap-test.vbs/db.old

user1@machine1 db.old]$ /usr/atria/etc/db_loader /home/user1/vobstore/vob-snap-test.vbs/db
Dumped schema version is 80
59 events loaded.
90 pass 2 actions performed.
7 pass 3 actions performed.
Loader done.

[user1@machine1 db.old]$ ls -lhtr ../db
total 176K
-rw-r-----. 1 user1 user1  33K Jun  1  2011 vob_db.dbd
drwxrwxr-x. 2 user1 user1 4,0K Mar 29 10:50 logs
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:55 vob_db.k03
-rw-r--r--. 1 user1 user1 4,0K Mar 29 10:55 vob_db.d04
-rw-r--r--. 1 user1 user1    3 Mar 29 10:55 vob_db_schema_version
-rw-r--r--. 1 user1 user1 5,1K Mar 29 10:55 vista.taf
-rw-r--r--. 1 user1 user1  108 Mar 29 10:55 vob_db.str_file
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:55 vob_db.k04
-rw-r--r--. 1 user1 user1 8,0K Mar 29 10:55 vob_db.d03
-rw-r--r--. 1 user1 user1  12K Mar 29 10:55 vob_db.d01
-rw-r--r--. 1 user1 user1  24K Mar 29 10:55 vob_db.k01
-rw-r--r--. 1 user1 user1  16K Mar 29 10:55 vob_db.k02
-rw-r--r--. 1 user1 user1  28K Mar 29 10:55 vob_db.d02
-rw-r--r--. 1 user1 user1  12K Mar 29 10:55 vob_db.d05

 cleartool unlock vob:/vobs/vob-snap-test
Unlocked versioned object base "/vobs/vob-snap-test".

 cleartool checkvob -fix -pool /vobs/vob-snap-test

III - dump with reformatvob and load manual

cleartool lock vob:/vobs/vob-snap-test

 cleartool reformatvob -dump /home/user1/vobstore/vob-snap-test.vbs

[user1@machine1 vob-snap-test.vbs]$ cd dump.done/

[user1@machine1 dump.done]$ ls -lhtr
total 40K
-rw-rw-r--. 1 user1 user1  22K Mar 29 11:05 pass1_dump_file
-rw-rw-r--. 1 user1 user1 4,0K Mar 29 11:05 string_dump_file
-rw-rw-r--. 1 user1 user1  559 Mar 29 11:05 pass3_dump_file
-rw-rw-r--. 1 user1 user1 7,8K Mar 29 11:05 pass2_dump_file
[user1@machine1 dump.done]$ /usr/atria/etc/db_loader /home/user1/vobstore/vob-snap-test.vbs/db

NOTE: if necessary to keep the VOB on schema 54 run instead

/usr/atria/etc/db_loader -schema 54  /home/user1/vobstore/vob-snap-test.vbs/db

 ls ../db
logs        vob_db.d02  vob_db.d05  vob_db.k02  vob_db_schema_version
vista.taf   vob_db.d03  vob_db.dbd  vob_db.k03  vob_db.str_file
vob_db.d01  vob_db.d04  vob_db.k01  vob_db.k04

cleartool unlock vob:/vobs/vob-snap-test
Unlocked versioned object base "/vobs/vob-snap-test".


Best Regards,


Pedro Moura                                                                         

##########################################Disclaimer ###################################
"The postings on this site are my own and don't necessarily represent HCL or IBM's positions, strategies or opinions."  #

John Boyer (IBM)Getting started on MQ performance on z/OS for those people with no time

I was at a customer in Asia who was stress testing a huge new application and they asked me what do they need to check MQ is OK.  
I started preparing a presentation and  I found this was too complex - they wanted practical instructions.

So for getting started with MQ performance


Most systems should be able to log at 30MB/Second.  Use MP1B to look at the log report for Log write rate XMB/s per copy.

If you have a few transactions running concurrently processing 2KB messages you should be able to log at 30 MB/Second or higher.

Using larger messages such as 1MB you should be able to log at 100 MB/Second.

People with mirrored DASD over a large distance may find they cannot achieve 100MB/Second

The disk response time of MQ logs should typically be under 1 ms - many people are down at 250 microseconds. Use tools like RMF to display the disk response time.  Collect this at a good time, so you can compare with when you have problems.

The time for a commit or log force request (Out of syncpoint, or buffer pool filling up) is typically 2 * average log IO write time. 

If your log IO time is 1 ms - one server/transaction/channel  will be unlikely for  to do more than 500 commits a second.   If your log response time doubles - you will be unlikely to do 250 commits a second.

As you log more data the response time increases - so check the log response time at peak time for the LPAR and under maximum load for MQ.

Using multiple applications in parallel can improve throughput
Processing more messages before a commit can improve throughput
If your IO response time changes throughout the day - the maximum rate an application can process will vary during the day.

Monitor queue depths

An empty queue is a good queue.  If the queue depth increases - it is usually the application getting from the queue which has the problem - but it may be the putting program processing many messages in a unit of work

Keep buffer pools below 75% usage
If the buffer pool fills up then there will be page set IO and it will be very slow to process messages as each 4KB page will require at least 2 IOs.  One for the log and one for the page set.
Use MQ V8 and larger buffer pools.

With QREP ensure the buffer pool is sufficient for at least batchsize * message size * 2 * channels. We found in QREP with batches of >= 200MB, lots of uncommitted messages (bear in mind the apply also used large UoW's) meant buffer pools needed to be larger even though queue depths didn't appear high.


Have the queue manager enabled for monitoring data

For example ALTER QMGR MONQ(HIGH) MONCHL(HIGH).  This allows you to collect additional information about channels and queues.  Set the MONQ attribute for queues and the MONCHL for channels


Check your MQ NETTIME with with TCP PING time.

The DIS CHSTATUS NETTIME value gives an indication of the time on the network.   This should be comparable with a TSO PING command.  If it is much higher you may need to tune the TCP buffers.  See here

Monitor channel BATCHSZ and XBATCHSZ.   

XBATCHSZ is what your channels have if this is smaller than batch size - then if the messages are small there are not enough messages to fill a batch.    You may get small XBATCHSZ. if the channel is limited by BATCHLIM


Can you avoid channels disconnecting and reconnecting soon afterwards?

Do you have a business need for channels to stop soon after they are idle ?
You can use DIS CHL(*) where(DISCINT,NE,0)  to see which channels have DISCINT specified  - this applies to both ends of the channel.

You may be able to see channels start and stop messages  in the job log(CSQX500I and CSQ501I) but you may have configured MQ to suppress these.


Channels with a large batch size (over 50) are more efficient than a small batch size.   You may want to use BATCHLIM to limit how much data is sent in a batch - useful when processing very large messages
If there is a large distance between the queue managers - increasing the batch size up to 1000 may help.

Use DIS CHL(*) where(BATCHSZ,LT,50)

Have enough active logs to avoid any delays due to archiving


Make sure the logs are of reasonable size - i.e. why would you not use 4GB logs these days once on V8 or later.


Monitor your systems so you know what is normal behavior

  1. Turn on all statistics keep the SMF records for at least a week
  2. Know typical queue depth of your application queues.
  3. Know the average depth of your transmission queues
  4. Know the nettime of your key channels at peak time
  5. Turn on Class(3) accounting sometimes for a short period( 5 minutes)

Channels with SSLCIPH set
Is the channel negotiating at a 'sensible' frequency. Negotiations are expensive and slow the flow of data over the channel.
Is cryptographic offload available to negotiate the secret key

Are your channels resources constrained?

Having too few adapters can cause delays.  Having too many adapters should have not impact.  Channels with lots of large Persistent messages may need more adapters.

If you find channels seems to be slow, try stopping and restarting the channel.  It it seems to go faster then the dispatched it was on may be constrained.

Check the Chinit SMF to see if a dispatcher is constrained

John Boyer (IBM)Search Suggested Products, not showing override descriptions

Why are my override descriptions showing correctly on the product display pages, but when I search, the suggested products, it shows the description from the catalog asset store?  It's confusing!

First, lets have a look at this issue that can occur out of the box in v8 when you set override descriptions for your eSite, to help clarify what we are going to fix in this blog.

More details about the override function can be found -> here.

My Product Override setup in CMC:   You can see from image below, I've configured the override Name and Short description for my AuroraB2BESite store.



Product Display Page, showing description overrides in action:



Searching from product, Suggested Products displayed with Name from Catalog Asset Store, instead of Override Name for eSite:



The above is confusing to an end user when searching for and finding the correct product. The override functionality allows you to change the Name, short description, long description, etc of a product for you eSite to something different that what is in your Catalog Asset Store.  It should override the description everywhere it's used, not just on the product display page.  

So lets understand what controls this Suggested Products that are displayed.  The search profile, out of the box for this is the "IBM_findNavigationSuggestion_Products", in the configuration of this profile, like all search profiles, there are expression providers, pre processors and post processors defined for this profile in the WCDE_installdir\workspace\Search\xml\config\\ wc-search.xml file.  Out of the box, the post processor that handles the overrides is not configured for this profile by design.

(SolrRESTSearchCatalogEntryViewDescriptionQueryPostprocessor)  This post processor handles the description override information.


The reason I'm writing this blog, is unfortunately, just adding this post processor to the search profile isn't enough to resolve this issue, the placement of the post processor in the list of post processors is critical to it working successfully.  By default there are 2 post processors defined for this profile.  


<_config:postprocessor classname="" />

<_config:postprocessor classname="" />



The <_config:postprocessor classname=""/> has to be added in between these 2 default post processors.



        <!-- profile added postprocessor -->
            <_config:postprocessor classname="" />
            <_config:postprocessor classname=""/>
            <_config:postprocessor classname="" />


  Typically when you customize a search profile, you do this is in the directory in a separate wc-search.xml file and would only add the changes to the wc-search.xml in this ext directory, this is to keep from getting your customization over written by future maintenance. From more details see -> here.

However, for this specific issue, in order to keep the order of the post processor correct,  the quick solution is to modify the default wc-search.xml file and add the post processor in between the 2 default ones.  Keep in mind this change could be over written by future maintenance.   The other, probably better solution is to create a custom search profile to be used.

1. Create new custom search profile under catalog-ext/wc-search.xml, and give it different name than the OOB one.
2. Copy the content of the original profile into the custom one, and place the description profile into the right place
3. Define the new profile under rest-ext/wc-rest-resourceconfig.xml
4. In the JSP REST call ensure that you pass the &profileName=<custom profile name> query parameter to the REST call.


The end results should look like the following when the SolrRESTSearchCatalogEntryViewDescriptionQueryPostprocessor is inserted in the proper place and working correctly:



Hope this helps!!



John Boyer (IBM)IBM IoT for Automotive SaaS Development Edition now available


IBM® IoT for Automotive SaaS Development Edition enables you to develop, test, evaluate, and demonstrate the connected car capabilities of the Software as a Service (SaaS) offering in a non-production environment. The development edition is ideal for exploring, sampling, and demonstrating potential automotive applications in a test environment that has a maximum of 100 registered vehicles.

Featured support

IBM IoT for Automotive Development Edition includes all of the features and benefits of the standard offering for development use only and has the following limitations:


Support feature


Connectivity Supports a maximum of 100 connected vehicles per environment


Provides a maximum of 1TB of data storage space

High availability (HA)

Not supported







If you are building an automotive solution to support more than 100 registered vehicles and large volumes of data for a production environment, you will need to purchase the full IBM IoT for Automotive SaaS offering.


More Information

For more information about how to purchase IBM IoT for Automotive SaaS, see


John Boyer (IBM)Implementing CLI Failover for SAP ABAP instances

Starting with DB2 12, the only supported DB2 failover mechanism for SAP ABAP instances is the native failover capability provided by the DB2 Connect CLI driver. This capability is referred to as 'CLI Failover' in contrast to the 'SAP Failover' mechanism that was previously used by SAP.
It is highly recommended that you start now to switch your existing SAP instances that still use SAP Failover to CLI Failover.
Reference information about SAPs database connectivity configuration can be found in the latest SAP Database Administration Guide (available from SAP on DB2 for z/OS Community)

The following presentation contains supplemental information and valuable hints and tips for implementing CLI Failover:
CLI_Failover_v11.pdf|View Details:

Shelley Powers (Burningbird)Finding Truth

According to, triangulation is:

The location of an unknown point, as in navigation, by the formation of a triangle having the unknown point and two known points as the vertices.

When I studied history in college I had a professor tell me that the only way to discover the truth behind an event is to read three completely different interpretations of the same event. Somewhere in the middle of all these interpretations, you’ll find the truth.

Unfortunately, it’s all too easy to only listen to one viewpoint, one interpretation.  Listening to those who are like-minded and speak with one voice is less disruptive than seeking the truth.

The post Finding Truth appeared first on Burningbird.

John Boyer (IBM)z/VSE service news: VSE/POWER new function and AF APARs

About three weeks ago I informed you about a new function - enhanced wild card support - available as VSE/POWER PTF - see here. The PTF was for z/VSE 5.2. In between this function is also available for z/VSE 6.1.




See APAR description for details.


... and there is a new VSE/AF APAR addressing SIR SMF command. SIR SMF can be used to retrieve the I/O Subsystem Measurement Data (to retrieve I/O counters). How to activate SIR SMF can be displayed via SIR ? on the console.


Error description: When SIR SMF activates System Measurement Facility, Attention Routine may program check.


John Boyer (IBM)Top 5 Ways to Collaborate Better with IBM Verse (Infographic)

In the previous blog post, we explained how Verse support our focus on the business - handling mail and action items. This time, we share how it facilitates and accelerates our collaborative work that happens increasingly in higher frequency and in smaller chunks. The pdf version of this infographic is available here.


Enjoy in team!




John Boyer (IBM)Sametime Proxy Server IP Address Change

<html> <head> <meta content="text/html; charset=gb2312" http-equiv="Content-Type"> <meta content="Microsoft Word 15 (filtered)" name="Generator"> </head> <body lang="EN-US" link="#0563C1" style="text-justify-trim:punctuation" vlink="purple">

What need to be updated when modifying Sametime Proxy server IP address



Problem: Customer have Sametime proxy server migration and it is only going to change the IP address of the serve r(It is V2V Migration) 

Any impact due to this and what do we need to update the new IP address for Sametime infrastructure? 

Environment: Websphere Application Server 8.5.5

Sametime 9.0 Meeting/Media/Community/Proxy/VMCU/TURN Server

For Sametime proxy server, there's only one NIC for Windows 2012 server "stserver03" with IP address:

In Sametime meeting server and Websphere ISC, the hostname for Sametime Proxy server is:

The above host name resolve as internal IP address:
Externally in public DNS, the IP address is: (Which points to NAT device/firewall)
On NAT device, the host URL was mapped to


In short, there're 4 actions needed:
1. Shutdown STProxy Services and update STProxy server IP address in Vsphere virtual machine OS.
2. Update A record for in internal DNS (Currently it's
3. Update IP address for STProxy server in NAT device/firewall
4. Login to Sametime System Console,

¡¤  Click Sametime Servers > Sametime Community Servers, click underlined ¡°Deployment Identifier¡±

¡¤  Scroll down and fill in New IP address, click Add.

¡¤  Check the box next to and remove the old IP address



Relevant links:

Adding a Sametime Proxy Server to the Sametime Community Server¡¯s trusted IP addresses

Designating the Sametime Proxy Server to be used for awareness


</body> </html>

John Boyer (IBM)IoT 的未来展望:2017 年物联网预测


 Internet of Things Predictions for 2017

2017 年物联网预测


您是否在新年初就制定了发展计划?您是否对 2017 年的发展形势进行了预测?福布斯杂志的一位作者整理了一份 Forrester 报告(2017 年预测: 安全问题和技能将减缓 IoT 的增长)并在 Forrester IoT 的预测 中进行了总结。

当我们规划 2017 年要在 developerWorks IoT 中心涵盖哪些内容时,我尝试了相同的策略。我精选了分析师预测的一些报告单,包括 Forrester 报告以及 Peter Newman 撰写的非常有趣的 Business Insider 报告2017 年物联网报告

在这个 Business Insider 报告开头的 Key Points 部分,Newman 建议任何 IoT 实现(无论大小)都应包含 5 个组件,我认为这对关于 IoT 的思考和年度预测提供了一种很好的组织形式和框架。



从单片机(比如包含 ARM 核心的 Raspberry Pi Beagle Bone)到半导体和传感器,IoT 起源于互联的硬件、设备和事物。尽管智慧城市(智能照明、智能电表和智能垃圾收集等)和互联制造将依赖于 IoT 设备的发展,但用户仍每天都在追求智能家庭技术,比如智能设备(Nest 恒温控制器)、虚拟辅助设备 (Amazon Echo with Alexa) 或智能摄像系统 (Withings Home)IoT 开发工具包都在争相帮助开发人员涉足 IoT 领域(techworldZDNet 在排行榜中)。

2017 年,随着 edge architectures(或 fog architectures)成为 IoT 实现的必要部分,将给网关带来重大变革。IoT 解决方案将被构建为能够跨分布式架构运行,并能连接到设备、网关和云服务。因为 IoT 设备生成了如此多的数据(大数据),所以边缘设备将需要更智能才能跟上形势。通过将服务器和网关组合到这些边缘设备中,IoT 实现可在网络边缘包含更多分析、存储和网络功能,而不是仅在云中提供这些功能。(Watson IoT Platform 最近添加了一个 Edge Analytics SDK。可以尝试阅读这份指南:Edge Analytics 入门。)连通性)

IoT 解决方案绝不仅是 Wi-Fi 或蜂窝解决方案。新的无线连接形式将会继续发展,并能更广泛地提供给 IoT 开发人员。如果标准协议没有更好的融合,硬件和软件平台将需要理清许多的连接选项。而现在只需考虑这个简短的蜂窝网络协议清单:LPWAN网格网络NarrowBand IoT (NB-IoT) LTE-M 等等。其他供应商(比如有线或安全警报公司)将加入这场游戏,为智能家庭设备建立覆盖整个住宅的连接。

3.远程管理(IoT 应用程序的用户界面)

尽管 2017 年预测中还没有关于 IoT 实现这个组件的相关内容,但一定要记住,IoT 解决方案的用户需要一个简单、易用、易理解的用户界面。否则,IoT 解决方案不会获得成功;仅此而已。

4.平台(IoT 解决方案的消息、分析和数据存储功能)

IoT 平台结合使用了 IoT 解决方案的消息、分析和数据存储功能。尽管这一领域有许多竞争者,但 2017 年预测暗示着许多竞争者将放弃竞争或被竞争者吞并IBMMicrosoft Amazon 在大部分榜单中都名列前茅,而其他许多竞争者也在不断筹划。(在 2016 年第 4 季度的 Forrester Wave 报告中,IBM 被评为 IoT 软件平台的领导者。)为了从大量的 IoT 设备中挖掘出传入的所有数据,IoT 平台的分析组件将变得越来越重要。要进一步了解 Watson IoT Platform,可查阅这些开发人员资源(课程、文档和示例)。


Security for IoT

2016 10 月,IoT 设备被用于 DDOS 攻击2017 年的预测之一是,会出现一次或多次涉及违背 IoT 解决方案的大规模安全破坏,因为这些解决方案正扩展到交通运输、制造和政府行业。许多标准和监管机构正在发布安全框架,而且 IoT 平台也在加固它们的安全功能。(IBM Watson IoT Platform 符合 ISO 27001 安全标准,而且正在对最新的安全功能进行开放公测。)随着越来越多的设备进入各种各样的网络中,黑客会继续尝试利用所有品牌和规模的 IoT 系统。我相信我们今年也将发布一两篇有关 IoT 和安全的文章,就像去年一样。

区块链技术将与 IoT 技术融合,在许多企业级 IoT 解决方案中提供保护分布式交易的方法。(你可在这篇 developerWorks 教程中进一步了解如何将区块链技术应用于认知 IoT 应用程序。)

IoT 2017 年将如何发展?

那么我对 2017 年的 IoT 发展有何结论呢?随着所有设备、网络和平台迅速投入市场,现在正是最佳时机去深入了解和学习这个复杂且不断演变的技术领域。企业需要竭尽所能地利用这场物联网大爆发。但是首先,开发人员需要确定如何从来自全球 IoT 设备的所有数据中获取洞察并采取行动


本文转载自博客: Looking into the IoT crystal ball: Internet of things predictions for 2017



John Boyer (IBM)MQ 9.0.2 supports IBM Cloud Product Insights


What is Cloud Product Insights?

Cloud Product Insights is a Bluemix-hosted repository of your running IBM software instances. IBM products that support Product Insights can be configured to register themselves with the service, reporting information that you can see from one central dashboard.


One of the new features made available in the latest CD release of MQ is support for IBM's Cloud Product Insights service. The service is one of the many services available in IBM's Bluemix Cloud.


If you would like to try registering queue managers with Product Insights without a full MQ license you can use the MQ Advanced for Developers image available here.


How does Cloud Product Insights work?

Products that support registering themselves with Product Insights do so by periodically uploading information about themselves to the service. When a product runtime starts - for example when a queue manager is started with strmqm - various information about the runtime is uploaded. This includes the product name and version, the platform it is running on, and an instance identifier. In the case of MQ the instance identifier is a combination of the queue manager name and the queue manager ID, allowing you to identify between the different queue managers you have running.














As well as uploading information when the queue manager starts, basic usage metrics are uploaded to the service periodically to give you an idea of how busy your different queue managers in your network are. Typically this is done every 15 minutes. Different products will send different types of metric data. In the case of MQ the queue manager uploads the following information:


  • The number of persistent messages put to the queue manager by applications
  • The number of non-persistent messages put to the queue manager by applications


There are two additional statistics which show the total number of bytes put to the queue manager, either as persistent or non-persistent messages.


How to register a queue manager with Cloud Product Insights

There are two steps to registering a queue manager:


  1. Create your own instance of the Product Insights service in Bluemix
    1. Log in to Bluemix, or create yourself a free account and then log in.
    2. Create a Product Insights service
    3. Follow the steps to use the service in the IBM Bluemix docs
  2. Configure an MQ 9.0.2 queue manager with the necessary connection details to register itself with the service
    1. The MQ KnowledgeCenter has a new topic to cover the process of configure Product Insights registration. You can read the topic here.


Will registering my queue managers with Product Insights affect their performance?

The queue manager uploads data to the service on a dedicated thread, ensuring that the process of registering or uploading metrics to Product Insights has no effect on the performance or throughput of the queue manager.





John Boyer (IBM)6 Ways to Improve Relationships With Your Clients

The success of any business largely depends on its clients. The bigger the client pool, the more profit you make. One of the simplest ways to increase your client base and instill loyalty among your clients is by building strong client relationships. Happy clients will bring you more clients giving a boost to your business.


Managing client relationships is now easier than ever thanks to the availability of customer relationship management (CRM) tools. Knowing your customers is a part of building relationships. Remember that happy customers are returning customers, and you cannot be a successful business unless you have loyal or returning customers. This is because it is cheaper to retain customers than it is to acquire new customers.


Jake Rheude, Director of Business Development at Red Stag Fulfillment, a cloud based order fulfillment service, says, “Strong relationships is the reason why your clients keep coming back to you. You should aim to instill trust and confidence in your buyers to ensure they continue to buy from you and also bring in new customers.”


However, it is easier said than done. Understanding your clients and building strong relationships with them can be cumbersome, especially in today’s business environment where buyers have very high expectations.


Nonetheless, here are six tips from on how you can improve relationships with your clients.


Let’s find out more:

 Let Your Clients Know You Value Relationships

It is important to let your clients know about your intention to build a strong client-buyer relationship. Many businesses market themselves as family owned businesses to attract buyers and make them a ‘part of the family’.

Many big companies like Wells Fargo have also used this trick in their marketing campaigns.

You need to take the first step and welcome your guests with open arms to begin the relationship building process. Your clients should know you care for their business. If they think you’re only after money, they will not feel connected to you. Make them realize you’re providing them with a solution to their problem, and make good on your promises.


Hold Your Horses and Be Patient

It will be a while before you actually begin to enjoy the benefits of relationship building, thanks to the concept of time lag.

The first few months can be a nuisance due to nagging clients and tonnes of calls and emails to respond to. But once you’ve built a certain understanding with your clients, a lot of their issues would begin to solve on their own.


Get to Know Your Clients

You need to know your clients to be able to improve client relationships. Understand their requirements and find what motivates them to purchase.

You can use feedback forms and pay attention to the buying pattern (Google Analytics etc.) to know more about your clients. This would not only strengthen client relationships, but also allow you to redesign your marketing campaign.


Do Not Differentiate Between Clients

While businesses often divide clients based on their importance, it is vital to not let your clients feel left out. If you’re giving someone preferential treatment, others may feel left out, and begin to lose faith in you or your business.

Clients expect to be treated like royalty. They do not understand biases.Even if you wish to treat one client differently, make sure you do it without making it apparent to others.


Make An Effort to Do More

Today’s businesses thrive on relationships. Clients pay as much attention to services, as they do to products. You need to go out of your way to satisfy your buyers by providing excellent customer service.

Do not hesitate in going the extra mile for your clients, but make sure to know the clients that are worth it.

The best way to maximize benefits is by using quality customer service tools.


Speak to Your Clients

It is important to be in touch with your clients. While an email a month may be enough to stay in your client’s memory, sometime you have to go above and beyond to build relationships.

A customized email or a phone call every now and then can do wonders to build relationships. Concentrate on personalized communication as it helps break barriers and makes your clients take notice.


Use Social Media

Social media is bigger than ever; Pinterest alone has over 150 million users with the total number of social media users expected to reach 2.95 billion by 2020.

This gives a great opportunity to businesses as they can use social media to improve client relationships.

Social media gives businesses direct access to a huge pool of clients and potential clients. You can hold competitions and give shout outs to fans to make them feel special and a part of your community.


Make customers a part of your journey. Learn from big companies like Google and Apple. They value customers and make them a part of their decisions. 


TEST blog creation

John Boyer (IBM)Currently recommended maintenance level for ITCAM for J2EE is

ITCAM for J2EE 7.1.1 IF4 ( is now available!

It is highly recommended to have the interim fix installed.
It is available starting from Mar 30th 2017 and can be downloaded from here: is a complete install. The base IBM Tivoli Composite Application Manager Agent for J2EE V7.1.1.0 (7.1.1-TIV-ITCAM_J2EE-RP001)  is not required for this installation.
For upgrading previous installation containing the base or later interim fixes, this latest IF4 release can be applied on top of the existing installation.

If you are at a YJ Application Support v7. or later, it can be optionally upgraded to IF0004  as no changes have been made to application support files since v7. (IFix1).
The IFix1 application support will continue to support the IF4 KYJ TEMA. is built on  IBM Tivoli Monitoring v6.2.3 Fix pack 5 libraries
   For ITM "ax" and "ui" components are at level
   For Windows, the Agent Compatibility package (AC) should be at

IBM Tivoli Monitoring V6.2.3 Fix pack 5 or later is required for TEMS, TEPS, and TEP.

With updated valid sample input files for silent configuration have also been provided for Windows, and will be found under <ITM_HOME>/TMAITM6 after the installation.


The main new features introduced in are:

1. Wildlfy 9.0.2 support has been added.  Wildfly 10.x should work but has not been certified yet.

2. Support multiple JBoss/WildFly standalone server installs

3. Support for JAXWS-RI monitoring for JBoss/Wildfly.

4. JBoss Application Health workspace - Applications deployed in JBoss EAP 6.x and Wildfly servers can now be monitored for application health in TEP workspace.

5. EJB 3.1 support


You can refer to for further details.

Here are some IF3/IF4 related dwAnswers posts which you might find useful:


John Boyer (IBM)WMQ 9.0 is supported with TXSeries V9.1

This blog is written by Arpana , you may reach out to in case you need more details around this.

TXSeries v9.1 now supports WMQ 9.0

The pre-requisite for this is being on  WMQ APAR IT16767 Fix, . Without this fix your application may fail at MQCONN/MQOPEN call.


The system requirements for TXSeries v9.1 is as below


John Boyer (IBM)2017冬季SHARE大会在圣何塞顺利召开















2017冬季SHARE大会在圣何塞圆满举 行! 来自Enterprise Networking Solutions的演讲者们与会并分享了他们在主机领域的最新研究成果,包括z/OS Communications Server,Interactive System ProductivityFacility (ISPF),Multi-site Workload Lifeline和IBM Configuration Assistant for z/OS Communications Server。
IBM在此前预告了z/OS V2R3版本。此次SHARE大会也提到了z/OS V2R3的最新功能,如z/OS Encryption Readiness Technology(zERT); 同时,此次大会也就IBM主机产品上的现有功能进行了热烈的讨论,包括Shared MemoryCommunications-Direct Memory Access (SMC-D), Enterprise Extender, sysplex technologies,network security, z/OS CS performance, and the IBM Configuration Assistant for z/OS Communications Server。

如果您对此次冬季SHARE大会内容充满兴趣,点击访问2017 SHARE ,即可了解更多具体信息。

John Boyer (IBM)ITCAM for J2EE 7.1.1 Interm Fix 4 is released

You can find ITCAM for J2EE 7.1.1 Interim Fixe 4  from this link.

The link includes all Interim Fix of ITCAM for J2EE 7.1.1.


John Boyer (IBM)Engage with IBM ECM Support via Twitter!

Over the past several months, we've noticed an increase in people reaching out to talk to us through social media. This is fantastic -- we love hearing from you and sharing our expertise. Today, we're excited to share that we are officially available to provide tips, tricks, and other guidance through Twitter. You can reach out to ecmsupport between 9am - 5pm ET, Monday to Friday,  We’ll do our best to respond quickly.


-IBM ECM Support Team




John Boyer (IBM)Fetching Dynamic Lookup Lists via Attribute Launch Point with Retrieve List Event

In previous versions of Maximo/ICD, we used to write Java codes or create table domain of domains with case statement in list where clause in order to fetch lookup lists dynamically. Then, conditional domains were introduced, but they caused performance issues for large lists and were inefficient for some cases. In latest version (7.6), we have the "Retrieve List" event for Attribute Launch Points which is perfect for this task. Let me go through an example to explain:


AIM: Fetching different person groups for different sites for a custom field for groups


0) Assume that there are many sites corresponding to cities such as IZMIR, LONDON, PARIS, etc.

1) Create as many as needed table domains of person groups, namely GR-IZMIR, GR-LONDON, GR-PARIS, GR-COMMON, GR-ALL. They will be used like cases in a switch statement.

2) Go to Database Configuration application and create a custom field same as PERSONGROUP.PERSONGROUP field. Give it the largest table domain (GR-ALL) including all groups needed. Later, define the lookup mapping of custom field using the edit lookupmap button (requires dbconfig and restart respectively)

3) Write the Automation Script below for attribute launch point with Retrieve List event.

# select domain of person groups with respect to cities (sites) using a dictionary
def selectDomain(value):
    return {
        'IZMIR'  : 'GR-IZMIR',
        'LONDON' : 'GR-LONDON',
        'PARIS'  : 'GR-PARIS'
    }.get(value, 'GR-COMMON')
# {}.get() function sets the default value for any other city (site)

# fetch the domain by comparing site (city) of record to the dictionary
siteid = mbo.getString("SITEID")
domainid = selectDomain(siteid)

4) Go to Application Designer, add custom field to your application and write the lookup property for field as "PERSONGROUP". As I remember it did not work with a custom lookup and had shown invalid binding. It worked with the default lookup for person groups which is PERSONGROUP. If it was an ALNDOMAIN, "VALUELIST" is worth to try too for lookup.


John Boyer (IBM)Webinar notification: Your future with IBM Tivoli Network Manager

Are you an existing IBM client with a deployment of IBM Tivoli Network Manager? If the answer is yes, then you are cordially invited to the IBM Webinar on April 6th, 2017, entitled:


“Your future with IBM Tivoli Network Manager”


At this 90 minute online presentation, you will be introduced to members of the IBM Netcool support, architecture and product management teams. We propose to engage with you on the following topics:


1. New solution enhancements from Tivoli Network Manager 3.8 to 4.2. Rob Clark, senior Netcool architect.

2. From 3.8, 3.9 to 4.2. Migration best practices. Krishna Kodali, Senior Software engineer.

3. IBM service offerings, remote or on-site, to enable your successful migration.

4. Efficient operations with Netcool analytics – Zane Bray , Netcool Solutions Architect.

5. Question and answer session


Please register for this Webinar at

If you have any questions related to this Webinar, please direct your questions to this forum:


Looking forward to engaging with you.


Tom Randles, product manager, Netcool network management


ProgrammableWebDaily API RoundUp: Think Silicon, Instructure, Blizzard Entertainment

Every day, the ProgrammableWeb team is busy, updating its three primary directories for APIs, clients (language-specific libraries or SDKs for consuming or providing APIs), and source code samples.

ProgrammableWebGoogle Releases Cloud DLP API to Identify and Protect Sensitive Content

The amount of data captured for analysis is increasing all the time. Often this data is fed into multiple systems that need to analyze, process, persist or perform other operations with it. It is important that these systems make sure that sensitive data is identified and redacted. At its annual cloud conference, Cloud Next 2017, held recently, Google announced the Data Loss Prevention (DLP) API that does exactly that.

John Boyer (IBM)How to Optimize Chatbots for a Superior Customer Experience

Chatbots may not be a new invention, but improving technologies are enabling the world’s biggest companies to incorporate them into their customer engagement strategies.


While chatbots’ capabilities may have been limited in the past, the chatbots of today are expanded, full-service software. Empires like Macy’s and KLM Royal Dutch Airlines have incorporated chatbots into the Facebook Messenger platform where customers can “discuss” their flight reservations with the KLM chatbot or ask the Macy’s chatbot if a particular item is available for purchase at a specific store.


An estimated 8.3 trillion messages will be sent via messaging platforms in 2017, 90 percent of which will be read less than 3 minutes after they’re sent. Such a massive number indicates just how many customers are easily accessible through messaging platforms – and how many prefer typing to talking. It seems only natural that brands would start using chatbots on these platforms to improve the customer experience and cut out the time spent on the phone with customer service.


However, with every new element in the customer experience comes a new set of challenges and elements to optimize. While chatbots are becoming increasingly popular, more questions are being raised about how to accurately implement, track and optimize chatbots as part of the organization’s overall customer experience.

What challenges arise when using chatbots?

The customer experience can make or break the brand-consumer relationship. Representatives on the phone, online or in-person can make decisions on the fly that help them tailor the customer’s experience according to what they may want or need, but a chatbot needs a little extra help to fill the shoes of a dedicated customer service representative.


There are 4 main challenges digital marketers need to consider when incorporating chatbots into their customer experience strategy:


  1. Analyzing “digital body language”:

Just like they do in person, customers communicating through chatbots give off non-verbal communication cues which indicate contentedness or displeasure. How can chatbots understand these cues and use them to the benefit of the business?

  1. Personalization:

Tailoring the chatbot customer experience goes beyond calling the user by name. Digital marketing representatives need to find other ways to personalize the chatbot experience through factors such as gender, age, and location.

  1. Measuring conversion rates:

Digital marketers need to monitor conversion rates following chatbot interactions and identify issues with the human-chatbot experience, so they can analyze what encouraged users to convert and what reduced the likelihood of success.

  1. Improvements:

Changes to chatbot mechanisms need to be tested and tracked to ensure that conversion rates are improving as the technology develops.


How can a digital marketer optimize the chatbot user experience?

To overcome these challenges and improve the chatbot user experience, a digital marketer can enlist the help of advanced analytics solutions to identify elements that need to be optimized:


Track the bot’s confusion triggers.

While chatbots are a convenient alternative for customers who do not want to wait on the phone for human assistance, a frustrating chat interaction can be a negative experience that damages the customer-business relationship as much as an hour on hold. The transaction won’t end well if the bot can’t understand what the customer is typing. Regularly identify and log the terms that confuse the chatbot and update the bot accordingly.

Measure the number of conversation steps.

A conversation step is the equivalent of one back-and-forth message between the user and the chatbot. For example, one step could be when a user types “Hi, I need help,” and the chatbot responds, “How can I help you?”


Having more conversation steps does not always equal more engagement or a better customer experience, like in cases of making a reservation at a restaurant. Reserving a table should require a maximum of 5 steps, so if there are 25 steps, it should raise a red flag. Analyzing individual chat sessions can help pinpoint where the conversation may be taking too long and adjustments can be made to the bot accordingly.


Optimize active and engaged user rates.

Chatbots experience high turnover rates -- 40% of users only exchange one message with any particular chatbot. This large number of users could throw off any meaningful metrics, so it’s important to pinpoint the rate of active users (those who read chatbot messages) and engaged users (those who respond to chatbot messages). The best way to do this is by identifying the top responses that users write back to the chatbot. You can use that data to adjust the chatbot’s prompts to meet the users’ expectations and increase engagement.  

Using data to inform the chatbot-user interaction

One of the most important tools for optimizing chatbots is something that can't necessarily be seen or experienced outright: user-generated data. Each user has unique digital body language, communicated through details like:


  • What page they are on

  • Where and what they clicked (or tapped, on mobile)

  • Where they moved the mouse and hovered or hesitated

  • The speed at which they scrolled through certain pages

  • What they searched


By incorporating information about customers’ digital behavior before, during and after their chatbot interaction, a better-informed bot can deliver tailored answers that direct the user’s experience.


Dr. Liraz Margalit, Head of Behavioral Research at Clicktale, says that the user’s mindset can be inferred by following his or her online behavior:


“[By] leveraging data gathered in real time... such algorithms could integrate actions, attributes and contexts to generate a real-time classification of an individual visitor’s intent. Then, based on such knowledge, brands can automatically adapt their offerings.”


According to Margalit, the chatbot can formulate a response based on the actions taking place on-screen in real time.


For example, a properly-enabled chatbot on a chocolatier’s website could determine if someone is buying a corporate gift basket or Valentine’s Day chocolates based on their actions on screen and respond appropriately, providing a memorable – and positive – customer experience.


The rapid rise in chatbots as a customer service and engagement tool fits in with the general direction of digitization that much of retail is trending towards. In order to be effective, digital marketers need to teach chatbots how to interact with users, which they can do with the data they collect from advanced analytics software. Armed with that information, they can use the data to tackle their biggest challenges and provide an optimal customer experience anywhere and everywhere their customers are located.


Author Bio:

Yael Tolub is the VP of Marketing at Clicktale, leading the company’s worldwide marketing initiatives and driving awareness and adoption at global fortune 500 companies. Yael has a global perspective of marketing, having lived and worked on three different continents (and counting!). Prior to Clicktale, Yael held product and strategy roles in various companies, including MediaMind (today called Sizmek). Yael holds a LLB from Hebrew University, and an MBA from MIT Sloan School of Management.


John Boyer (IBM)6 Ways Artificial Intelligence Will Revamp Your Business

The latest and greatest tech trends for businesses in 2016 has been revealed, and artificial intelligence (AI) is at the top of the list. This new development is daunting for some business professionals who see AI as science fiction that will take over human power on the Earth. It’s also associated with downsizing jobs and upping the unemployment rate.


However, that’s what movies are made of. In the real world, AI is a powerful business tool that increases the number of high quality jobs, boosts efficiencies, and decreases overhead. AI simply does what it’s programmed to do, and if it’s programmed effectively, businesses have the opportunity to expand their business potential exponentially. Here are a few of the many ways that AI has the power to revamp businesses.


1. Big Data Becomes Understandable  


With today’s technology and interconnectedness, it’s easy to find data about your customers and what they like. But understanding that data is another story altogether, especially for small and midsize businesses that lack the resources to translate the information in-house. AI has led to the creation of systems that can explain in plain language the meaning of the data and how it should be used, and these systems are available to businesses of any size.


2. Online Stores Become More Human


Ever since ecommerce was inducted, companies have been facing the issue of replicating the brick-and-mortar store experience. Customers enjoy the friendly, personalized service that comes from walking into a real store, not to mention the convenience of being able to see, touch, smell, and interact with the merchandise before making a purchase.


Now, AI can replicate that brick and mortar experience online in a sense. It’s more than simple dialogue. It can sell more complex products online by educating users first. It brings in more information about what customers want to see from online stores so they can include it, like product videos, photos of the product in context, and content describing a product’s use.


3. Improved Customer Service


For most companies, the products they sell don’t set them apart from others. It’s the customer service and support they provide that makes the difference, and smart machines and analytics are paving the way for better customer service everywhere. They help businesses offer speedy and appropriate responses to their customers through data and analytics. They can “coach” executives on the things customers want to see and the practices businesses are lacking in the customer service area.  


4. More Accurate Forecasts


You don’t need to be told that forecasting is an important part of expansion and growth operations, but you should be aware of how much AI can help with that. Quantitative forecasting is based off of data and analytics. The information gained through these processes shows businesses the outlooks on some processes within a business structure. AI streamlines the process by bringing in more accurate data and interpreting the information into content executives can use. Thanks to this form of data processing, companies can look into their futures and see what they need to do now to manipulate the outcome.


5. Less Time Spent on Menial Tasks


When you let AI take over much of the processings and analytics, your employees can spend less time on menial tasks and more time on higher order functions in the areas they were trained to perform, including strategy, people connections, creativity, and critical thinking. They can leave the software conversations up to software and focus their time on cultivating relationships and doing what only humans can do.


6. Customer Personalization


Everything customers do online today leaves an imprint, a trail of information detailing their interests and preferences. AI makes it possible to use that information to personalize the customer experience in your business. You can learn to produce content they enjoy, develop products they love, and design a website with the ultimate user experience in mind. Every time a customer makes a purchase, they can feel like they’re getting more human treatment.


AI will continue to get smarter as it becomes the norm for online products, services, and support. This technology is not something to be afraid of, but rather something to embrace wholeheartedly for the good it can do for your business. It shows businesses how to make their teams more productive and their customers more satisfied.


Amazon Web ServicesIs it on AWS? Domain Identification Using AWS Lambda

In the guest post below, my colleague Tim Bray explains how he built . Powered by the list of AWS IP address ranges and using a pair of AWS Lambda functions that Tim wrote, the site aims to tell you if your favorite website is running on AWS.


Is it on AWS?
I did some recreational programming over Christmas and ended up with a little Lambda function that amused me and maybe it’ll amuse you too. It tells you whether or not a given domain name (or IP address) (even IPv6!) is in the published list of AWS IP address ranges. You can try it out over at Part of the construction involves one Lambda function creating another.

That list of of ranges, given as IPv4 and IPv6 CIDRs wrapped in JSON, is here; the how-to documentation is here and there’s a Jeff Barr blog. Here are a few lines of the “IP-Ranges” JSON:

  "syncToken": "1486776130",
  "createDate": "2017-02-11-01-22-10",
  "prefixes": [
      "ip_prefix": "",
      "region": "GLOBAL",
      "service": "AMAZON"
  "ipv6_prefixes": [
      "ipv6_prefix": "2400:6500:0:7000::/56",
      "region": "ap-southeast-1",
      "service": "AMAZON"

As soon as I saw it, I thought “I wonder if is available?” It was, and so I had to build this thing. I wanted it to be:

  1. Serverless (because that’s what the cool kids are doing),
  2. simple (because it’s a simple problem, look up a number in a range of numbers), and
  3. fast. Because well of course.

Database or Not?
The construction seemed pretty obvious: Simplify the IP-Ranges into a table, then look up addresses in it. So, where to put the table? I thought about Amazon DynamoDB, but it’s not obvious how best to search on what in effect is a numeric range. I thought about SQL databases, where it is obvious, but note #2 above. I thought about Redis or some such, but then you have to provision instances, see #1 above. I actually ended up stuck for a few days scratching my head over this one.

Then a question occurred to me: How big is that list of ranges? It turns out to have less than a thousand entries. So who needs a database anyhow? Let’s just sort that JSON into an array and binary-search it. OK then, where does the array go? Amazon S3 would be easy, but hey, look at #3 above; S3’s fast, but why would I want it in the loop for every request? So I decided to just generate a little file containing the ranges as an array literal, and include it right into the IsItOnAWS Lambda function. Which meant I’d have to rebuild and upload the function every time the IP addresses change.

It turns out that if you care about those addresses, you can subscribe to an Amazon Simple Notification Service (SNS) topic that will notify you whenever it changes (in my recent experience, once or twice a week). And you can hook your subscription up to a Lambda function. With that, I felt I’d found all the pieces anyone could need. There are two Lambda functions: the first, newranges.js, gets the change notifications, generates the JavaScript form of the IP-Ranges data, and uploads a second Lambda function, isitonaws.js, which includes that JavaScript. Vigilant readers will have deduced this is all with the Node runtime.

The new-ranges function, your typical async/waterfall thing, is a little more complex than I’d expected going in.

Postmodern IP Addresses
Its first task is to fetch the IP-Ranges, a straightforward HTTP GET. Then you take that JSON and smooth it out to make it more searchable. Unsurprisingly, there are both IPv4 and IPv6 ranges, and to make things easy I wanted to mash ’em all together into a single array that I could search with simple string or numeric matching. And since IPv6 addresses are way too big for JavaScript numbers to hold, they needed to be strings.

It turns out the way the IPv4 space embeds into IPv6’s ("::ffff:0:0/96") is a little surprising. I’d always assumed it’d be like the BMP mapping into the low bits of Unicode. I idly wonder why it’s this way, but not enough to research it.

The code for crushing all those CIDRs together into a nice searchable array ended up being kind of brutish, but it gets the job done.

Building Lambda in Lambda
Next, we need to construct the lambda that’s going to actually handle the IsItOnAWS request. This has to be a Zipfile, and NPM has tools to make those. Then it was a matter of jamming the zipped bytes into S3 and uploading them to make the new Lambda function.

The sharp-eyed will note that once I’d created the zip, I could have just uploaded it to Lambda directly. I used the S3 interim step because I wanted to to be able to download the generated “ranges” data structure and actually look at it; at some point I may purify the flow.

The actual IsItOnAWS runtime is laughably simple, aside from a bit of work around hitting DNS to look up addresses for names, then mashing them into the same format we used for the ranges array. I didn’t do any HTML templating, just read it out of a file in the zip and replaced an invisible <div> with the results if there were any. Except for, I got to code up a binary search method, which only happens once a decade or so but makes me happy.

Putting the Pieces Together
Once I had all this code working, I wanted to connect it to the world, which meant using Amazon API Gateway. I’ve found this complex in the past, but this time around I plowed through Create an API with Lambda Proxy Integration through a Proxy Resource, and found it reasonably linear and surprise-free.

However, it’s mostly focused on constructing APIs (i.e. JSON in/out) as opposed to human experiences. It doesn’t actually say how to send HTML for a human to consume in a browser, but it’s not hard to figure out. Here’s how (from Node):

  "statusCode": 200,
  "headers": { "Content-type": "text/html" },
  "body": "<html>Your HTML Here</html>"

Once I had everything hooked up to API Gateway, the last step was pointing at it. And that’s why I wrote this code in December-January, but am blogging at you now. Back then, Amazon Certificate Manager (ACM) certs couldn’t be used with API Gateway, and in 2017, life is just too short to go through the old-school ceremony for getting a cert approved and hooked up. ACM makes the cert process a real no-brainer. What with ACM and Let’s Encrypt loose in the wild, there’s really no excuse any more for having a non-HTTPS site. Both are excellent, but if you’re using AWS services like API Gateway and CloudFront like I am here, ACM is a smoother fit. Also it auto-renews, which you have to like.

So as of now, hooking up a domain name via HTTPS and CloudFront to your API Gateway API is dead easy; see Use Custom Domain Name as API Gateway API Host Name. Worked for me, first time, but something to watch out for (in March 2017, anyhow): When you get to the last step of connecting your ACM cert to your API, you get a little spinner that wiggles at you for several minutes while it hooks things up; this is apparently normal. Fortunately I got distracted and didn’t give up and refresh or cancel or anything, which might have screwed things up.

By the way, as a side-effect of using API Gateway, this is all running through CloudFront. So what with that, and not having a database, you’d expect it to be fast. And yep, it sure is, from here in Vancouver anyhow. Fast enough to not bother measuring.

I also subscribed my email to the “IP-Ranges changed” SNS topic, so every now and then I get an email telling me it’s changed, and I smile because I know that my Lambda wrote a new Lambda, all automatic, hands-off, clean, and fast.

Tim Bray, Senior Principal Engineer


John Boyer (IBM)Save the Date! Monthly OMEGAMON Performance Management Suite V5.4 Deployment Customer Call on Wednesday, April 12, 2017 @ 11 a.m. US EDT

Thanks for your attendance of the previous OMEGAMON deployment customer open Q&A teleconference call held on February 22, 2017The cumulative 2016-2017 meeting minutes, which include the Q&A low-level details from our last call, are available in a downloadable PDF from the following link in SMC z Systems community: URL: h<wbr></wbr>t<wbr></wbr>t<wbr></wbr>p<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>:<wbr></wbr>/<wbr></wbr>/<wbr></wbr>w<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>w<wbr></wbr>w<wbr></wbr>.<wbr></wbr>i<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>b<wbr></wbr>m<wbr></wbr>.<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>o<wbr></wbr>m<wbr></wbr>/<wbr></wbr>d<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>v<wbr></wbr>e<wbr></wbr>l<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>o<wbr></wbr>p<wbr></wbr>e<wbr></wbr>r<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>w<wbr></wbr>o<wbr></wbr>r<wbr></wbr>k<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>s<wbr></wbr>/<wbr></wbr>c<wbr></wbr>o<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>m<wbr></wbr>m<wbr></wbr>u<wbr></wbr>n<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>i<wbr></wbr>t<wbr></wbr>y<wbr></wbr>/<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>g<wbr></wbr>r<wbr></wbr>o<wbr></wbr>u<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>p<wbr></wbr>s<wbr></wbr>/<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr>v<wbr></wbr>i<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>/<wbr></wbr>h<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>t<wbr></wbr>m<wbr></wbr>l<wbr></wbr>/<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>o<wbr></wbr>m<wbr></wbr>m<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>u<wbr></wbr>n<wbr></wbr>i<wbr></wbr>t<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>y<wbr></wbr>v<wbr></wbr>i<wbr></wbr>e<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>w<wbr></wbr>?<wbr></wbr>c<wbr></wbr>o<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>m<wbr></wbr>m<wbr></wbr>u<wbr></wbr>n<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>i<wbr></wbr>t<wbr></wbr>y<wbr></wbr>U<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>u<wbr></wbr>i<wbr></wbr>d<wbr></wbr>=<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>5<wbr></wbr>e<wbr></wbr>6<wbr></wbr>5<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>9<wbr></wbr>9<wbr></wbr>0<wbr></wbr>a<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>-<wbr></wbr>9<wbr></wbr>6<wbr></wbr>9<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>0<wbr></wbr>-<wbr></wbr>4<wbr></wbr>2<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>2<wbr></wbr>-<wbr></wbr>9<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>3<wbr></wbr>b<wbr></wbr>1<wbr></wbr>-<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>2<wbr></wbr>2<wbr></wbr>6<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>7<wbr></wbr>b<wbr></wbr>e<wbr></wbr>7<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>6<wbr></wbr>2<wbr></wbr>0<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>#<wbr></wbr>f<wbr></wbr>u<wbr></wbr>l<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>l<wbr></wbr>p<wbr></wbr>a<wbr></wbr>g<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>W<wbr></wbr>i<wbr></wbr>d<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>g<wbr></wbr>e<wbr></wbr>t<wbr></wbr>I<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>d<wbr></wbr>=<wbr></wbr>W<wbr></wbr>a<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>a<wbr></wbr>6<wbr></wbr>2<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>0<wbr></wbr>1<wbr></wbr>8<wbr></wbr>a<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>0<wbr></wbr>5<wbr></wbr>a<wbr></wbr>_<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>4<wbr></wbr>c<wbr></wbr>a<wbr></wbr>4<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>_<wbr></wbr>b<wbr></wbr>6<wbr></wbr>1<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>2<wbr></wbr>_<wbr></wbr>4<wbr></wbr>9<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>f<wbr></wbr>f<wbr></wbr>e<wbr></wbr>e<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>8<wbr></wbr>0<wbr></wbr>3<wbr></wbr>9<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>8<wbr></wbr>e<wbr></wbr>&<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>i<wbr></wbr>l<wbr></wbr>e<wbr></wbr>=<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>2<wbr></wbr>a<wbr></wbr>8<wbr></wbr>9<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>0<wbr></wbr>4<wbr></wbr>5<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>-<wbr></wbr>e<wbr></wbr>2<wbr></wbr>1<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>a<wbr></wbr>-<wbr></wbr>4<wbr></wbr>5<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>3<wbr></wbr>8<wbr></wbr>-<wbr></wbr>8<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>7<wbr></wbr>d<wbr></wbr>7<wbr></wbr>-<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>1<wbr></wbr>4<wbr></wbr>4<wbr></wbr>4<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>5<wbr></wbr>d<wbr></wbr>2<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>5<wbr></wbr><wbr></wbr>4<wbr></wbr>6<wbr></wbr>7


We are scheduling the next call, planned to be held on Wednesday, April 12th @ 11 a.m. US EDT.  As part of our continued focus on further improving the product deployment user experience and helping answer any deployment queries you may have, the monthly customer call's goal is to have an informal, open Q&A forum especially for those in the midst of varying product deployment phases, imageincluding the upgrading phase of deploying one of our IBM z Management Suites (IBM OMEGAMON for z/OS Management Suite, IBM OMEGAMON Performance Management Suite for z/OS, IBM Service Management Suite for z/OS, and IBM Advanced Storage Management Suite for z/OS).  

For these product suites, a number of the components included can be installed by the optional Install Job Generator (JOBGEN) and configured by the PARMGEN configuration tool<wbr></wbr>.  Both JOBGEN and PARMGEN tooling are delivered by the shared HKCI310 infrastructure base Function Modification ID (FMID).


We know that many customers are planning on moving to the latest GA releases, or in the middle of the respective IBM z Systems Management Suites' deployment, where they will encounter a number of valuable updates in the products.  Some of those significant enhancements focus on deployment with great aid from the PARMGEN configuration tool, which was further enhanced in the latest cumulative PARMGEN 4Q16B IF PTF UA83283.  This cumulative PTF delivers sig<wbr></wbr>n<wbr></wbr>ifi<wbr></wbr>c<wbr></wbr>ant<wbr></wbr> <wbr></wbr>Tim<wbr></wbr>e<wbr></wbr>-to<wbr></wbr>-<wbr></wbr>Val<wbr></wbr>u<wbr></wbr>e (TTV) improvements that cater to all products that PARMGEN deploys.  PTF UA83283 also delivers the latest PARMGEN z/OS Discovery Library Adapter (DLA) integration enhancement, as well as the product-specific configuration support for the new product versions that GA'd in 4Q16 (for example, OMEGAMON for JVM V5.4.0, OMEGAMON for DB2 PE/PM V5.4.0, OMEGAMON for Storage V5.4.0) . For more information, please review the "What's New in PARMGEN IFs?" attachments in Section C1 of the m<wbr></wbr>a<wbr></wbr>s<wbr></wbr>t<wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr> <wbr></wbr>P<wbr></wbr><wbr></wbr>A<wbr></wbr>R<wbr></wbr>M<wbr></wbr>G<wbr></wbr><wbr></wbr>E<wbr></wbr>N<wbr></wbr> <wbr></wbr>T<wbr></wbr><wbr></wbr>e<wbr></wbr>c<wbr></wbr>h<wbr></wbr>n<wbr></wbr><wbr></wbr>o<wbr></wbr><wbr></wbr>t<wbr></wbr><wbr></wbr>e.<wbr></wbr>  Section A1 and Section A2 of the m<wbr></wbr>a<wbr></wbr>s<wbr></wbr>t<wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr> <wbr></wbr>P<wbr></wbr><wbr></wbr>A<wbr></wbr>R<wbr></wbr>M<wbr></wbr>G<wbr></wbr><wbr></wbr>E<wbr></wbr>N<wbr></wbr> <wbr></wbr>T<wbr></wbr><wbr></wbr>e<wbr></wbr>c<wbr></wbr>h<wbr></wbr>n<wbr></wbr><wbr></wbr>o<wbr></wbr><wbr></wbr>t<wbr></wbr><wbr></wbr>e also list important JOBGEN/PARMGEN PTFs and product PTFs that you would want to review as part of system preparation.


For our regular attendees who requested an official calendar invitation for these calls, a broadcast invitation will be sent out shortly.  For those new to our forum and are not currently part of the monthly mailing lists, please e-mail me ( with your contact information and we can add your info. to the calendar/mailing list if you would like to receive an official broadcast invitation.  We appreciate everyone's ongoing participation, and valuable feedback.  If you have any questions about these events, kindly e-mail me directly.  I welcome your feedback on this event, as well as on any other topics you'd like us to cover via this venue.  

You are also welcome to forward to other participants in your company who may be interested in attending.  We look forward to your participation and thanks in advance for your time!


Thanks very much,
Cecile Day (

Web/Audio conference details:  

Broadcast Invitation: If you wish to receive an official calendar broadcast invitation entry to reserve the meeting time, please e-mail me with your contact information and we can add your info. to the calendar/mailing list.  Thank you.
On the day of the event, please:

* Join an IBM Connections Cloud Web Meeting:

* DIAL IN: AT&T TeleConference Access Details:

(USA) Toll Free:  8<wbr></wbr>8<wbr></wbr>8<wbr></wbr>-<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>4<wbr></wbr>2<wbr></wbr>6<wbr></wbr>-<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>6<wbr></wbr>8<wbr></wbr>4<wbr></wbr>0<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr> <wbr></wbr><wbr></wbr> <wbr></wbr><wbr></wbr>  <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr> <wbr></wbr><wbr></wbr> <wbr></wbr> <wbr></wbr> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr> <wbr></wbr> <wbr></wbr> <wbr></wbr>  Toll:   215-861-6239

Passcode:  7186841

Call Monitor:   h<wbr></wbr>t<wbr></wbr>t<wbr></wbr>p<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>s<wbr></wbr>:<wbr></wbr>/<wbr></wbr>/<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>t<wbr></wbr>e<wbr></wbr>l<wbr></wbr>e<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>o<wbr></wbr>n<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr>e<wbr></wbr>n<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>.<wbr></wbr>u<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>.<wbr></wbr>a<wbr></wbr>t<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>t<wbr></wbr>.<wbr></wbr>c<wbr></wbr>o<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>m<wbr></wbr>/<wbr></wbr>e<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>m<wbr></wbr>/<wbr></wbr>?<wbr></wbr>b<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>p<wbr></wbr>=<wbr></wbr>8<wbr></wbr>8<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>8<wbr></wbr>4<wbr></wbr>2<wbr></wbr>6<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>6<wbr></wbr>8<wbr></wbr>4<wbr></wbr>0<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>&<wbr></wbr>m<wbr></wbr>a<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>=<wbr></wbr>7<wbr></wbr>1<wbr></wbr>8<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>6<wbr></wbr><wbr></wbr>8<wbr></wbr>4<wbr></wbr>1
In countries with an AT&T Direct number listed below, participants should dial the AT&T Direct number first and, when prompted, dial the toll free number listed in this URL: h<wbr></wbr>t<wbr></wbr>t<wbr></wbr>p<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>s<wbr></wbr>:<wbr></wbr>/<wbr></wbr>/<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>w<wbr></wbr>w<wbr></wbr>w<wbr></wbr>.<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>t<wbr></wbr>e<wbr></wbr>l<wbr></wbr>e<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>o<wbr></wbr>n<wbr></wbr>f<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr>e<wbr></wbr>n<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>.<wbr></wbr>a<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>t<wbr></wbr>t<wbr></wbr>.<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>o<wbr></wbr>m<wbr></wbr>/<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr>v<wbr></wbr>l<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>t<wbr></wbr>/<wbr></wbr>g<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>l<wbr></wbr>b<wbr></wbr>A<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>s<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>?<wbr></wbr>p<wbr></wbr>r<wbr></wbr>o<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>s<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>=<wbr></wbr>1<wbr></wbr>&<wbr></wbr>a<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>c<wbr></wbr>e<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>s<wbr></wbr>C<wbr></wbr>o<wbr></wbr>d<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>=<wbr></wbr>7<wbr></wbr>1<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>8<wbr></wbr>6<wbr></wbr>8<wbr></wbr>4<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>1<wbr></wbr>&<wbr></wbr>a<wbr></wbr>c<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>c<wbr></wbr>e<wbr></wbr>s<wbr></wbr>s<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>N<wbr></wbr>u<wbr></wbr>m<wbr></wbr>b<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>e<wbr></wbr>r<wbr></wbr>=<wbr></wbr>8<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>8<wbr></wbr>8<wbr></wbr>4<wbr></wbr>2<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>6<wbr></wbr>6<wbr></wbr>8<wbr></wbr>4<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>0<wbr></wbr>&<wbr></wbr>b<wbr></wbr>r<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>a<wbr></wbr>n<wbr></wbr>d<wbr></wbr>=<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>a<wbr></wbr>t<wbr></wbr>t<wbr></wbr>&<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>l<wbr></wbr>a<wbr></wbr>n<wbr></wbr>g<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>=<wbr></wbr>E<wbr></wbr>n<wbr></wbr>g<wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>l<wbr></wbr><wbr></wbr>i<wbr></wbr>s<wbr></wbr>h


Amazon Web ServicesAWS Global Summits are Coming!

One of the first things I got to do when I joined the AWS Blog team was to attend the summit in New York City last August. Meeting all of our customers, checking out Game Day, and getting to see the enthusiasm of the AWS community made me even more excited to be starting my adventure working on the blog with Jeff.

This year’s AWS Summit dates have been announced and whether you are new to the cloud or an experienced user, you can always learn something new at an AWS Summit. These free events, held around the world, are designed to educate you about the AWS platform. Our team has built a program that offers a multitude of learning opportunities covering a broad range of topics, and technical depth. Join us to develop the skills needed to design, deploy, and operate infrastructure and applications on AWS.

We have Summits taking place across North America, Latin America, Asia Pacific, Europe, the Middle East, Japan, and Greater China. To see the full list of cities and dates, check out the AWS Summits page.

Registration is now open for six locations including; San Francisco, Sydney, Singapore, Kuala Lumpur, Seoul, Manila, and Bangkok. You can also subscribe to the AWS Events RSS feed, follow @awscloud, and find us on Facebook.

And you never know, along with learning all sorts of new things at the summit, you just might run into me or Jeff and snag a blog sticker too!


John Boyer (IBM)Automated Testing of the MQ Console

Automated testing of a software product is vital for ensuring that quality is maintained while reducing the resource cost of manual testing. However, as any of you who have been developing your own MQ front-end will know, simulating how a user interacts with a GUI can be a significant task. In this blog I will outline the technology we have used in order to maintain the integrity of the MQ Console during development, and how you can go about implementing a similar system.


We have set up a test infrastructure using the open-source testing framework Selenium WebDriver, which allows a web browser to be remote-controlled as part of an automated test script. Our tests mimic the way a user would administer an MQ system using the Console, allowing regressions to be rapidly identified during development of new features. Selenium is a popular and widely-used tool, with support for many browsers, operating systems, and languages, as well as a substantial community of online support. It works by interpreting instructions to find and interact with HTML DOM elements on a web page, such as reading text, clicking buttons, and typing into forms. Information from these interactions can then be used as part of a test, for instance verifying that an MQ object appears as expected in a Console widget.


If you have been working on your own web UI, or would just like to try running a Selenium test yourself, you can get started by following this basic example after first downloading the latest version of the Selenium Java bindings and WebDriver executable (Mozilla GeckoDriver, Google ChromeDriver, etc.) from Running the following code as a JUnit test will open up a Firefox browser window, navigate to, check that the logo is displayed, search Google for “selenium”, click a link, wait for the Selenium homepage to load, and check it has the expected page title:


public void test() {

        // Create WebDriver object be setting the path to the WebDriver executable and creating the relevant WebDriver subclass

        System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");

        WebDriver driver = new FirefoxDriver(DesiredCapabilities.firefox());

        try {

                // Open the browser and maximise it


                // Navigate to the URL of the initial page to be tested


                // Locate the element with the desired ID attribute (you can view the relevant part of the DOM on any page by right-clicking and selecting Inspect Element)

                WebElement logo = driver.findElement("hplogo"));

                // Test that the found element is displayed using a JUnit assertion

                Assert.assertTrue("Logo was not displayed", logo.isDisplayed());

                // Locate the search form using its ID

                WebElement input = driver.findElement("lst-ib"));

                // Type "selenium" and press return

                input.sendKeys("selenium" + Keys.RETURN);

                // Wait for search results to load (by waiting until an element with the specified ID can be found)

                new WebDriverWait(driver, 5).until(ExpectedConditions.presenceOfElementLocated("rso")));

                // Locate the link to the Selenium page by searching within another element, then click it

                WebElement searchResults = driver.findElement("rso"));

                String expPageTitle = "Selenium - Web Browser Automation";


                // Wait for the page to load

                new WebDriverWait(driver, 5).until(ExpectedConditions.presenceOfElementLocated("header")));

                // Check that the page title is as expected

                Assert.assertEquals("Page title was incorrect", expPageTitle, driver.getTitle());

        } finally {

                // Close the browser even if the test has failed or an exception has been thrown




All Selenium functionality stems from the WebDriver object:

  • WebElement objects are obtained by calling WebDriver.findElement or WebElement.findElement and specifying a locator e.g., By.className, By.tagName
  • WebElement has built-in methods such as .isDisplayed and .getText to return information about the element, as well as .getAttribute to return the value of a specified HTML attribute
  • will simulate a click on the element and WebElement.sendKeys will simulate typing into it
  • Searching for elements before the page has loaded will result in failures
    • Tests written without consideration of loading times can be very unreliable, however this can be simply resolved by trying to locate a specific element inside a loop until it is found, then continuing with the test
    • Wait methods such as WebDriverWait.until simplify the process of repeating a specific action until it is successful, for instance using ExpectedConditions.presenceOfElementLocated
    • For more advanced waiting, FluentWait can be used to repeat a specific function until a condition is met or a timeout is reached
  • To prevent code repetition and make test scripts more readable it can be useful to build up OOP representations of parts of the web page being tested, for instance Java classes representing the page as a whole, a dialog that can be opened, or a widget with which a user interacts
    • This can be done by building on the basic tools Selenium provides, for instance by creating classes which implement the WebElement interface, and wrapping findElement methods up so that they return your new classes
  • JUnit annotations can also be used to simplify the process of setting up Selenium at the start of every test and ensuring that all browser windows are closed afterwards
    • @BeforeClass and @AfterClass allow code to be executed once at the start and end of each test script
    • @Before and @After allow code to be executed before and after each test case is run
    • @Rule allows behaviour to be shared between test scripts


Selenium doesn't have to run the browser on the same machine as the test script; Selenium Grid allows you to register multiple machines as 'nodes', specifying their OS and the browsers they have available. Tests simply point to an URL where the Selenium 'hub' is running and specify the details of the OS and browser the test is to be run on, e.g.

WebDriver driver = new RemoteWebDriver(new URL(hubUrl), DesiredCapabilities.firefox());

The Selenium Standalone Server is a .jar file (available from which can be run as a hub or a node from a command prompt or terminal

  • Start a new hub on the default port of 4444:

java -jar selenium-server-standalone.jar -role hub

  • Start a new node (registering Firefox and Chrome on Linux) and connect to the hub:

java -jar selenium-server-standalone.jar -role node -hub http://hub.domain:4444/grid/register -browser browserName=firefox,platform=LINUX -Dwebdriver.gecko.driver=/path/to/geckodriver -browser browserName=chrome,platform=LINUX -port 5555

  • Registered nodes can be viewed at hub.domain:4444/grid/console


We have taken into account the above practices when testing the MQ Console, with individual test cases similar in structure to the example used to verify individual Console features. Classes implementing WebElement are used to represent Console objects such as widgets, allowing for common actions to be repeated in a clear and concise manner. FluentWaits are used when an action is non-instantaneous, increasing the robustness of the test to behaviour changes and different test machines, and JUnit annotations prepare a test Queue Manager and ensure the Console is in a known state at the start of each test. This setup allows for an agile relationship between test and development as part of the MQ 9.0.x Continuous Delivery model.


I hope that this introduction to Selenium testing can be of use in your own front-end projects, please leave a comment if you have any questions or would like me to go into further detail.

John Boyer (IBM)The Benefits of Running a Diversified Company

Diversification is a corporate strategy where a company enters into a new market and also creating a new product for that new market or industry. It could also refer to allocating capital or investing in assets to limit exposure to business risk or volatility.


To make it clear, Investopedia defines a diversified company as one which runs multiple and unrelated businesses. These businesses have different management requirements, different customers, and they offer different products or services to the public.


It is crucial for a company to diversify in a fast-paced and dynamic economic landscape. Not only does it help companies remain deeply rooted in business, it also contributes to their growth and development.


What a diversified company looks like


For instance, BHP Billiton Limited is a highly diversified global resources company. They deal in the production and exploration of natural resources like petroleum, iron ore, metallurgical & thermal coal, lead, gold, silver, molybdenum, zinc, uranium, and copper.


The company operates an internal system that handles product distribution through its global logistics chain, including freight and pipeline transportation. Information found on their website reveals their chains of businesses are Minerals Americas, Minerals Australia, Petroleum and Marketing.


What are the benefits of running a diversified company?


There are countless benefits involved in diversifying a business. It suffices us to mention a few in this article.


Diversification breeds innovation


"Operating a diversified company creates opportunities for new innovation and discoveries," says James Chapman, CEO of Bella Bathrooms. "This is the ingredient a company needs to grow or succeed. By exploring different markets and industries, companies can create new opportunities and discover more profitable business models that would project their financial status and earnings."


For instance, if a company in the farming industry which operates solely offline enters an industry like luxury clothing, they’d have to embrace innovations and make new discoveries – like using a pay button which gives them access to underbanked people to process transactions – in order to stand out.


It provides security and stability


Business diversification creates a buffer for companies against dramatic instabilities in any particular industry or sector. Because of this security, a lot of businesses are able to stand firmly in the face of the storm. It is on record that the few companies that were least affected by the financial crisis that rocked the US some years back were companies that diversified.


It creates more employment opportunities


There’s no doubt that diversification leads to the creation of more jobs opportunities. It also creates room for business collaborations of all sorts. For example, General electric is one of the largest business conglomerates with global staff strength of about 305,000.


More profit is generated


Expanding your business definitely helps to increase your revenue base. And one approach that really makes this possible is to tap into industries with huge investment potentials. Richard Branson was already successful with his conglomerates but saw his revenue base exponentially increased when he diversified into the media industry in 2006/2007.


Diversification helps the economy to grow


The end result of diversifying a company is increased revenue and more profits. But ultimately, it drives growth for the economy. The government generates revenue through tax, and also through the profits shared with multinational companies.




The effectiveness of diversification is never in doubt. In the words of Chris Lutz, “the purpose of diversification is so that when one investment goes down or is not doing well, you are insulated from the result because of the others you have in place.”

John Boyer (IBM)MAXIMO IOT Newsletter: March Edition - Your Monthly updates - All in one place


MAXIMO IoT Newsletter: March Edition - Your Monthly updates - All in one place


The IoT newsletter will be published monthly, this will be the perfect way to share with you our high value content, recent updates and any information you might have missed.


The main objective of this Newsletter is to give you a monthly peek with what's happening in the world of Maximo, value added contents such as videos, blogs, IFIX releases etc.


This month we have added a vast amount of YouTube Videos, make sure you do check them out..





Maximo Asset Management Customer Support Technical Information Newsletter

The IBM Maximo Asset Management Customer Support Technical Information Newsletter, is an excellent Technical newsletter which has been put together by our U.S. colleague, Jason O'Donnell and Denise McKinnon, here you will find  vast amount of knowledgeable information, that is available to you such as Latest Technotes and FAQs, Education and training Forums and Wikis. You are  guaranteed to find this Technical newsletter  a very  useful  source of information for you day to day need.


Direct Link to Customer Support Technical Information Newsletter - March 2017 Edition

imageIBM Support Interim Fix Pack Changes

Here you will find all the information you need to know about the changes to the interim fix pack delivery schedule more focus on the latest fix pack releases.

                      Direct Link to Interim Fix Pack Changes     


Top Videos For This Month

In this section, you'll find the  top videos for this month released by our own team;  


Maximo -  Finding and Downloading Latest Feature Pack and IFIX - David Leftwich

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>


Direct Link to You Tube Video:



Maximo - Reporting Browser View - Juliet Mosiadz

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>


         Direct Link to You Tube Video:



Maximo -  Migration Manager and Automation Scripts - Jaegee Ramos


<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>


   Direct Link to You Tube Video:


Maximo - Required Field based on a Condition - By Roberto Plama

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:




Maximo - Setting users display date format - Roberto Palma

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:


Maximo - AnyWhere Administration - Shane Howard

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:



Maximo - Report Administration Part 1 - Remove a BIRT report from available list - Juliet Mosiadz

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:


Maximo - Report Administration Part 2 - Restore a BIRT report to available list - Juliet Mosiadz

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:


Maximo - Software Product Compatibility Reports for Maximo - Eric LeGuennec

<iframe align="middle" frameborder="0" height="315" scrolling="no" src="" width="560"></iframe>

   Direct Link to You Tube Video:





Top Blogs of the Month

Be sure to look out for our  Blogs Posts


Post Author: Post Title:
Jaegee Ramos How to enable DOCLINKS_ASSETID Relationship to use for Attachments to be moved with Asset to another Site 
Jaegee Ramos Maximo Time difference for Europe/Moscow (GMT + 3 DST/Y) Moscow, St.. Petersburg, Volgograd 
Alice Degawa System freezes while trying to close PO with 6,000+ PO Lines 
Benoit Cotnoir What is Watson IoT Accelerated Value Program?
Stephan Lambert Inspect Element in Firefox and Maximo cascading style sheets (css) 
Alice Degawa Cannot add Items to Storeroom using Item Master application 
Benoit Cotnoir The Three Pillars of Accelerated Value Program 
Richard Lesses Maximo Asset Management Interim Fix 009 released 
Richard Lesses Maximo Asset Management Interim Fix 008 released 
Richard Lesses Maximo Asset Management Interim Fix 010 Released 
Richard Lesses Maximo Asset Management Interim Fix 016 released 
Richard Lesses Maximo Asset Management Interim Fix 004 released 
Richard Lesses Maximo Asset Management Interim Fix 014 released 
Richard Lesses Maximo and WebSphere 9.0.0 - Getting Started 
Richard Lesses Maximo Asset Management Interim Fix 004 released 
Richard Lesses Maximo Asset Management Interim Fix 009 released 
Colborn Chapman Using The Additional Resource section of Graphical Assignment. 
Edgar Mengelberg How to create a TRIRIGA Classification? 
Juliet M .MSG File Type in Maximo 
Jaegee Ramos Launch Entry Name Field In Work Order 
Rick Rhea Maximo Anywhere 7.6.x Sizing Guidelines 
Paulus Gunadi Maximo: Update Person's Supervisor from Active Directory using Escalation and Automation Script 

Katherine Collins

What's new in Maximo for Service Providers version 7.6.3 
Pearse Gough New features in Maximo Asset Configuration Manager 7.6.5 
Pearse Gough New features in Maximo for Aviation 7.6.5 
Paulus Gunadi Maximo Cleanup Work Order and Ticket MBO 
Yalcin Kumbasar Marking Main Record as Modified while Modifying Related (Child) Records via Automation Scripts (v7.6)


New Releases

For each Maximo TPAE versions

Maximo Asset Management Interim Fix 016 released 
Maximo Asset Management Interim Fix 010 released 
Maximo Asset Management Interim Fix 004 released
Maximo Asset Management Interim Fix 014 released 
Maximo Asset Management Interim Fix 010 Released 
Maximo Asset Management Interim Fix 009 released 
Maximo Asset Management Interim Fix 004 released 




Most recent News and Flashes


BMXAA4195E- A Value is Required For the URL / File Name Field on the DOCLINKS Object on IE 11



Problem Solving Resources

Lists the most requested documents as well as those identified as valuable in answering your questions.
Gathering this data before calling IBM support will help you understand the problem and save time analyzing the data.
Gathering this data before calling IBM support will help you understand the problem and save time analyzing the data.
Gathering this data before calling IBM support will help you understand the problem and save time analyzing the data.
The links below include useful Maximo 7.5 content and currently available 7.5 product downloads.
This page include various documentation links.



Thank you for  taking the time to look at our March 2017 Newsletter - please take a look at all our links below;

Feel free to add comments, so we know, what you would like to see in the Next Month Edition ...

Hit the Like button, if you have enjoyed reading this month Newsletter  :-)


IBM IoT Support YouTube Channel http<wbr></wbr>s://<wbr></wbr>www.<wbr></wbr>yout<wbr></wbr>ube.<wbr></wbr>com/<wbr></wbr>chan<wbr></wbr>nel/<wbr></wbr>UCkc<wbr></wbr>m7pK<wbr></wbr>dtuW<wbr></wbr>bQ9m<wbr></wbr>ugvM<wbr></wbr>mpZg<wbr></wbr>/vid<wbr></wbr>eo<wbr></wbr>s
IBM Asset Management  Blog Posts http<wbr></wbr>s://<wbr></wbr>www.<wbr></wbr>ibm.<wbr></wbr>com/<wbr></wbr>deve<wbr></wbr>lope<wbr></wbr>rwor<wbr></wbr>ks/c<wbr></wbr>ommu<wbr></wbr>nity<wbr></wbr>/blo<wbr></wbr>gs/a<wbr></wbr>9ba1<wbr></wbr>efe-<wbr></wbr>b731<wbr></wbr>-431<wbr></wbr>7-97<wbr></wbr>24-a<wbr></wbr>181d<wbr></wbr>6155<wbr></wbr>e3a?<wbr></wbr>lang<wbr></wbr>=e<wbr></wbr>n
Maximo DWAnswers http<wbr></wbr>s://<wbr></wbr>deve<wbr></wbr>lope<wbr></wbr>r.ib<wbr></wbr><wbr></wbr>m/an<wbr></wbr>swer<wbr></wbr>s/se<wbr></wbr>arch<wbr></wbr>.htm<wbr></wbr>l?pa<wbr></wbr>ge=1<wbr></wbr>&pag<wbr></wbr>eSiz<wbr></wbr>e=15<wbr></wbr>&sor<wbr></wbr>t=ne<wbr></wbr>west<wbr></wbr>&f=&<wbr></wbr>cust<wbr></wbr>omPa<wbr></wbr>geSi<wbr></wbr>ze=t<wbr></wbr>rue&<wbr></wbr>q=ma<wbr></wbr>ximo<wbr></wbr>&red<wbr></wbr>irec<wbr></wbr>t=se<wbr></wbr>arch<wbr></wbr>%2Fs<wbr></wbr>earc<wbr></wbr>h&ty<wbr></wbr>pe=q<wbr></wbr>uest<wbr></wbr>io<wbr></wbr>n
MAXIMO IoT Newsletter: October 2016 Edition http<wbr></wbr>s://<wbr></wbr>www.<wbr></wbr>ibm.<wbr></wbr>com/<wbr></wbr>deve<wbr></wbr>lope<wbr></wbr>rwor<wbr></wbr>ks/c<wbr></wbr>ommu<wbr></wbr>nity<wbr></wbr>/blo<wbr></wbr>gs/a<wbr></wbr>9ba1<wbr></wbr>efe-<wbr></wbr>b731<wbr></wbr>-431<wbr></wbr>7-97<wbr></wbr>24-a<wbr></wbr>181d<wbr></wbr>6155<wbr></wbr>e3a/<wbr></wbr>entr<wbr></wbr>y/MA<wbr></wbr>XIMO<wbr></wbr>_IOT<wbr></wbr>_New<wbr></wbr>slet<wbr></wbr>ter_<wbr></wbr>Octo<wbr></wbr>ber_<wbr></wbr>Edit<wbr></wbr>ion_<wbr></wbr>Your<wbr></wbr>_Mon<wbr></wbr>thly<wbr></wbr>_upd<wbr></wbr>ates<wbr></wbr>_all<wbr></wbr>_in_<wbr></wbr>one_<wbr></wbr>plac<wbr></wbr>e?la<wbr></wbr>ng=e<wbr></wbr>n
MAXIMO IoT Newsletter: November 2016  Edition MAXI<wbr></wbr>MO I<wbr></wbr>OT N<wbr></wbr>ewsl<wbr></wbr>ette<wbr></wbr>r: N<wbr></wbr>ovem<wbr></wbr>ber <wbr></wbr>Edit<wbr></wbr>ion <wbr></wbr>- Yo<wbr></wbr>ur M<wbr></wbr>onth<wbr></wbr>ly u<wbr></wbr>pdat<wbr></wbr>es -<wbr></wbr> All<wbr></wbr> in <wbr></wbr>one <wbr></wbr>plac<wbr></wbr>e<wbr></wbr> 
MAXIMO IoT Newsletter: December 2016 Edition

MAXIMO IOT Newsletter: December Edition - Your Monthly updates - All in one place

MAXIMO IoT Newsletter: January 2017 Edition MAXIMO IOT Newsletter: January Edition - Your Monthly updates - All in one place 
MAXIMO IoT Newsletter: Feb 2017 Edition MAXIMO IOT Newsletter: February Edition - Your Monthly updates - All in one place 





John Boyer (IBM)Generate Optimization Profile

When I generate optimization profile through DSM, it shows nothing in the window even though it asks to review the statement. Any reason why?

"To Lock down the access path of the SQL statement, it is required to run the following statements to create an optimization profile. Review the following statement and click Next button to continue."

John Boyer (IBM)5 Trends to Watch for in Computer Networking for 2017

Trends change with each passing year. We have been fortunate to witness some remarkable aspects of networking in recent years with the ability to virtually be anywhere at any time through the internet, but those trends have just grown tremendously. In 2017, you can rest assured that we will see some new trends and maybe some twists on some of the older trends we are used to. According to the IT & Tech Magazine, here are 5 trends to watch for in computer networking for this year. 

Artificial Intelligence Within Appliances

Smart technology is certainly not a new thing in our society. We have grown used to the fact that our cell phones are able to do practically everything we need throughout the day, but that technology is now a part of our everyday appliances as well. Refrigerators that connect to the internet to keep track of our need for specific groceries and tells us where those items may be on sale within our community is not just a dream, but a reality for those who can afford it. More and smarter appliances are getting into our homes and making our lives easier during 2017 and beyond.

Buzz About 5G

The ability to connect to the internet via wireless technology is something that is now commonplace. If you go into a store or a coffee shop, they generally have Wi-Fi, but in 2017 you can bet that you will be hearing more about the coming 5G network. That will mean the end of the usual internet towers and the rise of internet everywhere and the end of dead spots in our cell signal.

Augmented Offices

One of the largest trends of this year is the augmented offices. These virtual places of business allow the business person to work from anywhere and have access to their own personal office. The trend is one that is on the rise but be warned, that this trend may be just a fad and we may also see the fall of this form of technology this year as well.

Personalized Cloud Security

Endless amounts of information is stored in the cloud, yet some people have questioned its vulnerability to a security breach. We have seen breaches in security in some of these systems and now people are turning to more personalized cloud security to keep their information safer than the standard cloud options.

Smart Malware

Where the networking trends of 2017 are usually positive, there is one that will result in a lot of negativity. Those that would put malware on systems are now utilizing malware that evolves and is less detectable by standard security programs. These new adaptations are something to watch for this year to keep your systems and information safe. It is a new year with new possibilities. Technology is always changing and evolving into more sophisticated systems. It is an exciting time in the networking world with the ability to keep in touch with anyone no matter where you are. Watch for these trends and the remarkable networking trends that are sure to come within the next few years.

John Boyer (IBM)5 Things to Know about IBM PowerHA SystemMirror for IBM AIX

The objective behind implementing a high availability solution is to provide near-continuous application availability through both planned and unplanned outages. Business-critical applications are configured into a cluster which is dedicated to keeping production continuously available. In addition to the day-to-day high availability operations, disaster recovery operations are increasingly becoming a standard part of the clustering environment. Once relegated to manual procedures, many industries and companies require periodic testing designed to prove disaster recovery capability. The IBM PowerHA enterprise edition cluster is designed to simplify operations both within the data center and across geographically dispersed locations.

PowerHA SystemMirror Standard Edition and PowerHA SystemMirror Enterprise Edition with Cluster Aware AIX (CAA), are designed to provide robust HA/DR environments focused on ease of implementation and ease of use.

Here are five things to know about PowerHA SystemMirror:

  1. Delivers a new graphical user interface (with V7.2.1) enabling at a glance monitoring of a cluster or a group of clusters.
    The new user interface (UI) available with PowerHA V7.2.1 was designed with continuous and iterative feedback from corporate customers. The new UI/ dashboard enables IT operators to monitor a cluster or a group of clusters with a single view for immediate health status. It also provides intelligent filtering of event logs for more efficient analysis.


The new PowerHA GUI

  1. Provides two editions: Standard and Enterprise.
    The PowerHA V7 Enterprise Edition enables clients to readily extend their traditional data center cluster to incorporate a remote location environment for disaster recovery. The V7 cluster makes disaster recovery testing relatively simple while putting the operator in charge of managing failover policy and procedures.
    The IBM PowerHA for AIX Standard Edition features cluster aware AIX, which provides a strategic foundation for Power Systems software. It enables kernel level messaging, event management, and monitoring in coordination with AIX. PowerHA monitors numerous soft and hard errors within the cluster from various event sources, including problems that are severe enough to immobilize the system (such as a process failure or exhaustion of system resources). With monitoring and event management functioning at the kernel of the operating system (OS), the cluster is not prone to job scheduling issues or other OS related operations.
  2. Smart assists streamline implementation and configuration.
    A set of high availability agents, called smart assists, are bundled with the PowerHA SystemMirror standard edition to help discover and define high availability policies for most common middleware products.image
  3. Integrates the new generation of servers.
    The PowerHA SystemMirror solution runs under the AIX and IBM i operating systems on IBM Power Systems. Through innovative technology, virtual servers, broad support of open standards for application flexibility and a full range of tools to manage IT infrastructure, these servers offer the performance, availability, scalability and infrastructure management demanded by today’s growing, on-demand business environments. They combine the benefits of IBM Power Architecture technology and mainframe-inspired Reliability, Availability, and Serviceability (RAS) features with the OS for efficient handling of mission-critical applications.
  4. Delivers a proven high availability solution.
    High availability solutions from IBM provide clients the confidence that comes from integrated design and testing. This reduces the risk of failures resulting from combining disparate components from multiple vendors and can be a critical factor for business environments. IBM high availability solutions provide the advantage of IBM Power Systems, the AIX or IBM i operating systems, IBM TotalStorage Proven offerings and PowerHA SystemMirror software.

PowerHA SystemMirror V7 integrates clustering technology into the kernel and the OS, enabling our customers to be more productive while delivering high quality IT services with robust and easy-to- manage solutions.

For more information on the IBM PowerHA SystemMirror for IBM AIX, refer to the following:

IBM PowerHA SystemMirror for AIX
IBM Power Systems Home Page
IBM PowerHA SystemMirror 7.2.1 for AIX IBM Redbooks publication

Dino Quintero 
Fabio Martins
Shawn Bodily



John Boyer (IBM)How to display the physical and related VSE I/O device address

With z/VSE 4.3 we introduced 4-digit device addresses.

That is you can define device addresses up to X'FFFF'. The 4-digit device address is called physical address (pcuu) and is defined for the z/VM guest or LPAR. During the IPL process the pcuu is mapped to a 3-digit device address - the VSE address (cuu). After IPL complete z/VSE uses VSE addresses.


You may use the QUERY IO Attention Routine command to display the relationship of the physical address of a device and the corresponding VSE address on the console. The QUERY IO command can also be invoked from the system console, by pointing the cursor to a VSE address and pressing the PF11 key. You may display the relationship for all devices or a selected device.


The QUERY IO command is described in the z/VSE System Control Statements book, It's available on our documentation web page.


John Boyer (IBM)Connecting Pepper Robot with Watson Speech to Text - Java program



1) Can we program Pepper Robot using Java?

2) For speech recognition, instead of using Pepper Robot's in-built speech recognition (which is word-based), can we use Watson Speech to Text (which is sentence based)?


Programming Pepper Robot using Java

Follow the steps in -> "Directly in the Aldebaran robot" section. Those steps are repeated here for quick reference (along with some minor modifications needed for my version of Pepper robot).


Note: You can ssh into Pepper Robot using default user account "nao" ( Note down the ip-address of Pepper robot and add an entry into your /etc/hosts like below: nao.local

Change ip-address above to match the ip-address assigned to your Pepper Robot.


  • Step-1 Download Java SDK 32-bit from the Oracle website.

The Pepper robot that I had access to was running a flavor of Linux 32-bit on x86 architecture. Use command “uname -a” to know details of your Pepper version. Hence I downloaded jdk-8u121-linux-i586.tar.gz . Note: I downloaded JDK instead of just JRE, as I wanted the ability to edit/compile Java programs (using javac command) on Pepper robot also.

  • Step-2 Upload and then extract it somewhere on the robot.
scp jdk-8u121-linux-i586.tar.gz nao@nao.local:
ssh nao@nao.local
tar xvfz jdk-8u121-linux-i586.tar.gz
mv jdk1.8.0_121 /home/nao/java
  • Step-3 Copy the java-naoqi-sdk-<version>-linux32 jar on the robot.

For instance, in: /home/nao/java/

scp java-naoqi-sdk- nao@nao.local:/home/nao/java/

Note: To download java-naoqi-sdk-, go to -> Other SDKs and utilities -> Java -> 2.4.3 -> Java SDK 2.4.3 Linux 32

  • Step-4 Create a sourceme file looking like:
nano /home/nao/java/sourceme

export JAVA_HOME=/home/nao/java/
export PATH=$PATH:/home/nao/java/bin
export CLASSPATH=.:/home/nao/java/java-naoqi-sdk-
  • Step-5 Compile your code and upload the .class files to the robot.
  • Step-6 Run "source sourceme" and use the command line to run your Java application.


Sample Java program to run on Pepper Robot - Demonstrates use of Pepper's Text to Speech service

import com.aldebaran.qi.Application;
import com.aldebaran.qi.helper.proxies.ALTextToSpeech;

public class SayHello {
    public static void main(String[] args) {
        // The robotUrl is specified here
        String robotUrl = "tcp://";
        Application application = new Application(args, robotUrl);
        try {
            // Start the application and create a session.
            // A session has been created. It can be retrieved this way:
            // application.session();
            // Create an ALTextToSpeech object and link it to your current session
            ALTextToSpeech tts = new ALTextToSpeech(application.session());
            // Make your robot say something
            tts.say("I can be programmed using Java! Isn't that awesome?");
        } catch (Exception e) {
            // The application could not be started.

Compile and run Java program:

$ javac
$ java SayHello


Connecting Pepper Robot and Watson Speech to Text using Java

Standalone Java program that streams audio from microphone to Watson Speech to Text service and displays transcribed text


scp java-sdk-3.7.0-jar-with-dependencies.jar nao@nao.local:/home/nao/java/

Add Watson Java SDK to CLASSPATH: Edit sourceme file and update CLASSPATH as below:

export CLASSPATH=.:/home/nao/java/java-naoqi-sdk-


  • Step-3 Create file and copy following program. Specify service credentials <username> and <password> in constructor.
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;


public class SpeechToTextUsingWatson {

    SpeechToText service = new SpeechToText();
    boolean keepListeningOnMicrophone = true;
    String transcribedText = "";

    public SpeechToTextUsingWatson() {
        service = new SpeechToText();
        service.setUsernameAndPassword("<username>", "<password>");

    public String recognizeTextFromMicrophone() {
        keepListeningOnMicrophone = true;
        try {
            // Signed PCM AudioFormat with 16kHz, 16 bit sample size, mono
            int sampleRate = 16000;
            AudioFormat format = new AudioFormat(sampleRate, 16, 1, true, false);
            DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);

            if (!AudioSystem.isLineSupported(info)) {
                System.err.println("Line not supported");
                return null;

            TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);

            AudioInputStream audio = new AudioInputStream(line);

            RecognizeOptions options = new RecognizeOptions.Builder()
              .inactivityTimeout(5) // use this to stop listening when the speaker pauses, i.e. for 5s
              .contentType(HttpMediaType.AUDIO_RAW + "; rate=" + sampleRate)

            service.recognizeUsingWebSocket(audio, options, new BaseRecognizeCallback() {
                public void onTranscription(SpeechResults speechResults) {
                    // System.out.println(speechResults);
                    String transcript = speechResults.getResults().get(0).getAlternatives().get(0).getTranscript();
                    if (speechResults.getResults().get(0).isFinal()) {
                        keepListeningOnMicrophone = false;
                        transcribedText = transcript;
                        System.out.println("Sentence " + (speechResults.getResultIndex() + 1) + ": " + transcript + "\n");
                    } else {
                        System.out.print(transcript + "\r");

            do {
            } while (keepListeningOnMicrophone);

            // closing the WebSockets underlying InputStream will close the WebSocket itself.
        } catch (LineUnavailableException e) {
        } catch (InterruptedException e) {
        return transcribedText;

    public static void main(String[] args) {
        SpeechToTextUsingWatson speechToTextUsingWatson = new SpeechToTextUsingWatson();
        String recognizedText = speechToTextUsingWatson.recognizeTextFromMicrophone();
        System.out.println("Recognized Text = " + recognizedText);
  • Step-4 Compile and Run Java program:
$ source sourceme
$ javac
$ java SpeechToTextUsingWatson



John Boyer (IBM)IBM Connections 6.0 officially announced!

Read this blog post from Rene Schimmer, for a quick overview of what you can expect in this release.

Shelley Powers (Burningbird)They… are watching you

Today, Trump is likely to sign the latest in Congressional Review Act bills, this one to overturn a new FCC rule that would force ISPs to get permission from users to collect and share personal information.

The Senate was the first to toss the privacy rule, followed by the House. The vote was along party lines. Kudos to the Democrats for looking out for us, but the party-line Republican vote was a little surprising considering the number of libertarians among the Republicans. Libertarians have a real thing for privacy. I expect Rand Paul will have some explaining to do the next time he runs for re-election.

Why bad?

So, why is this vote bad?

ISPs (such as Charter, ATT, and Comcast) can track your every move, whether you’re watching a movie on Roku, surfing the web using Chrome, or accessing your medical information using an app on your Android phone. They can sell the data they collect to third parties in order to target you with “appropriate ads”. Actually, they can sell the information to any entity for any  purpose. The ISPs claim this is a service, but not even the most gullible believes we, the people, will benefit from this activity.

What can we do?

In Twitter, Joy Reid recommended we clear our browsing history, but that will have absolutely no impact.

<script async="async" charset="utf-8" src=""></script>

If you want privacy, you’ll need to become familiar with VPNs.

I’m typing this using the Opera browser. I switched to Opera because it has a built-in VPN (Virtual Private Network) that obscures my web activity from the ISPs. It’s one of the many suggestions we’ve read the last few days.

My favorite how-to guide on securing our data is How to set up a VPN in 10 minutes for free (and why you urgently need one) by Free Code Camp’s Quincy Larson. If you follow the recommendation to use a VPN, just make sure that you pick one that’s aboveboard: they can also collect data on you.

Of course, using Opera won’t help with the app on Android or what I’m watching using my Roku, but it’s a start. I could install a VPN on my router, but then I won’t be able to watch Netflix, as this service blocks VPN use. Netflix’s actions are not for nefarious purposes: many of its video offerings are geographically restricted and VPNs hide your country of origin.

To help you, I’m also enabling HTTPS on my web server, another recommendation from the EFF. This won’t be as simple a move, but I need to stop being lazy and just get it done.

Poison the Well

My approach to Trump and the Congressional Republicans selling out our privacy is simple: I’m not going to be paranoid, but I’m not going to make it easier for my ISP to profit from my actions. If my ISP wants to note that I play the fireplace video from Netflix every time it’s cloudy and cold, I’m OK with this. But it doesn’t need to see what web sites I’m visiting on my computer.

In other words, I’m blasting a hole in the picture my ISP is building of me. It will never have a complete picture of who I am. It will have some data, but not all data. And not having a complete set of data makes the data it has less valuable.




Photo courtesy of Metro Centric CC BY 2.0

The post They… are watching you appeared first on Burningbird.

John Boyer (IBM)IBM Interconnect 2017 round up


Keynote: Welcome to InterConnect 2017 - On stage at InterConnect 2017, Chris Moody, VP and GM, Data & Enterprise Solutions, Twitter, kicks off the session. 

As Twitter turns 11, Chris reflects on the transformative power of cloud technologies. ‘It has never been more possible than it is today, to change kids and technology’, he begins. ‘Anyone can change the world.’ 

‘Like raising a child, technology moves fast. When Twitter started out, it was a side project to keep friends connected, and it’s still evolving today. POTUS is using the platform daily, and there are other evolutions too. It’s evolving into a powerful business platform’. [Read more...]  


Harriet Green on theCUBE, live from InterConnect 2017 - On Monday, March 20, Harriet Green, General Manager, IBM Watson Internet of Things, Cognitive Engagement and Education, kicked off the IoT: Genius of Things keynote at InterConnect 2017. Harriet talked passionately about how the Internet of Things is changing the way we live, work and interact today. How when you combine Watson with IoT data, the platform, the security and the growing ecosystem of clients, technology providers, and industry experts, extraordinary things become possible. And how IoT is the next great wave of digitization and is truly a powerful transformational force, emanating from the offices of C-Level executives across all industries. [Read more...] 


InterConnect: The intelligent workplace of the future - IBM’s Brian Dalgetty, Offering Executive for Watson IoT welcomed Brett Lancaster, Ricoh’s Global Sales Director for Managed Information Services and Harman International’s Kevin Hague, VP Technology Strategy to join him on the stage. The panel came together to discuss the intelligent workplace of the future, how intelligent agents can help us do our work better, and what the workplace of the future will be like to work in. [Read more... ]  


InterConnect: Mythbusters – how Watson works - Have you ever wondered how Watson, IBM’s AI works? Attendees at IBM’s InterConnect 2017 were able to find out from Rob High Jr. IBM Fellow, VP, CTO Watson, IBM Academy of Technology. Rob kicked off by defining the characteristics of what IBM sees as AI before busting a myth or four. 

1. Cognitive systems understand human expressions – textual, verbal, visual  

2. By reasoning about the actual intention or problem being addressed  

3. They learn how to recognize patterns of meaning through examples and feedback  

4. And they interact with humans on their own terms, and in a way that inspires people.  

5. And they do it at scale!  

[Read more... ] 


Girls Who Code: inspiring a generation of change-makers - Reshma Saujani CEO of Girls Who Code, joined Ginni Rometty on stage at IBM Interconnect to discuss how IBM has supported the company growth and has helped young girls break barriers with the technology industry. As a politician, Reshma visited hundreds of schools and the lack of females in the IT classes made her question where women sit in the tech industry, after researching she found out that today, less than 18% of women do IT majors. [Read more...]  


Blockchain technology: the next generation of the internet - On Tuesday afternoon, Don Tapscott, author, consultant and entrepreneur, took us through the transformative power of blockchain technology, and its huge potential for change. Here’s what he had to say: "I wrote a book in 1981 arguing that everyone was going to use this vast network of networks, and that computers would become tools for the communication of information. It didn’t sell that well – it was a study in bad timing – but we were right. I’m here to tell you that computers are about to become something else again. We are getting a second era of the internet – the Internet of Value. The fourth industrial revolution is infusing technology through every organization; through every business process. Through our economy, through our business world, even through our bodies. All of these technologies that will participate in the transformation of businesses need a commercial and transactional platform. And that is crypto-currencies – blockchain." [Read more...]  


IBM, Watson, and the Royal Bank of Canada - Ginni introduced Bruce Ross, Group Head of Operations at the Royal Bank of Canada mentioning that both he and the organisation are pioneers. Bruce is the head of both technology and operations at the no. 1 bank in Canada. [Read more...]  


Dehyping Robotics and Artificial Intelligence (AI) - Dr. Sabine Hauert, President and Co-Founder of and Assistant Professor in Robotics at the University of Bristol, provided the InterConnect 2017 audience with an insightful (and interactive) discussion about robotics – highlighting the need for balanced media and communications around robotics and artificial intelligence. 

As a member of the Royal Society’s Working Group on Machine Learning, Dr. Hauert is an expert in science communication and a frequent speaker on the future of robotics. In her talk, Hauert explains how robots can be game changers, but not in the way we think. [Read more...] 


Watson standing strong to beat cyber bullying - Five-time Emmy winner and Grammy nominee, Wayne Brady has a strong message for online bullies, “I don’t want you as my fan.” And to millions of fellow cyberbullying victims – many of them adolescents – he says, “be yourself, no matter what anyone else says, be strong.” Brady gets bullied too [Read more...] 


How cognitive solutions are transforming HR: InterConnect 2017 - With their capacity to absorb vast quantities of structured and unstructured data, cognitive solutions are creating unforeseen possibilities across every enterprise domain, including Human Resources. On Monday afternoon at InterConnect 2017, Duke Daehling talked us through the way cognitive solutions are transforming HR – from guiding staff on their next career move, to performance management, career development and learning. [Read more...] 


AT&T and IBM: Analytics with Watson - Today at IBM InterConnect we learned that IBM are partnering with AT&T to support their enterprise customers IoT with data insights. This data is huge for business customers, but is only valuable with real-time meaningful insights. AT&T will be using a variety of IBM products including: 

Watson IoT Platform: to build the next generation of connected industrial IoT devices and products that continuously learn from the physical world.  

IBM Watson Data Platform: which is the fastest data ingestion engine combined with cognitive powered decision making. This helps uncover business insights and value from data. That data could be from the weather, the road, social media, or a customers sales data.  

IBM Machine Learning Service: used by AT&T to give their customers access to machine learning.  

[Read more...] 


US Speedskating at InterConnect: Going for gold with smarter training - Elite sports team US Speedskating has teamed up with IBM to get smarter about how athletes train and prepare for competitions – both on and off the ice. Together with M&S Consulting, we’ve created a voice-enabled iPad app that uses real-time performance metrics and individual insights to review each athlete’s workload and shape smart training plans to boost each skater’s chance of success. You can see the solution in action at InterConnect in Las Vegas. [Read more....] 


Keynote: David Kenny on cloud technologies - David Kenny, senior vice president IBM Watson and Cloud Platform is spearheading the Watson technology platform development, as well as optimizing IBM’s public cloud for data and cognitive workloads. David joins speakers from IBM, Fitly, Indiegogo and American Airlines as he explores how businesses are increasingly coming to depend on cloud – to explore artificial intelligence, security and the IoT. [Read more...] 


InterConnect: Arrow Electronics and Indiegogo - Slava Rubin, Founder and Chief Business Officer, Indiegogo talks start-ups and the democratising power of the Internet at InterConnect 2017. Indiegogo is a launchpad for entrepreneurial ideas and platform where start-ups and new businesses can raise funds, start a campaign, organize marketing and promotion and use analytics to see how their campaigns are performing. Slava explains that crowdfunding of this sort has seen an explosion of activity – from products, security and activity trackers. Now, he says, Indiegogo is moving beyond funding. The company operates more as a springboard for entrepreneurs – who come initially to Indiegogo for validation and engagement funding, before they can actually make something. [Read more...] 


InterConnect keynote: Harriet Green - When hype gave way to reality... When I first started running the IoT business for IBM, I spent a lot of time promoting the technology itself; persuading people of the potential of IoT with impressive statistics: 20 billion connected devices by 2020; $11 trillion in economic value by 2025. But I don’t do any of that anymore, because the Internet of Things is no longer a story of future growth. It’s a story about the here and now, and the outcomes speak for themselves. In the last eight months, IBM has seen its number of IoT clients increase from 4,000 to 6,000, and each has a compelling story to tell. Stories about overcoming business challenges, digital transformation, and, perhaps most importantly, stories about outcomes. [Read more....]  


InterConnect keynote: Ginni Rometty, Watson cloud - How cloud is changing business and the world. IBM’s Chairman, President and CEO took to the InterConnect Stage to discuss how the Cloud is changing both business and society. She states that IBM’s cloud is the platform for the next era of business as it can help companies do things never done before. It enables you to make architectural decisions and determines how a company runs. She brings to light why the IBM platform is for the new era of business in three points. [Read more...] 



ProgrammableWebWill Brexit Drain the UK of Its Desperately Needed Developers?

Nine months after the United Kingdom voted to leave the European Union, mere days after the economic and political union’s 60th birthday, British Prime Minister Theresa May has signed the letter to trigger Article 50, more commonly known as Brexit. Now we enter two years of utter uncertainty before some sort of break-up — though no one knows to what degree — officially happens between the UK and the EU.

John Boyer (IBM)Orthopedic patients recover from surgery quickly thanks to new advancements

One of the most annoying parts of any surgery is the road to recovery after it’s done and over with. Rehabilitation can be a time-consuming, painful and grueling process even with the best outlook and the priciest physical therapy. However, all of those problems are being quickly erased thanks to new technologies and techniques employed by orthopedic surgeons.


These new technologies also provide another means of relief to future patients: they can be done with more precision, more efficiency and greater speed. Once upon a time, a good surgeon might only be able to fit two or three surgeries a day into a busy schedule, but new robots used to map a patient’s anatomy allow surgeons to eliminate a lot of the work beforehand. This allows surgeons to schedule more patients each day, and that means that people don’t have to wait as long after the surgery is scheduled.


Patients who don’t require surgery can expect a better outlook as well.


Remember the days when kids were waltzing around with a rock hard cast and a hundred signatures and notes from friends? The need for one rarely exists anymore. Now, removable casts and braces perform the same function, and that’s not all. Sometimes surgery might be preferable to the annoyance forced upon patients by months in a cast. In this case, patients might find themselves on the receiving end of cutting edge stem cell treatments or similar procedures that involve transferring tissue from one area of the body to another. This might be more invasive, but it drastically reduces recovery times--and patients love that.


New physical therapy techniques help patients recover even faster. For example, Hartford Hospital offers a zero-gravity treadmill that decreases recovery time by keeping patients more mobile for longer periods of time. In addition, a new motion analysis lab ensures that the therapy does not cause any potentially permanent issues down the road, increasing the success rate of both surgery and recovery.


Part of the technique requires surgeons and doctors to better understand what caused a patient to fall ill or become injured in the first place, greatly reducing the chance of recurrence. Hartford Hospital provides the use of the new motion analysis lab to area high schools in order to study how academic athletes move in order to discover how they become prone to dangerous injuries like ACL tear, or even more minor conditions like tendonitis.


New techniques allow surgeons to wiggle around muscles and tissues instead of cutting through them, meaning that the surgeries themselves are no longer as dangerous or intrusive as they once were. Not only that, but patients experience less short-term and long-term pain, and fewer mobility issues during and after recovery. New biological techniques provide better outlooks for younger patients by extending the shelf-life of hip and knee replacements, a fact which cannot be stressed enough.


These new technologies and techniques are still improving year by year, and as they do the costs are being cut. They don’t only help athletes. They also help those involved in accidents or those subject to aging find better outcomes to common accidents or preventable conditions. This is better for everyone in the long-term, and it’s only getting better in the near future.


John Boyer (IBM)Crazy new technologies will give people with disabilities a new life


A number of people with debilitating diseases are rendered nearly immobile and have trouble going about their daily routine without the aid of a wheelchair or crutches, and this can prove catastrophic for self-esteem and self-image, especially for kids. New technology is changing that outlook very fast. The same goes for those who suffer from autism spectrum disorder or are born deaf.


Wearable exoskeletons have been in development for years in Silicon Valley, California and abroad, and they’re getting better and better.


One company based in Quebec, Canada hopes to deliver this life-changing tech to residents of Canadian provinces as soon as January, and they’re on track to make good on their lofty goal. The mechanical exoskeleton specifically targets those who suffer from Parkinson’s disease, multiple sclerosis and neuromuscular illnesses that prevent patients from achieving a full range of motion needed for normal day-to-day activities. Even those who can live completely normal lives outside of needing crutches stand to benefit.


The biggest hurdle right now is cost. Because the technology is so fresh, it runs at about 50,000 Canadian dollars and hasn’t been fully accepted by insurance providers.


Here’s more food for thought: this same technology has military and industrial applications as well. Similar exoskeleton technology allows humans to lift many times their own weight. In the military, this would allow troops to cover much larger distances on foot while carrying more than they can conceive of doing right now. In factories, individuals could hope to accomplish tasks that only robots can perform right now, allowing companies to eliminate some less “dexterous” machines altogether.


Personal applications might exist as well. Chopping wood or performing any other task that requires enormous strength and stamina might suddenly get a lot simpler. If the technology becomes widely used, then the price will be much reduced and those using it to eliminate the restrictions of a disability will feel less pressure and stigma.


The ridiculously fast expansion of machine learning and artificial intelligence might soon provide alternatives to the traditional use of closed captions that allow deaf TV viewers to know more about what is going on while they watch. For years, the captions were painstakingly transcribed by hand, and could prove painfully inaccurate when rendered on the TV screen.


Now, speech-to-text technology uses machine learning to do the exact same thing automatically. Yet another job nixed by automation. The technology is not yet perfect, but earlier this week new algorithms were implemented by YouTube that allow it to provide closed captions that show applause, music, and a number of other sounds. Without this technology, deaf and hard-of-hearing folk would find it impossible to enjoy the immense selection of YouTube videos now available.


The same technology has other, creepier applications as well. For instance, Facebook used similar technology when it rolled out a feature that automatically provided textual descriptions of images uploaded to the website last year. That same machine learning is used by Google and other search engine giants to allow users to upload photos to receive similar results as they would from simply entering a text description in the search bar.


Not only do these rapidly expanding new technologies make you wonder what is just around the corner, but it makes you consider whether or not disability and disease might very soon be a thing of fiction. Will these one day become relics of a distant past, only to be read about in history textbooks? Maybe, but for now we’re just glad the new technology is helping people.


John Boyer (IBM)IBM TRIRIGA UK User Group Community and Upcoming Spring 2017 Meeting!

The next TRIRIGA UK & Ireland User Group meeting is coming up!


Tuesday 9th May 2017...put the date in your diaries with an agenda to follow!


Once again it will be at IBM Southbank (although the User Group Committee is hoping to spread their wings for the autumn meeting)


In a big step forward, we will be joining up with our colleagues at the Maximo User Group for the keynote address.
Bringing the two groups together will allow to share a high-profile keynote speaker, and then break out into own sessions for both TRIRIGA and Maximo.
Of course, you then have a great opportunity to mingle with the Maximo delegates over coffee and lunch.


So, are you a TRIRIGA user or partner in the UK and not a member of the IBM TRIRIGA UK User Group Community yet?


It's easy to join this great community here:


Some of the benefits to joining the IBM TRIRIGA UK User Group:

    Access to the latest product information from IBM
    Face-to-face user group meetings
    Networking with like-minded professionals


The User Group committee will be trying something fresh ,namely one break out stream will be a Q&A around WebSphere.
Designed more for technical support staff, this will be a chance to meet an expert and raise your questions in an informal environment.


There will be a newsletter send out soon, so why not register now at the above link and hear all about it with further details in the newsletter.

We hope you will join this great community and hope to see you at the meeting in Southbank on the 9th May!



John Boyer (IBM)How to create a TRIRIGA Classification?



My name is Edgar Mengelberg and I have been working with the Maximo and TPAE product suite in various Support roles for over 16 years.

Recently I made the jump over to the WW TRIRIGA L2 support team and currently going through a steep learning curve, that's for sure!

As TRIRIGA is also new territory for a lot of you out there and I have already received various queries around Classifications , let's have a brief look how you properly create a new TRIRIGA Classification.


The correct sequence of creating a new classification is as follows:


1. Create a new BO within the Classification module, and add other fields, if needed.
2. Set up Publish Name (BO Mapping).
Tip: For classifications, you use the Name field as the lone field in the Publish Name to prevent entering duplicate classification entries. The Name field is in the Record Information section when you click Find in the BO Mapping tool.
3. Save the BO.
4. Create an association between new BO and itself by using Is Parent Of. This action creates an Include.
Note: Create this association from within the Data Modeler, not within the Association Manager. Also, when creating Includes, ensure sure that the Parent BO is in the Revision in Progress state before you create the association. Otherwise, the Include is not created properly.
5. Publish the BO.
6. Revise the Classification BO.
7. Create an association between the classification BO and the new BO that was created in Step 1 using Is Parent Of. This action creates an Include.
8. Publish the Classification BO.
9. Copy the triClassification Form and assign the new Form to the BO that was created in Step 1. Add at least the Name field to the form.
10. Change the Label of the new form to match the label of the new BO.
11. In State Family, click Find to import the other states and transitions.
12. In the Includes/Forms tab, add the newly created form to the Includes list. (Add it to itself.)
13. Publish the form.
14. Revise the triClassification form.
15. In the Includes/Forms tab, add the newly created form to the Includes list.
16. Publish the triClassification form.

If you find this How To blog useful , please click the "Like" button to show your appreciation and follow me here --> Follow me and my blogs on DevWorks here!


John Boyer (IBM)LPFMS: Why does NOT LPFMS prevent the mass fishing mails from attacking?

(Q). We got lots of the fishing mails yesterday. Why does NOT LPFMS prevent the mass fishing mails from attacking?

(A). Within your 'Block Spam' rule the 'Spam Bayesian Classifier' is missing. Please readd the suggested Spam detection modules: Spam Fuzzy Fingerprint, Spam Heuristics and the 'X-Force Optimized Spam detection' modul.

John Boyer (IBM)ISRDDN的几个应用小场景


背景知识: TSO,ISPF



  A. ISRDDN是什么

         B. ISRDDN的六个应用小场景

                C. 使用ISRDDN

                     D. 使用QEURYENQ





ISRDDN是z/OS上提供的一个诊断工具。在ISPF命令行中敲入TSO ISRDDN或者DDLIST就可以进入该工具。

下图通过TSO ISRDDN命令进入ISRDDN诊断工具界面。










ISRDDN还可以利用ISPF BROWSE命令查看TSO用户地址空间的存储,也搜集系统的信息。下图是查看BROWSE IHVSTAD模块的输出结果。


B. ISRDDN的六个应用小场景


1)如果想查看模块是否加载到了JPA或者LPA,可以用SELECT命令,SELECT命令可以简写为S,下图给的例子是查看模块IRXANCHR是否被加载到JPA或者LPA,在Command命令行中敲入S IRXANCHR命令:






如果模块没被加载,则会提示Module Not Loaded。可以用LOAD命令加载模块。


2)在有些时候,混合的记录格式分配会导致I/O错误或者产生ABEND,ISRDDN提供一个命令CHECK,该命令可以检测是否有混合的记录格式,混合的固定记录长度或者混合的数据集组织。如下调用命令CH ON:




如果想关掉该自动检测,可以敲命令CH OFF。






     可以看出有五个JOB正在占用,在Job Name一列中列出,需要注意的是,这里只是列出了当前系统的所有job,sysplex中其它系统的job未在这里列出。

    除了用上述的命令查看,也可以直接在ISRDDN ENQ的页面上,在‘Minor name prefix’行列出数据集名字也可以。



    利用MEMBER命令可以查某个member存放在哪个数据集中,比如,想查找所有以AOF开头的member,就需要用命令‘MEMBER AOF*’,如下所示:
























John Boyer (IBM)z/OS上LDAP使用SSL/TLS通信的方法






SSL(Secure Sockets Layer)是一种对互联网等通信网络提供安全通信的一种协议。SSL协议是一种以可靠传输为目的的分层协议,保证了基于公钥证书的服务器和客户机身份验证的数据隐私和完整性。一旦在客户机和服务器之间建立了SSL连接,客户机和服务器之间的数据通信将由SSL协议补充加密和完整性的相关内容。目前SSL支持SSL V2.0,V3.0以及TLS(Transport Layer Security) V1.0,V1.1,V1.2 。 TLS V1.2是目前SSL支持的最新的安全套接字协议。


LDAP server可以通过SSL和TLS来保护LDAP访问,支持以下两种安全通信:

(1) SSL/TLS安全连接,这种连接需要客户机和服务器之间采用握手的方式进行通信,从握手生效开始,只有这种安全通信可以使用。

(2) 双向连接,支持安全通信和不安全通信,客户机预计从不安全通信模式开始通信,在通信的过程中,客户机可能通过在握手之后通过发送StartTLS命令来改变为安全通信。客户机也可能通过发送StopTLS命令来恢复为不安全的通信。客户机也可以再次发送StartTLS命令来使用安全通信。这两种方式都需要通过LDAP server来配置。


SSL和TLS都是使用PKI(public-key infrastructure)算法在客户机和服务器间建立并保持加密通信。在z/OS中,是通过在LDAP中进行一些配置来提供SSL/TLS服务的。

为了使用LDAP的客户机和服务器可以通过SSL/TLS保护的TCP/IP协议进行通信,LDAP server必须为客户机提供一个证书,证书也可以由客户机提供给服务器。双方必须认证这个证书合法,之后便可以在客户机和服务器间使用SSL/TLS通信。


Key database,RACF key ring,PKCS #11都可以用来认证证书,这些公钥实际上就是证书本身,因此验证一个证书需要使用不同的签名,便以这种方式建立了证书链,一个证书由另一个证书来验证。一个证书和他的公钥可以被定义为根证书,根证书是自签名的,意味着证书中的公钥要来验证这个这书,使用根证书意味着用户信任这个根证书。



       在SSL/TLS协议使用之前,需要创建一个证书,这个证书可以通过key database,RACF key ring,PKCS #11来创建。

       (1) key database是使用文件系统存储的证书,可以使用gskkyman工具来创建,创建之后要保证LDAP可以使用这个这书:

!:/Z2/ldapdata/ldaptest/data $ gskkyman            

       Database Menu

   1 - Create new database

   2 - Open database

   3 - Change database password

   4 - Change database record length

   5 - Delete database

   6 - Create key parameter file

   7 - Display certificate file (Binary or Base64 ASN.1 DER)

  11 - Create new token

  12 - Delete token

  13 - Manage token

  14 - Manage token from list of tokens

   0 - Exit program

       (2) RACF key ring需要使用RACF证书认证命令RACDCERT来创建,创建一个证书之后,将它加到一个key ring里,同一个key ring里的证书可以相互通信。创建一个证书时可以使用如下命令:


EL('Certificate-Label') SIZE(2048) RSA NOTAFTER(DATE(2020/08/12))   


RACDCERT CONNECT(LABEL(‘Certificate-Label’) RING(Ring-Name)) ID(LDAPSRV)          




用户在创建key ring之后,需要通过RACF为用户授权,获得权限的用户才能使用这个证书,可以使用下面的命令进行授权:







       (3) PKCS #11 的token是用ICSF存储和保护的,gskkyman工具和RACDCERT命令都可以用来创建PKCS #11 token,ICSF是使用CRYPTOZ SAF来决定是否允许使用PKCS #11 token,要连接LDAP 的用户需要得到如下相应的授权才能使用PKCS #11 token(其中NAME是指token的名字):










创建完证书之后,可以在LDAP server中进行配置,在LDAP配置文件的DSCONFIG中配置安全通信端口:

listen ldaps://:636


sslAuth serverClientAuth
sslCertificate <Certificate-Label>
sslKeyRingFile <the name of the key database, the RACF key ring, or the PKCS #11 token used by the LDAP server>
sslKeyRingFilePW <just for key database>
sslKeyRingPWStashFile <just for key database>






    启动LDAP server之后使用ldapsearch工具,并以SSL/TLS通信方式进行验证:

$ ldapsearch -h host -p port -Z -K ring-name -N client-certificate -b "o=ibm,c=us" objectclass=*







Cryptographic Services System Secure Sockets Layer Programming

z/OS Security Server RACF Command Language Reference

IBM Tivoli Directory Server Administration and Use for z/OS

z/OS Cryptographic Services ICSF Writing PKCS #11 Applications.






John Boyer (IBM)Table in the mail is invisible

(Q). Same Internet message was received by two Notes users. A Notes user can see the table in the mail, but another Notes user cannot see Table in the mail.

(A). By checking the Page source, we can see these two mails are different mail (Contents) and they received by the different time. The problem mail is from up server such as a mail relay host or customer SMTP server. We recommend to engage the administrator of Mail Sender for the further investigation.

John Boyer (IBM)Accelerating locomotion on Linux

while true; do sl; done


(this is a test post, please ignore)

John Boyer (IBM)【3月30日,本周四晚8点】区块链微讲堂系列 第五讲:HyperLedger 中的共享账本

Ledger -不可篡改伪造的“共享帐本” 

HyperLedger 中的账本(Ledger),是一种“分布式账本”,也可以想象成一个带着时间戳的、不可伪造的全网共享账本。区块链的所有参与者,都可以持有这个账本的最新数据。这个不可篡改的“共享账本”机制正是区块链的主要价值所在。3 月 30 日,本周四晚上 8 点是区块链和 HyperLedger 微讲堂系列的第五讲,我们请到 IBM 工程师做客微讲堂,来为大家分享揭秘这个“共享账本”的原理和机制。



HyperLedger 中的共享账本


3 月 30 日晚 8 点


本次讲座主要介绍 Fabric v1.0 中共享账本的实现原理与机制,同时也会指出 v1.0 相比 v0. 6增加的新功能和使用方法的变化。


贾锡学,来自 IBM 中国系统实验室,Hyperledger 开源社区爱好者,Bluemix Blockchain service 技术支持,曾参与国内金融保险行业 Blockchain 技术支持及 PoC









-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-<wbr style="line-height: 1.5; font-size: 20px;"></wbr>-







 <wbr></wbr>><wbr></wbr>> 更多 de<wbr></wbr>velo<wbr></wbr>perW<wbr></wbr>orks<wbr></wbr> 上的 区块链技<wbr></wbr>术文章 


【区块链和 HyperLedger 微讲堂】系列是 ”IBM 开源技术微讲堂“ 2017 年第一期,共分为 8 次课程。

>> 点击了解【区块链和 HyperLedger 微讲堂系列】 课程详情及时间安排


><wbr></wbr>><wbr></wbr> 查看<wbr></wbr>往<wbr></wbr>期 【<wbr></wbr>I<wbr></wbr>BM <wbr></wbr>开<wbr></wbr>源技术<wbr></wbr>微<wbr></wbr>讲堂】<wbr></wbr>课<wbr></wbr>程视频<wbr></wbr>回<wbr></wbr>放,下<wbr></wbr>载<wbr></wbr>讲<wbr></wbr>义

Amazon Web ServicesNew – Tag EC2 Instances & EBS Volumes on Creation

Way back in 2010, we launched Resource Tagging for EC2 instances and other EC2 resources. Since that launch, we have raised the allowable number of tags per resource from 10 to 50, and we have made tags more useful with the introduction of resource groups and a tag editor. Our customers use tags to track ownership, drive their cost accounting processes, implement compliance protocols, and to control access to resources via IAM policies.

The AWS tagging model provides separate functions for resource creation and resource tagging. While this is flexible and has worked well for many of our users, it does result in a small time window where the resources exist in an untagged state. Using two separate functions means that resource creation could succeed only for tagging to fail, again leaving resources in an untagged state.

Today we are making tagging more flexible and more useful, with four new features:

Tag on Creation – You can now specify tags for EC2 instances and EBS volumes as part of the API call that creates the resources.

Enforced Tag Usage – You can now write IAM policies that mandate the use of specific tags on EC2 instances or EBS volumes.

Resource-Level Permissions – By popular request, the CreateTags and DeleteTags functions now support IAM’s resource-level permissions.

Enforced Volume Encryption – You can now write IAM policies that mandate the use of encryption for newly created EBS volumes.

Tag on Creation
You now have the ability to specify tags for EC2 instances and EBS volumes as part of the API call that creates the resources (if the call creates both instances and volumes, you can specify distinct tags for the instance and for each volume). The resource creation and the tagging are performed atomically; both must succeed in order for the operation (RunInstances, CreateVolume, and other functions that create resources) to succeed. You no longer need to build tagging scripts that run after instances or volumes have been created.

Here’s how you specify tags when you launch an EC2 instance (the CostCenter and SaveSnapshotFlag tags are also set on any EBS volumes created when the instance is launched):

To learn more, read Using Tags.

Resource-Level Permissions
CreateTags and DeleteTags now support IAM’s resource-level permissions, as requested by many customers. This gives you additional control over the tag keys and values on existing resources.

Also, RunInstances and CreateVolume now support additional resource-level permissions. This allows you to exercise control over the users and groups that can tag resources on creation.

To learn more, see Example Policies for Working with the AWS CLI or an AWS SDK.

Enforced Tag Usage
You can now write IAM policies that enforce the use of specific tags. For example, you could write a policy that blocks the deletion of tags named Owner or Account. Or, you could write a “Deny” policy that disallows the creation of new tags for specific existing resources. You could also use an IAM policy to enforce the use of Department and CostCenter tags to help you achieve more accurate cost allocation reporting. In order to implement stronger compliance and security policies, you could also restrict access to DeleteTags if the resource is not tagged with the user’s name. The ability to enforce tag usage gives you precise control over access to resources, ownership, and cost allocation.

Here’s a statement that requires the use of costcenter and stack tags (with values of “115” and “prod,” respectively) for all newly created volumes:

"Statement": [
      "Sid": "AllowCreateTaggedVolumes",
      "Effect": "Allow",
      "Action": "ec2:CreateVolume",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/costcenter": "115",
          "aws:RequestTag/stack": "prod"
         "ForAllValues:StringEquals": {
             "aws:TagKeys": ["costcenter","stack"]
       "Effect": "Allow",
       "Action": [
       "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*",
       "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "CreateVolume"

Enforced Volume Encryption
Using the additional IAM resource-level permissions now supported by RunInstances and CreateVolume, you can now write IAM policies that mandate the use of encryption for any EBS boot or data volumes created. You can use this to comply with regulatory requirements, enforce enterprise security policies, and to protect your data in compliance with applicable auditing requirements.

Here’s a sample statement that you can incorporate into an IAM policy for RunInstances and CreateVolume to enforce EBS volume encryption:

"Statement": [
            "Effect": "Deny",
            "Action": [
            "Resource": [
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "false"

To learn more and to see some sample policies, take a look at Example Policies for Working with the AWS CLI or an AWS SDK and IAM Policies for Amazon EC2.

Available Now
As you can see, the combination of tagging and the new resource-level permissions on the resource creation and tag manipulation functions gives you the ability to track and control access to your EC2 resources.

This new feature is available now in all regions except AWS GovCloud (US) and China (Beijing). You can start using it today from the AWS Management Console, AWS Command Line Interface (CLI), AWS Tools for Windows PowerShell, or the AWS APIs.

We are planning to add support for additional EC2 resource types over time; stay tuned for more information!


John Boyer (IBM)instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)

要想从 nova-api-metadata 获得 metadata,需要指定 instance 的 id。但 instance 刚启动时无法知道自己的 id,所以 http 请求中不会有 instance id 信息,id 是由 neutron-metadata-agent 添加进去的。针对 l3-agent 和 dhcp-agent 这两种情况在实现细节上有所不同,下面分别讨论。



下面是 l3-agent 参与情况下 metadata http 请求的处理流程图。


大的流程为:instance -> neutron-ns-metadata-proxy -> neutron-metadata-agent -> nova-api-metadata,处理细节说明如下:

① neutron-ns-metadata-proxy 接收到请求,在转发给 neutron-metadata-agent 之前会将 instance ip 和 router id 添加到 http 请求的 head 中,这两个信息对于 l3-agent 来说很容易获得。

② neutron-metadata-agent 接收到请求后,会查询 instance 的 id,具体做法是:

1) 通过 router id 找到 router 连接的所有 subnet,然后筛选出 instance ip 所在的 subnet。

2)在 subnet 中找到 instance ip 对应的 port。

3)通过 port 找到对应的 instance 及其 id。

③ neutron-metadata-agent 将 instance id 添加到 http 请求的 head 中,然后转发给 nova-api-metadata,这样 nova-api-metadata 就能返回指定 instance 的 metadata 了。

我们再来看 dhcp-agent 的情况。





① neutron-ns-metadata-proxy 在转发请求之前会将 instance ip 和 network id 添加到 http 请求的 head 中,这两个信息对于 dhcp-agent 来说很容易获得。

② neutron-metadata-agent 接收到请求后,会查询 instance 的 id,具体做法是:

1) 通过 network id 找到 network 所有的 subnet,然后筛选出 instance ip 所在的 subnet。

2)在 subnet 中找到 instance ip 对应的 port。

3)通过 port 找到对应的 instance 及其 id。

③ neutron-metadata-agent 将 instance id 添加到 http 请求的 head 中,然后转发给 nova-api-metadata,这样 nova-api-metadata 就能返回指定 instance 的 metadata 了。

这样,不管 instance 将请求发给 l3-agent 还是 dhcp-agent,nova-api-metadata 最终都能获知 instance 的 id,进而返回正确的 metadata。

从获取 metadata 的流程上看,有一步是至关重要的:instance 必须首先能够正确获取 DHCP IP,否则请求发送不到。但不是所有环境都会启用 dhcp,更极端的,有些环境可能连 nova-api-metadata 服务都不会启用。那么 instance 还能获得 metadata 吗?

这就是下一节我们要讨论的主题:config drive

John Boyer (IBM)Influencer outreach...for wannabe influencers

In our previous piece on interacting with your niche community and collaboration, one of the reasons to work your frenemies and the coopetition was to increase visibility. Being seen is such a large component of becoming a top tier influencer that I wanted to delve into how one can go about pushing that visibility further, since so many brands in our network and others will claim that audience visibility is the top selection factor when evaluating influencers.

First, Get Noticed

What are the various ways to get noticed? If you really break it down, like Brendan McCaughey does here, then the ways to stick out are to:

  1. Work harder in comparison to one’s peers — this makes sense right? All things being equal, the person that is simply trying harder and doing more is going to be at an advantage of being seen than her peer. It is a sheer numbers game, a matter of probability. Being in a position to be noticed more frequently will result, statistically, in being noticed more.
  2. Be different in some way — I liken this a bit to what we suggest on the importance of focus and authenticity. Using one’s own voice and digging deep on a specific topic sets one apart from the homogeneity that is generalized product reviews.
  3. Make eye contact — or maybe in the case of digital influence we can associate the concept to the ability to send direct messages, pick up the phone, or more literally, look into the camera on Skype. Our closest analogies really exist to try to provide as close a physical connection as possible. They aren’t quite the same as looking a person in the eye when talking, so this is close as we can get, to take the additional step of contact.
  4. Keep learning — this advice fits neatly with what we’ve previously discussed on resilience on the 10,000 hours theory + Pareto principle, moving from not-half-bad to expert.

Once you are capable of being noticed, you need to apply pressure and push to get gain that attention.

How Can I Get Noticed?

Sometimes the best way to grow an audience is to get noticed off the platform. What do I mean by off-platform attention that drives on-platform audience growth? Paul Kemp shares some of the successes he had a few years ago as an example. Note the traffic impact he had by leveraging where he was already seeing a little attention and turning it into a lot of attention. That traffic and extra attention cycled back around to grow his platform audiences to a significant degree.


Ok. Ok. Let’s start by looking at how to guest post anywhere which comes to us from our friend John Rampton. I recommend that you read his post in detail, but there are a few very straightforward takeaways. As an order of operations:

  1. Make sure you already have a blog with high quality content. *cough* That means quality over quantity.
  2. Find places you can guest blog on. John breaks out a couple different ways to go about this using a few tools like Sitecomber and some basic Google queries. Keep in mind that not all of these are going to be relevant; in fact, I would say that most probably aren’t, however some of the larger generalized publications might still be a fit.
  3. Dig further on specific personality and niche queries with “guest post” keyword modifiers to see where your industry authoritative influencers are hanging out. Remember, co-citation is a big deal; if you can appear alongside the experts then before you know it you will start to be perceived as an expert.
  4. Use a tool like Buzzstream and LinkedIn to try and identify whom the editors and guest blog account holders are.
  5. Research like an influencer on a mission — look into comments, aged blog posts that aren’t correct, etc. You need ideas on what you want to provide.
  6. Pitch. One of the most popular posts on our blog is how to pitch, and it doesn’t really even deal with content pitches, but all the advice is still applicable on developing a concise value providing pitch.

A variant on the above exercise is getting interviews via sheer hustle explained by Jeff Bullas on his tips to becoming an industry influencer. The variant essentially is basically “industry” + “interview” search queries and then following through on the above steps since you’ll still need to provide a compelling pitch on why you should be interviewed. The more work that you can do for the editor/author, the more likely it is that you’ll get an accepted pitch.

Be Everywhere

Pushing hard to get guest posting opportunities and interviews is a solid strategy; I’ve used it to a degree several times for various businesses. So long as you put in the required work, you’ll see results. While this is all occurring though you need to stay as active as possible on as many networks as possible. As Roberto Blake would suggest, you need to appear everywhere. In his methodology, it can be broken down in digestible chunks of time to prevent rabbit holing on topics unnecessarily. Being everywhere once against casts the perception of always being in the thick of the discussion, which results in publications pitching you to do interviews and guest posts. There’s no greater compliment you can receive than “how many people are you, really?”

Get Trained

It is easier for me to dole out advice than it is to make it work, because there are lots of moving pieces in establishing yourself as I so casually suggest. Thus, another avenue is to consider getting professionally trained by a PR expert like Mary Simms. The lines between influencers and public relations professionals are getting blurred, so by better understanding the ins and outs of public relations and key publications as it pertains to your niche, you can inject yourself into the conversation in a way that greatly benefits you, building up both your off-platform and on-platform reach, translating into the significant audience growth that you and brands want to see.

This post originally appeared on the Intellifluence blog.

ProgrammableWebW3C Launches Web of Things Working Group for IoT Standardization and API Development

The W3C has launched a Web of Things Working Group to explore standardization among a growingly disparate market force. The Internet of Things (IoT) continues to pick up speed among industries across the board, and without a current standardization methodology, the W3C, among others, sees unhelpful fragmentation.

John Boyer (IBM)InterConnect 2017 Content Available on IBMGO

Last week's InterConnect 2017 was chockfull of valuable content, including industry-leading keynote speakers, labs featuring cutting edge technology, and informative sessions on a variety of topics, as well as a Concourse exhibit space featuring over 200 vendors.

If you were unable to join us for the event, you can still participate. You can read some important announcements IBM made at InterConnect 2017.  Also, we recorded much of the content delivered at the show, and we've made it available online. You can stream InterConnect keynotes, sessions and on demand video via IBMGO.

imageAt IBMGO, you can also sign up to follow some of IBM's top executives and industry thought leaders on Twitter, to help stay abreast of technology trends and challenges.

Don't miss out on the InterConnect 2017 videos and other content available on IBMGO. There's a treasure trove of information posted there, all yours for the taking.


John Boyer (IBM)Engage with IBM Atlas Support via Twitter!

Over the past several months, we've noticed an increase in people reaching out to talk to us through social media. This is fantastic -- we love hearing from you and sharing our expertise. Today, we're excited to share that we are officially available to provide tips, tricks, and other guidance through Twitter. You can reach out to ecmsupport between 9am - 5pm ET, Monday to Friday,  We’ll do our best to respond quickly.

-IBM ECM Support Team






Jeremy Keith (Adactio)Open source

Building and maintaining an open-source project is hard work. That observation is about as insightful as noting the religious affiliation of the pope or the scatological habits of woodland bears.

Nolan Lawson wrote a lengthy post describing what it feels like to be an open-source maintainer.

Outside your door stands a line of a few hundred people. They are patiently waiting for you to answer their questions, complaints, pull requests, and feature requests.

You want to help all of them, but for now you’re putting it off. Maybe you had a hard day at work, or you’re tired, or you’re just trying to enjoy a weekend with your family and friends.

But if you go to, there’s a constant reminder of how many people are waiting

Most of the comments on the post are from people saying “Yup, I hear ya!”

Jan wrote a follow-up post called Sustainable Open Source: The Maintainers Perspective or: How I Learned to Stop Caring and Love Open Source:

Just because there are people with problems in front of your door, that doesn’t mean they are your problems. You can choose to make them yours, but you want to be very careful about what to care about.

There’s also help at hand in the shape of Open Source Guides created by Nadia Eghbal:

A collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open source project.

I’m sure Mark can relate to all of the tales of toil that come with being an open-source project maintainer. He’s been working flat-out on Fractal, sometimes at work, but often at home too.

Fractal isn’t really a Clearleft project, at least not in the same way that something like Silverback or UX London is. We’re sponsoring Fractal as much as we can, but an open-source project doesn’t really belong to anyone; everyone is free to fork it and take it. But I still want to make sure that Mark and Danielle have time at work to contribute to Fractal. It’s hard to balance that with the bill-paying client work though.

I invited Remy around to chat with them last week. It was really valuable. Mind you, Remy was echoing many of the same observations made in Nolan’s post about how draining this can be.

So nobody here is under any illusions that this open-source lark is to be entered into lightly. It can be a gruelling exercise. But then it can also be very, very rewarding. One kind word from somebody using your software can make your day. I was genuinely pleased as punch when Danish agency Shift sent Mark a gift to thank him for all his hard work on Fractal.

People can be pretty darn great (which I guess is an underlying principle of open source).

John Boyer (IBM)Use the UBX Dynamic Library to help construct use cases for data syndication


A recent update to IBM Universal Behavior Exchange delivered the UBX Dynamic Event Library.  As the name implies, the UBX Dynamic Event Library provides a dynamic, up to date view of each of the UBX recognized event types across all of the UBX event categories in the taxonomy, spanning web, email, mobile, social, CRM and other customer behavior event categories.

Business users can select from a category or perform a search of any event types they might need to work with as show below in step 1 “Select an event type”:



Each of the recognized UBX event types for the chosen category are listed in the second column, for instance customer social behavior event types in the example above.  UBX business users can then select a specific event type and the Dynamic Event Library will display the event code and each of the event type’s attribute fields, for instance a Facebook Like Page event in the example below:




Clicking on the “I” information icon to the right of any of the attributes will display the data type, description and code name for that attribute:



The Dynamic Event Library can display which production UBX endpoint solutions are publishers or subscribers or the event type by clicking “Select publishers and subscribers”:



Selecting the publisher or subscriber UBX endpoint solution that the business user would like more details regarding support for the event type in that particular endpoint solution will show which event attributes are and are not supported by that endpoint solution:




For business users as well as IBM business partners designing use cases for UBX event syndication, this capability of the Dynamic Event Library is very effective to help identify which event types and specific event attributes are supported across the various event publishers and subscribers being linked up in these use cases, to determine if key attributes required for realizing the use case are supported by the linked publishers and subscribers.

For instance, a use case aiming to leverage customer events for logging in to an application or service using the customer’s social network credentials such as for Facebook, to inform marketing and customer engagement programs in IBM Marketing Cloud can determine which publishers and subscribers support  the “Connected with social” UBX event type and which specific event attributes are supported by any of these event publishers and subscribers:



The UBX business user can then proceed to establish an event subscription between the desired event publisher and subscriber endpoints in UBX to start data syndication for activating their use case:


John Boyer (IBM)Use the UBX Dynamic Library to help construct use cases for data syndication


A recent update to IBM Universal Behavior Exchange delivered the UBX Dynamic Event Library.  As the name implies, the UBX Dynamic Event Library provides a dynamic, up to date view of each of the UBX recognized event types across all of the UBX event categories in the taxonomy, spanning web, email, mobile, social, CRM and other customer behavior event categories.

Business users can select from a category or perform a search of any event types they might need to work with as show below in step 1 “Select an event type”:



Each of the recognized UBX event types for the chosen category are listed in the second column, for instance customer social behavior event types in the example above.  UBX business users can then select a specific event type and the Dynamic Event Library will display the event code and each of the event type’s attribute fields, for instance a Facebook Like Page event in the example below:




Clicking on the “I” information icon to the right of any of the attributes will display the data type, description and code name for that attribute:



The Dynamic Event Library can display which production UBX endpoint solutions are publishers or subscribers or the event type by clicking “Select publishers and subscribers”:



Selecting the publisher or subscriber UBX endpoint solution that the business user would like more details regarding support for the event type in that particular endpoint solution will show which event attributes are and are not supported by that endpoint solution:




For business users as well as IBM business partners designing use cases for UBX event syndication, this capability of the Dynamic Event Library is very effective to help identify which event types and specific event attributes are supported across the various event publishers and subscribers being linked up in these use cases, to determine if key attributes required for realizing the use case are supported by the linked publishers and subscribers.

For instance, a use case aiming to leverage customer events for logging in to an application or service using the customer’s social network credentials such as for Facebook, to inform marketing and customer engagement programs in IBM Marketing Cloud can determine which publishers and subscribers support  the “Connected with social” UBX event type and which specific event attributes are supported by any of these event publishers and subscribers:



The UBX business user can then proceed to establish an event subscription between the desired event publisher and subscriber endpoints in UBX to start data syndication for activating their use case:


John Boyer (IBM)Software-defined environments for private clouds and more

Software-defined environments can change the way we think about the world of application, integration and middleware. But what are they and how can you get started? Here are a few Q&As to help you quickly understand the technology and what it can do for you.


What is an SDE and why use one when you have traditional environment approaches?

Software Defined Environments (SDEs) help bring value to your organization through responsive and adaptive solutions. SDEs optimize the entire computing infrastructure — compute, storage and network resources—and can automatically tailor themselves to the needs to the workload. An SDE is a service-based model that abstracts the computing infrastructure and manages and adjusts it based on policies. Without an SDE, you must manually allocate compute, storage and network resources to different workloads and this can be a time-consuming and repetitive task.

The SDE removes manual steps by taking application characteristics, best-available resources and service level policies into account to dynamically allocate available resources to the various workloads. It can also deliver continuous, “on the fly” optimization and reconfiguration to address changing workload and infrastructure needs.  We call this scale out and scale in and it is achieved through policy-based compliance checks and updates.


How do containers compare to VMs and SDEs?

Containers, such as Docker, are designed to simplify the packaging and distribution of software.  They work above the operating system level of the computing stack and are fast and light at startup. Because they are portable, they can bring together all elements of an application so they deploy quickly, operate independently from other containerized applications and can be easily ported to new locations, for example from development to production or from a vendor like IBM to you.

Containers work within IT policies and allow you to embrace your own data center standards.  For example, existing monitoring and security overlays can remain on the host operating system while the application is isolated inside its container. You can fully utilize existing infrastructure capabilities like storage copy and replication services. Existing monitoring tools such as systems management, network monitoring, and even popular cloud management tools, including OpenStack and Kubernetes, can continue to be used. Thus, containers work within the existing processes and guidelines you already have established.

Do containers sound like a virtual machine (VM)? Well not really. VM virtualization technology abstracts at the hardware level and creates an entire virtual operating system. You can use VMs and Container technologies together, for example, Docker containers can be created inside VMs to make a solution ultra-portable.


So what does IBM have to offer in the SDE space?

IBM dashDB Local is the IBM data warehouse offering for SDEs such as private clouds, virtual private clouds and other infrastructures that leverages Docker container technology. It deploys to any environment that supports Docker and is designed to provision a full data warehouse stack in minutes. You can manage dashDB Local on the server or cloud environment of your choice, while maintaining existing operational and security processes.

dashDB Local can be deployed on any supported Docker platforms on Linux and Windows with minimal prerequisites. Entry level hardware requirements start at 8GB RAM and a single CPU core, which is suitable for a development / test environment or QA work on your laptop. This comes in handy for Data Scientists or Business Analysts as well. For larger servers like 48 core 3 TB RAM servers, the dashDB container will auto-configure to make the best use of the available resources with minimal tuning. To summarize, this configuration empowers users to make the efficient use of the hardware what you already have in your data center or in the cloud environment of your choice.

For more information on dashDB Local, please visit the dashDB Local page on the public Docker repository to access the free trial.  Start by creating a Docker hub ID which you will need in order to gain access to the dashDB Local trial.


Updated: .  Michael(tm) Smith <>