Last week at the hackathon at Devoxx we handed out some SimpleLink Wi-Fi CC3200 LaunchPads that developers could use for their hacks. These devices are rather cheap (around 40 Euro), have a built in Wifi and provide various sensors: temperature, accelerometer, buttons, network quality.

My colleague Mark VanderWiele wrote a starter application that helps people to connect to Bluemix and receive sensor data. I added a simple Node-RED flow and some documentation and we published the code on GitHub. With this project developers are able to get a first IoT application running on Bluemix with registered devices using the MQTT protocol in just a few minutes.

The GitHub project contains documentation how to set up everything. Essentially you need to install the Energia IDE and the driver of the board and then add your specific device credentials and your Wifi access credentials in the code. After this you can compile and upload the application to the board.

Before this you should create an application on Bluemix based on the Internet of Things Foundation Starter and add the Internet of Things service to it. You'll then be able to register your device and get the credentials you need to put in the application code.

There is a Node-RED flow that shows how to receive the incoming data and to listen to events like the "Button Pressed" event.

Since the board comes with Wifi, the board doesn't have to be connected to a notebook, smartphone or tablet.

Globalize your Bluemix Applications without recompiling them

By Niklas Heidloff, posted on Jun 23, 2015

Here is another short description of another awesome Bluemix service - IBM Globalization. This service provides machine translation capabilities from English to eight other languages at this point. The best feature is that you can change your strings dynamically without having to recompile and redeploy.

The IBM Globalization service is currently in the experimental stage, but the following paragraphs should give you an idea about the functionality. With the dashboard of the service you can create globalization projects, upload the English source file and get them translated in the languages on the screenshot. The machine translated strings can then be changed in the dashboard. Read the documentation to find out more.

The machine translation functionality and the manually modified strings can be used as a stage in the Bluemix DevOps pipeline in which case the translated message files are added to the project. However in this case the translation is static and the project has to be recompiled and redeployed after changes.

Instead of translating the strings as part of the build process the service allows accessing the strings dynamically from your app as Steven Atkin points out in his article: "The game-changing value proposition of the IBM Globalization service is in the dynamic connection between the service itself and the target app. IBM Globalization provides several sample SDKs that you can incorporate into your app to connect the app to the IBM Globalization service in real time. You don't need to repackage files, recompile, or re-stage your Bluemix app (as is required by traditional translation processes)."

To leverage this capability you need to change your Java apps slightly by loading the resource bundle via a new ResourceBundleControlProvider which is included in the gaas-java-client library. The documentation explains two alternatives how to use it. I used the alternative where the library has be to added to the Java project and the Java code has to be changed to use the new resource bundle control. Check out this sample code. Right now the library has to be imported into the Java project but the team is also working on providing the library on Maven.

To learn more watch the videos Intro to Globalization Pipeline in Bluemix DevOps Services and A demonstration of the Globalization Service in IBM Bluemix. Also the developerWorks article comes with a more advanced "book club" sample where not only the static strings are translated but even the dynamic content via Watson translation. You can run this demo live by simply changing the locale in your browser.
Last week the IBM Emerging Technologies team attended Devoxx UK 2015 and presented Bluemix at the IBM booth and in various sessions. Additionally my colleagues David Boloker, Mark VanderWiele, James Thomas, Ryan Baxter and I hosted an Internet of Things hackathon which was a lot of fun for both participants and mentors.

We asked developers to build any type of Internet of Things application as long as it uses IBM Bluemix and the Internet of Things service. We provided some cool devices and samples for developers that they could use for their hacks: Parrot AR Drones 2.0, Orbotix Sphero balls and Texas Instruments CC3200 LaunchPads. Since we only had three hours time for the hackathon, the goal was not only to get awesome applications built but also to get people started with IBM Bluemix and to have fun.

I think it's amazing what people were able to do in that limited time. The winning team with the developers Adam Dyga, Michael Bogacz, Bartholoiy Tomala, Lukasz Szymik and Vladimir Volynkin developed a starting point for an application "Rescue from the Cloud". The idea is to send a drone to the place where an accident happened and where people might be injured to take photos or even better stream videos immediately to the rescue team before they can reach the location. This data could help the rescue team to make the right decisions very fast and not only to rely on the information people provide over the phone who might be involved in the accident themselves and might be under a lot of stress.

Here is the winning team and their presentation.

The second winning team (Samael Bate, Daniel Watford, Giuseppe Persiani, Kevin Potgieter and Samir Pipalia) was working on a game where the drones were controlled by TI boards.

A big Thank You goes to the Devoxx organizers, especially Ellie May, who helped with the organization and to Mani Sakar and James McGivern from the Devoxx program committee who helped with the judging.

While people were actually able to deliver working code, we'll probably give people more than two hours the next time we host a hackathon. Especially for IoT hackathons there is a good amount of setup that needs to be done first. I think one of the participants Jeremie Charlet summarized this pretty well.
14 months ago my colleague David Barnes created the most viewed Bluemix video (47k views). At that time BlueMix was still in beta, there was no Docker support yet and many other services were missing. Yesterday David published a new version of this video covering also some of the new capabilities.

The video also comes with subtitles which is helpful since we often play the video at conferences at our booths. Here is a picture from David at JavaLand this year that I posted already earlier. Notice the same shirt and gesture :)

IBM Bluemix provides a service to define business rules external to your application code. This allows changing rules more dynamically without having to recompile and redeploy the complete application.

There is plenty of documentation available that I won't repeat here: Business Rules documentation, developerWorks articles and samples and tutorials. Below is just a quick summary for what this service can be used and how to leverage it in Bluemix.

The example I'm using is from an article Build a hotel booking application which provides a detailed description how the service works. In this scenario a business rule is defined to determine the pricing of a hotel based on the date of the booking offering early booking discounts or last-minute offers. With the business rules service this can be done without low level programming skills using a Rule Designer plugin in Eclipse.

After the service has been created in Bluemix, you can get your connections settings.

In Eclipse you need to use these settings when deploying the rule to Bluemix from your IDE.

After the rule has been deployed to Bluemix, you can execute it via REST APIs. There is a Java sample that shows how to do this. You can also invoke the rule and receive the results in a Node-RED flow. Check out the sample flow. The dashboard of the service also provides an easy way to test the service.

More Blog Entries ...

Hi, my name is Niklas Heidloff. I work for IBM as an IBM Bluemix Developer Advocate. The blog contains information about IBM Bluemix and articles about my previous work in IBM Collaboration Solutions, esp. IBM Connections and XPages.



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