Two spanky new technologies have collided to provide a cornucopia of possibilities for the hack minded. One half of the collision of awesomeness is the vaunted Node-RED - which is simply the most easy to get to grips with tool for wiring up the internet of things ever invented. The other is the brand new, just G.A'd MQ Light - which allows developers to add powerful but incredibly simple messaging functionality to their apps.

Now, there are MQ Light nodes in Node-RED allowing you to wire up your apps to the Internet of Things with ease...

Matt Whitehead from the team that built MQ Light had this to say...

If you are using Node-RED in Bluemix you can now connect your flow to MQ Light using the new input and output nodes.

Using the nodes you can offload work from your application to be processed by a Node-RED flow, using function nodes, sentiment analysis, IBM Watson Q & A, or any other function Node-RED provides. Then you can have the flow return the results back to your application as an MQ Light message.

Here’s a simple flow I created using the new nodes:

I’ve configured an MQ Light input node to subscribe for messages on the topic ‘data’, and wired the node to both a sentiment analysis node and an IBM Watson Q & A node. The results from the two parts of the flow are returned to my application on the topics sentiment/response and watson/answer respectively. I’ve also used a function node to prevent answers from Watson being sent back to my application if the confidence of the answer isn’t high enough.

It’s a wonderful example of how the IBM SoftLayer platform supports precise and accurate teamwork. A two man team, split up to overcome a problem in one of the best displays of precision teamwork i’ve seen.

Did you know that IBM SoftLayer, is the platform used to allow Minecraft players, to collaborate and build whatever they choose. From cabins to castles to complex inventions, IBM SoftLayer supports an environment where people can come together to play and build, limited quite literally by their own imaginations.

Folks - im a big fan of simple. On my travels I discovered a really cool GitHub repository that is perfect for someone just starting out playing with Node and cloud technology.

Effectively it gets you going with a Node.js app that uses a MySQL database residing on BlueMix. All you have to do is upload a file of line spaced text and it will add it to MySQL. Perfect if you want to get started playing with the technology

But just to give you an overview of how simple it is - ive outlined the simple steps below...

First things first, we need to install the cf command line tool that will be used to upload and manage your application. If you've previously installed an older version of the cf tool, make sure you are now using v6 of cf by passing it the -v flag:

cf -v

Steps

In the terminal, go into the directory named app, and follow these steps.

Create an instance of the postgreSQL service, giving it a unique name in the last arguement.

usage:

$ cf create-service SERVICE PLAN SERVICE_INSTANCE

example:

$ cf create-service mysql 100 mysql_NMU

From the directory that houses the app.js file (not from the root directory that contains thisREADME.md file), push the app with the --no-start option so we can bind our required service before starting. Pass the -c flag to specify the start command that should be used by CloudFoundry to run your app. Be sure to give your app a unique app name to be used for its hostname; for instance the example below would result in http://myupload-.ng.bluemix.net.

Nick O'Leary and Dave Conway Jones are a couple of Legends in Hursley that I sometimes have the opportunity to work with. One of their babies is the awesome NodeRed which I heartily recommend you check out here.

More recently however, these stalwarts of messaging and integration have been contributing to a GitHub repository - geared toward Node.js and Cloud tech' - in order to make life even simpler for the developer and to amplify the power of their awesome applications.

Want to know how to get your hands on the goodies....read on:

First of all - check out this awesome tutorial to get started with Node.js and BlueMix

But here is a quick run down of the latest goodies you can lay your hands on:

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.

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...

A great little podcast from one of the messaging development team in Hursley - all about how he breaks BlueMix so you dont have to. As well as how messaging in BlueMix will make life so much easier for developers!

Check out our video on getting started with MQLight! MQLight is a great way to work in BlueMix as it has a local install that runs on your machine, and then has a BlueMix facility that can then run your application on the cloud.