Taxonomy matters and colorful attribute names

The taxonomy, or often called navigation, of a site is probably one of the most important pieces of an online commerce system. Being able to narrow down to a product through search and a faceted navigation system is very important to the site visitor. One example of this is being able to describe a product through facets (or attributes in some systems). Many times eCommerce systems provide attributes that can be tied to a product and these attributes ultimately drive the faceted navigation system. A brand would use these attributes to aid the shopper in finding the right product. Sometimes a brand may want to have a hierarchy of facets like colors. You may want to promote your colors through high level categories and then drill down to specific colors so your faceted navigation might look like this:

facetsThe facets to the left could be a single facet in the system named “Color”. But because we could assign multiple values to a single product, the product could potentially show up under “Blues” and possibly “Periwinkle, Powder Blue, or Baby Blue”.  This lets the shopper navigate to a single product in multiple ways. You might want to consider offering multiple options for your products to make finding them easier. I mean, who doesn’t want to click on Periwinkle?

Short URL: http://bit.ly/1oDt6xK

One of THE best new features in WebSphere Commerce Feature Pack (FEP) 7

In Feature Pack 7, the advanced configuration allows you to federate and cluster WebSphere Commerce search. This means you can now scale your servers more inline with your sites demand – separating transactional operations and search operations independently. 

Marco Fabbri outlined this in an excellent blog post back in June this year. 

As shown on the pictures I got from IBM Knowledge Center it’s possible to create two different clusters, one for transactional and the other dedicated to no transactional traffic and using CBR (Content Based Routing) functions of a dispatcher to distribute REST calls to the different servers depending on their content (or better on his URL pattern).

- Marco Fabbri

sdsearchadvcluster

Photo From the IBM InfoCenter

Short URL: http://bit.ly/1ooW7SC

BlueMix URL Rating widget on WebSphere Commerce for product ratings

bluemix-ratings-wc

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

Short URL: http://bit.ly/1kobzys

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:

<div class="row2">
    <div class="grid">
        <div class="col-1-2" id="urlRate">
	</div>
    </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

Short URL: http://bit.ly/1qE0Pi7

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

Short URL: http://bit.ly/1nxDmeL

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

Short URL: http://bit.ly/1rKpJd3

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

Short URL: http://bit.ly/1jYrKlV

Who is watching your videos on YouTube?

I understand the types of videos I make will never go viral as it is a niche channel but I am always interested in finding new ways to have broader coverage. I have monitored things like the video retention rate and have attempted to make the videos somewhat compelling along the way to keep the retention high throughout the video however I often find the results are variable and still don’t have it down completely.

I see I have a fairly large viewership in the US and India, and not bad in the UK, Canada, and Brazil but then its starts to decline pretty quickly.

I promote the videos here on this blog, Twitter, LinkedIn, Google Plus, Tumblr, and even Facebook. So the question I have is, how do you get more viewers in these other countries? Are there other social platforms I should be targeting to get the “word out” on? What social networks do you publicize your videos on in these other countries?

Screen Shot 2014-07-18 at 9.35.32 AM

Short URL: http://bit.ly/1qO3JN1

Integrating IBM (Unica) Interact with WebSphere Commerce Part 1

In this video I show off the GreenWheels demonstration where I created an IBM Interact Widget. In this first part I show how Interact and WebSphere Commerce connect together. I explain the setup of the zones in Interact and how I mapped those zones to areas within the product page layout in Commerce Composer. I then walk through how I used the new widget framework to call into Interact and construct the offers for the web page.

Short URL: http://bit.ly/1zIhdjl

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.

Short URL: http://bit.ly/1pZXMQZ

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:

https://github.com/node-red/node-red-nodes

Analysis

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.

Hardware

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

IO

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.

Social

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.

Storage

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.

Time

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,

Misc

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

Short URL: http://bit.ly/1t5sSYJ

Final Re-Tweet Code for my Node-RED application on BlueMix (updated)

If you have been following my blog and more specifically my Twitter account in the past week you probably noticed an awful lot of re-tweets in the past week. Well, if you just happen to have missed my original video where I created a simple Node-RED application to automatically retweet and promote “bluemix” on Twitter feel free to get some context here and watch the video.

This is the final flow after some debugging and watching the different retweets happening:

 

Continue reading

Short URL: http://bit.ly/1qt4zlB