| Recent Blog Posts
Thu, Sep 1st 2016 4:01a Niklas Heidloff
Some people have asked why I haven’t blogged since June. Here is why …
Almost two years ago I started to work for IBM Emerging Technologies. I wanted to work in this group for multiple reasons. One reason was because some of the people in that group worked as developer evangelists for Bluemix which is what I wanted to do as well. I really enjoyed this role since I could learn a lot, since I could blog and open source samples, since I could attend developer conferences and more. As yo
Analyzing Data with IBM Watson Internet of Things|
Tue, Jun 14th 2016 4:47a Niklas Heidloff
Once you’ve connected your ‘things’ with the Watson Internet of Things platform, the next question is how to process the received data. In some scenarios the raw data triggers actions immediately, sometimes the data needs to be persisted so that it can be used for historical/descriptive analysis and sometimes the data is used to perform predictive analytics and prescriptive analytics.
The Watson Internet of Things platform uses MQTT which is a lightweight and secure publish/sub
Recognizing Text in Images with Watson’s Visual Recognition API|
Mon, Jun 6th 2016 6:23a Niklas Heidloff
The Watson Visual Recognition service is now generally available and a lot of new functionality has been added. The service combines the old beta capabilities plus the Alchemy functionality and the previous Visual Insights service.
With the new service you can receive classifications of images, faces can be detected and even text is recognized. All of this can be done by simply invoking APIs without requiring deep learning skills.
With the new service you can now define and train multiple custom
Pictures from Bluemix at DNUG|
Fri, Jun 3rd 2016 4:12a Niklas Heidloff
This week I attended DNUG in Hamburg/Germany. DNUG is the German user group for IBM Collaboration Solutions. In the app dev track several sessions covered Bluemix.
It was the 43th conference of DNUG but this time it was very different. After years of declining numbers of attendees the new board has managed to double the number of attendees compared to the last conference. The new DNUG organization is now much leaner and cost effective. One example is that all servers and infrastructure has been
Machine Learning Courses for Developers|
Wed, Jun 1st 2016 3:07a Niklas Heidloff
As readers of my blog will know, I want to learn more about machine learning. I’ve managed to run some samples and I’ve built my own first little samples. It feels like the next step is to understand more about the different algorithms, for example when to pick which one and how to tune the parameters to achieve the best results.
To learn more, I’ve started to watch the first hours of the awesome courses below. The courses are a great introduction to machine learning and very d
Spark Machine Learning Samples for IBM Bluemix|
Mon, May 30th 2016 4:54a Niklas Heidloff
Below is a quick overview of samples that demonstrate how to use the machine learning capabilities in Spark on IBM Bluemix.
Flight Delay Predictions
David Taieb posted the slides of his hands-on session how to predict flight delays based on historical data and whether predictions. The sample uses the machine learning algorithms Logistic Regression, Random Forrest, Decision Tree and Naive Bayes.
When playing rock-paper-scissor everyone has his/her own strat
Integrating Tools in Bluemix DevOps via Open Toolchain|
Fri, May 27th 2016 5:26a Niklas Heidloff
At InterConnect IBM previewed a new set of DevOps functionality which is now available as experimental on Bluemix. Via Toolchains IBM tools and third party tools can be used seamlessly together for the development, deployment and management of Bluemix applications.
With toolchains other common non-IBM tools can be integrated nicely in the Bluemix developer experience, for example by providing a single sign on between Bluemix and the various tools. Additionally the tools can interact between each
Running the Spark Recommendations Sample on Bluemix|
Wed, May 25th 2016 5:29a Niklas Heidloff
Apache Spark comes with a set of machine learning samples. One of those sample is a movie recommendation system which makes personalized recommendations based on a technique called Collaborative Filtering. In this article I describe on a high level how this sample works.
For more details check out the tutorial from the Berkeley university. The dataset used in that tutorial contains 10 million ratings from 72,000 users on 10,000 movies. The Spark project comes with a synthetic dataset in the same
Discovering Open Data via Analytics Exchange on Bluemix|
Wed, May 25th 2016 3:22a Niklas Heidloff
As I’m trying to learn more about machine learning I spent some time to look for data that I can use. While GitHub is the place to get open source code, there doesn’t seem to be a counterpart for open data. Below are a couple of websites that help finding data.
In Bluemix there is an Analytics Exchange which gives you access to free and open data in categories such as economy and business, leisure, transportation, and others. The screenshot shows a sample dataset which contains revie
Getting started with Spark Machine Learning on Bluemix|
Thu, May 19th 2016 6:15a Niklas Heidloff
I’m fascinated by the power of machine learning and I’m trying to learn more about this technology. I’ve started to look into how to use the machine learning library in Spark.
The Spark documentation of the spark.ml package explains the main concepts like pipelines and transformers pretty well. There are also a number of good videos on YouTube about machine learning. I’ve used the spark.ml library as opposed to spark.mllib since it’s the recommended approach and it
Getting started with Predictive Analytics on Bluemix|
Wed, May 18th 2016 4:06a Niklas Heidloff
IBM Bluemix provides a service Predictive Analytics which developers and data scientists can use to build applications that help users to make predictions about the future for different scenarios. Below is a quick introduction of this functionality.
Let’s start with a definition of Predictive Analytics from Wikipedia.
Predictive analytics encompasses a variety of statistical techniques from predictive modeling, machine learning, and data mining that analyze current and historical facts to
How to build Facebook Chatbots with IBM Watson|
Thu, May 12th 2016 4:23a Niklas Heidloff
I’ve open sourced a simple sample of a chatbot for Facebook that leverages IBM Watson Dialog and IBM Watson Natural Language Classifier for conversations with users.
Get the code from GitHub.
The GitHub project contains a sample of a Facebook bot built on the Facebook Messenger Platform which is currently available as beta. The sample bot is pretty simple but might people give some ideas how to use cognitive Watson services and how to host the bot on Bluemix.
The sample bot shows recent tw
Check out the High Quality Bluemix Webinars|
Tue, May 10th 2016 4:11a Niklas Heidloff
In order to learn new technologies I often watch webinars and videos. For Bluemix there pretty good technical webinars with great speakers, mostly from the development teams. Unfortunately they are not that easy to find. So here is a quick overview.
IBM Bluemix Dev Webinars
Registration on event.on24.com (17 fields)
Replays are available after registration
IBM developerWorks Open Tech Talks
Registration on ibm.6connex.com (9 fields)
Replays are available a
How to invoke OpenWhisk Actions for certain IoT Device Events|
Mon, May 9th 2016 3:26a Niklas Heidloff
Serverless Computing is often useful in event-driven Internet of Things (IoT) scenarios. For example when IoT sensors exceed a certain temperature actions are invoked to fix the issue.
OpenWhisk is IBM’s serverless computing offering in Bluemix. In order to implement a use case like above with the experimental OpenWhisk service, at this point you need to deploy a non-serverless application which receives MQTT events from IoT devices and invokes the appropriate OpenWhisk actions. While such
How to use Spring Boot for Serverless Computing|
Wed, May 4th 2016 5:49a Niklas Heidloff
Serverless Computing is a relative new technology which allows developers to build event driven code which scales and for which you only pay the time it’s running. OpenWhisk is IBM’s serverless computing offering hosted on Bluemix.
Useful MQTT Tools for the IBM Watson IoT Platform|
Tue, May 3rd 2016 4:00a Niklas Heidloff
For the development of Internet of Things applications it’s often useful to simulate devices. Below are two options which are easy to use.
The instructions describe how to connect to the IBM Watson IoT Platform on Bluemix. In all cases you need to create your own Internet of Things Platform service and create your own device type and device.
With the MQTT Helper application on Bluemix you can connect to a MQTT broker and subscribe and publish to MQTT topics. The trick is to kno
Creating Docker Actions with OpenWhisk|
Mon, May 2nd 2016 8:32a Niklas Heidloff
How to use API Connect to manage LoopBack APIs|
Tue, Apr 26th 2016 6:11a Niklas Heidloff
As an example I used a simple sample application ‘Approval Requests’ built on the CLEAN stack. The sample is available as open source a
Developing OpenWhisk Actions via the new Web Editor|
Mon, Apr 25th 2016 6:02a Niklas Heidloff
In addition to Cloud Foundry, Docker and Virtual Maschines Bluemix provides a fourth compute option OpenWhisk. OpenWhisk is an event-driven compute platform that executes code in response to events or direct invocations without having to maintain servers. The advantage is that you only have to pay for actual usage, not for peaked projections.
Pictures from Bluemix at JAX 2016|
Fri, Apr 22nd 2016 4:04a Niklas Heidloff
This week my colleagues David Barnes, Ryan Baxter, James Thomas, Thomas Bück, Timo Roeseler and I attended JAX in Mainz/Germany which was attended by 2000 people, mostly Java developers. There was a lot of interest in Bluemix and we enjoyed the discussions with developers. Below are some pictures from our booth, our sessions and prize draws.
The team from left to right: Ryan, James, David, Thomas, Niklas
David Barnes in his keynote about the next generation of software developers and drones:
How to get started with Machine Learning on Bluemix|
Fri, Apr 15th 2016 10:22a Niklas Heidloff
There is a lot of talk about artificial intelligence (AI) these days, especially since Google’s AlphaGo beat a Go world champion. Companies like IBM are using this technology already in a number of products. For example on Bluemix developers can easily consume cognitive Watson services like speech or image recognition that use machine and deep learning under the cover. While these Watson services are very easy to use for developers, sometimes you want to use machine learning for other scen
Driving Cars autonomously with IBM Bluemix|
Mon, Apr 11th 2016 5:27a Niklas Heidloff
At JavaLand we presented how to steer Anki Overdrive cars with IBM Bluemix via speech and gesture recognition. Since the cars send their position data to the cloud we could also demonstrate a simple version of collision prevention.
The demo is available as open source and I documented it in a series of blog entries (see below). My colleague David Barnes interviewed me and created the video Driving Cars autonomously with IBM Bluemix. Thanks a lot, David!
Here is the high level architecture with
Measuring Heart Rate with Wireless Earphones and Bluemix|
Thu, Apr 7th 2016 10:06a Niklas Heidloff
The Dash from Bragi are wireless smart earphones with a lot of sensors in them. Below is a quick example how to get data from the heart rate sensor and send it to IBM Bluemix. This functionality could be used, for example, to track health of factory workers or patients in hospitals.
I open sourced the code on GitHub.
At this point the controller is running on a MacBook (when the device will expose more sensor data, I’d like to provide a sample mobile app). The controller talks to The Dash
Meet Bluemix at JAX 2016|
Wed, Apr 6th 2016 4:33a Niklas Heidloff
From April 19th until 21st my colleagues David Barnes, Ryan Baxter, James Thomas and I will attend JAX in Mainz/Germany to present IBM Bluemix and to talk with developers. JAX is a developer conference with around 2000 attendees with a focus on Java, architecture and software innovation. I attended JAX and W-JAX last year and based on my positive experience I’m sure it will be a great conference again.
David, Ryan, Thomas and I will give sessions related to the cloud, IoT and Docker. The
My Thoughts on the Next Generation of IBM Domino App Dev|
Tue, Apr 5th 2016 6:26a Niklas Heidloff
Before I started to work on Bluemix I had worked 15 years in the IBM Collaboration Solutions space, especially on application development. Below are my personal thoughts on how app dev in IBM Domino could evolve, both on-premises and in the cloud.
App Dev Models in Domino
Since Domino has been around for a long time the app dev capabilities have grown. At this point there are developers who build rich client applications via forms and views, there are developers who use Domino pass through HTML,
EngageUG Session: How to build Line of Business Applications with Bluemix|
Wed, Mar 23rd 2016 2:56a Niklas Heidloff
Tomorrow I’ll give a session at EngageUG with the title “Live on the Edge of Innovation with IBM Bluemix”. Bluemix is IBM’s innovation platform which supports developers to write new applications and functionality easily and fast without having to worry about infrastructure.
There is a ton on innovative services, runtimes and capabilities in Bluemix. In my session however I’ll focus on one aspect which is how to build collaborative Line of Business applications.
Tools for Node.js Developers on Bluemix|
Tue, Mar 22nd 2016 5:59a Niklas Heidloff
IBM Node.js Tools for Eclipse (beta)
With this Eclipse plugin developers get several tools to build Node applications. For example npm install can be triggered and applications can be launched directly from the IDE (including debug mode).
Here is a screenshot of the wizard to create new projects based on Express or LoopBack.
There is also JavaSc
Developing Offline Capable Mobile Apps with LoopBack|
Mon, Mar 21st 2016 12:09p Niklas Heidloff
Today I looked briefly into some experimental functionality of the LoopBack framework to develop offline capable mobile apps. I’d like to add this functionality to my sample of the CLEAN stack (Cloudant, Express, LoopBack, AngularJS, Node) which comes with (hybrid) mobile apps built via AngularJS, Ionic and Cordova.
There is a nice video describing this functionality. In a nutshell data is stored in HTML Local Storage in browsers. The data synchronization is done on the business logic leve
How to trigger OpenWhisk Actions on Cloudant Databases Changes|
Thu, Mar 17th 2016 6:23a Niklas Heidloff
Let’s use the same scenario as previously. In a help desk application you want to translate tickets which have not been written in English to English so that support agents understand. Rath
Wed, Mar 16th 2016 4:33a Niklas Heidloff
In addition to Cloud Foundry, Docker and Virtual Maschines Bluemix provides a fourth compute option OpenWhisk (experimental at this point). OpenWhisk is an event-driven compute platform that executes code in response to events or direct invocations.
IBM Bluemix Demo with Anki Overdrive Cars|
Mon, Mar 14th 2016 11:54a Niklas Heidloff
Last week at JavaLand the Anki Overdrive demo was perceived pretty well and I’d like to demo it at other conferences this year as well. Obviously it’s much more impressive to see live demos with the actual devices, but if we won’t meet, I put together a deck with photos and screenshots and an architecture slide.
Here is the series of blog articles about this demo.
Collision Prevention for Anki Overdrive Cars with Bluemix
Steering Anki Overdrive Cars via Speech
Pictures from Bluemix at JavaLand|
Thu, Mar 10th 2016 4:26a Niklas Heidloff
This week David Barnes, James Thomas and I attended JavaLand and presented IBM Bluemix. As last year it was a very good conference with high quality sessions and we had a lot of great discussions with developers. Below are some pictures.
Our Bluemix booth:
The team from left to right: James Thomas, David Barnes, Niklas Heidloff
We demonstrated Anki Overdrive cars connected to Bluemix to steer the cars via speech and gestures.
We gave out two GoPro cameras. This is a photo of the first prize d
Integrating Watson Dialog into Minecraft on Bluemix|
Mon, Mar 7th 2016 2:55a Niklas Heidloff
In an earlier article I wrote about how to use the Watson Personality Insights service in Minecraft. The sample was based on the work from my colleagues Kyle Brown, Joseph Kozhaya and Srinivas Cheemalapati who had documented how to run Minecraft servers as Docker containers on Bluemix. Recently they updated their documentation and added how to use the Watson Dialog service.
For my Docker session at JavaLand this week, I thought it would be fun to kick off the session with a Minecraft sample: Rap
How to deploy and run Swift Kitura Applications with Docker|
Thu, Mar 3rd 2016 3:36a Niklas Heidloff
At InterConnect IBM announced and demonstrated various ways to run Swift code on the server. You can use the Swift runtime in Bluemix (Cloud Foundry buildpack), you can use the Swift Sandbox, you can write event based logic with OpenWhisk and you can run Swift in Docker containers on Bluemix. With these capabilities iOS developers can now write server side code in the same language used for mobile apps.
In order to build REST APIs with Swift you need a web framework. For Node.js applications typ
Wed, Mar 2nd 2016 10:29a Niklas Heidloff
How to consume Bluemix Services in LoopBack Applications|
Wed, Mar 2nd 2016 4:28a Niklas Heidloff
With the LoopBack framework you can easily build REST APIs for your own business objects, you can build web and mobile clients and much more. The LoopBack backend applications and the AngularJS web clients can be hosted on Bluemix. Additionally Bluemix services can be consumed, for example the cognitive Watson services. Below is a sample how this works.
Get the code of the sample application from GitHub.
When Bluemix services are created and bound to Bluemix applications, they provide credential
How to write Mobile Apps for LoopBack Applications|
Tue, Mar 1st 2016 2:20a Niklas Heidloff
Download the sample application from GitHub.
In AngularJS applications you typically build views that interact with services via controllers. The services access data from t
How to write AngularJS Frontends for LoopBack Applications|
Mon, Feb 29th 2016 3:23a Niklas Heidloff
Download the sample application from GitHub.
In AngularJS applications you typically build views that interact with services via controllers. The services access data from the server-side applications. Obviously you can write your own services which invok
Authorization in LoopBack Applications on Bluemix|
Wed, Feb 24th 2016 3:05a Niklas Heidloff
The Node.js framework LoopBack supports authorization for models (business objects) via roles on both application level and object level. This is, for example, important in business applications where only people with certain roles have access to certain documents. Below is a sample how to use this functionality.
Download the sample application from GitHub.
The sample uses test users defined in a Cloudant database by default, but you can change it easily to authenticate against the Single Sign O