WebSphere Commerce Support Tools now on BlueMix

This looks very promising indeed. The new WebSphere Commerce Support Tools are now available on BlueMix.

WebSphere Commerce Support Tools on BlueMix


BlueMix URL Rating widget on WebSphere Commerce for product ratings


Ok, this is really just a teaser post as I will divulge the process used to get my Blue Mix URL rating widget into the WebSphere Commerce Composer framework a bit later.

I will say, now that the widget is in a real application I was able to test out some more use cases and fix a few bugs to make sure the widget is re-usable across a site. In this use case I am using it to rate products. I made a few changes to the NodeRED flow including adding more data saved for some future ideas I have. Here is the current block of data saved in the MongoDB for each rating received:

 "url": "http://mytestserver.com/webapp/wcs/stores/servlet/en/aurora1/electronics/tablets-10229--1/budget-tablet",
 "rating": 4,
 "host": "mytestserver.com",
 "cookie": "1406562990550",
 "date": "Wed, 30 Jul 2014 18:31:35 GMT",
 "_id": {
 "$oid": "53d93a07cb353621005aaadf"

Notice I added “date“, “host” and “cookie” to the output. The date is actually filled in by the server for consistency and the cookie is a time stamp saved in the shopper browser for the page using HTML5 storage. I figure I will be able to use this data for reporting later and possibly as a WebSphere Commerce precision marketing action to get me a list of “top products” for a given domain.

The other change I had to make was to allow my service to respond with cross domain calls. I just put a little JavaScript between the post request and response nodes and added “Access-Control-Allow-Origin” to the call. I could probably isolate this to the specific domain eventually.

Cross Domain Setting

The next addition I made was if the browser already rated a product (cookie + URL) is already stored into the database send back a piece of data in the response of the “getRating” call to notify the browser to not let that person vote again. I really like how I can just connect nodes together conditionally and essentially introduce some complex decision making flows into the mix. Here you can see my decision “Check for cookie” and then ultimately append the flag in the “Check for already voted” function:

already voted logicHere is the Check for already voted function:

already voted code

Continue reading

URL Rating application on BlueMix – Part 2 – the user interface

starsThe next step in my Node-RED application on BlueMix is to create some user interface that calls the services I defined in my Node-RED flow sheet. If you recall from the last post, I created two services:

  • /postrating – which will post a rating for a given url
  • /rating – which retrieves the average rating for the url

For now, I will use the index.html to test the user interface. I want to make it dead simple for someone to use this in the end so the only need is to include the javascript file and define a div with an id of “urlRate”, like so:

[codesyntax lang=”html4strict”]

</div> </div>


In this next video I create a basic jQuery user interface that allows the user to click on a star and register their rating for the given page. There are no checks and balances in the application as of yet – ie. I can click as many times as I want so I can test my services.

Continue reading

Creating a URL Rating Application in Node-RED on BlueMix – Part 1

starsThis is the first part of a new application I am creating using Node-RED on BlueMix. With very little programming, I show how you can get a basic URL rating application up and running very quickly using Node-RED. In this first part I focus on the two primary web services, posting a rating and getting a rating for a URL.

Continue reading

Today’s Bluemix Virtual Meetup Live On YouTube and Google+ starts in 5 minutes!

Originally from Ryan Baxters blog here.

You can watch today’s Bluemix Virtual Meetup on mobile cloud services live at 10 AM EST on YouTube.  There are 3 options for watching.

  1. Watch out on the YouTube page.
  2. Watch on the Google+ page.  If you watch on Google+ you will be able to ask questions.
  3. Watch right here

Top 10 most popular videos about IBM BlueMix

These are currently the most viewed videos on YouTube about the IBM BlueMix platform:











Node-RED boilerplate on #BlueMix now uses Cloudant NoSQL DB

Not sure if anyone noticed this but the Node-RED boilerplate application on BlueMix now uses the Cloudant NoSQL database service for storage. The beta version used Mongo:


Using the Eclipse client for editing BlueMix projects on Git Jazz Hub

In this tip of the day I show how easy it is to setup your IBM BlueMix and Jazz Hub project in the Eclipse client for editing. This will allow you to edit your project off-line and take advantage of the many plugins the Eclipse client has to offer.

Continue reading

Adding a new node type to your Node-Red flow application on BlueMix

Screen Shot 2014-07-09 at 12.02.32 PMIn my last post I introduced a project on GitHub that provided 26 new Node-Red nodes you can use in your Node-Red flow. Today I am going to show how you can bundle up one of those nodes and deploy it to your application on BlueMix.

I have had problems with my blog service provider in that the database server goes off-line at random times. While it only happens maybe once or twice every other month it is very annoying and most of the time I get notified by some of my avid readers that my ‘blog is down”. If anyone knows WordPress, if your database server is down the blog is pretty much dead.

In this video I show how you can bundle up a node and deploy that new node to your Node-Red application flow to be used in your flows.

26 Node-Red nodes for your arsenal!

GitHub-MarkCheck out this project on GitHub, it has 26 new nodes for your Node-Red application. Everything from Analysis to Hardware:



72-wordpos – Analyses the payload and classifies the part-of-speech of each word. The resulting message has msg.pos added with the results. A word may appear in multiple categories (eg, ‘great’ is both a noun and an adjective).

74-swearfilter – Analyses the payload and tries to filter out any messages containing bad swear words. This only operates on payloads of type string. Everything else is blocked.


37-rpi-piface – Adds support for the PiFace interface module for Raspberry Pi.

78-ledborg – A simple driver for the LEDborg plug on module for Raspberry Pi.

60-wemo – Basic node to drive a WeMo socket and switch. Does not use discovery.

76-blinkstick – Provides support for the BlinkStick USB LED device.

77-blink1 – Provides support for the Blink1 USB LED from ThingM.

78-digiRGB – Provides support for the DigiSpark RGB USB LED.

79-sensorTag – Reads data from the Ti BLE SensorTag device.

100-heatmiser-in – Writes settings for temperature and frost protection to Heatmiser thermostats.

101-heatmiser-out – Reads settings from Heatmiser thermostats at a polling interval.

101-scanBLE – Scans for a particular Bluetooth Low Energy (BLE) device.

145-BBB-hardware – A collection of analogue & digital input & output nodes for the Beaglebone Black


26-rawserial – Only really needed for Windows boxes without serialport npm module installed. Uses a simple read of the serial port as a file to input data. You must set the baud rate etc externally before starting Node-RED. This node does not implement pooling of connections so only one instance of each port may be used – so in orout but not both.

39-wol – Sends a Wake-On-LAN magic packet to the mac address specified. You may instead set msg.mac to dynamically set the target device mac to wake up.

88-ping – Pings a machine and returns the trip time in mS. Returns false if no response received within 3 seconds, or if the host is unresolveable. Default ping is every 20 seconds but can be configured.


69-mpd – MPD music control nodes. Output node expects payload to be a valid mpc command. Currently only simple commands that expect no reply are supported. Input node creates a payload object with Artist, Album, Title, Genre and Date.

57-notify – Uses Growl to provide a desktop popup containing the payload. Only useful on the local machine.

57-prowl – Uses Prowl to push the payload to an Apple device that has the Prowl app installed.

57-pushbullet – Uses PushBullet to push the payload to an Android device that has the PushBullet app installed.

92-xmpp – Connects to an XMPP server to send and receive messages.


67-leveldb – Uses LevelDB for a simple key value pair database.

68-mysql – Allows basic access to a MySQL database. This node uses the query operation against the configured database. This does allow both INSERTS and DELETES. By it’s very nature it allows SQL injection…so be careful out there…

69-ddbout – Support output to Amazon DynamoDB.


79-suncalc – Uses the suncalc module to generate an output at sunrise and sunset based on a specified location. Several choices of definition of sunrise and sunset are available,


99-sample – A sample node with more comments than most to try to help you get started without any other docs…