| 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
Customization of REST APIs in LoopBack Applications|
Tue, Feb 23rd 2016 3:27a Niklas Heidloff
LoopBack creates automatically REST APIs for custom models (business objects) that are persisted. While this is helpful to get started quickly, for example in proofs of concepts or first iterations, the final APIs often have to be customized. LoopBack provides various ways to achieve this.
When I looked briefly at LoopBack for the first time a couple of weeks ago, my initial concern was that I don’t want to expose the ‘schema’ of my databases as REST APIs via the out of the box
Authentication in LoopBack Applications against Bluemix|
Mon, Feb 22nd 2016 3:29a Niklas Heidloff
The Node.js API framework LoopBack supports third-party logins to authenticate users and to link accounts. This article describes how to authenticate from LoopBack applications against the Single Sign On service in Bluemix so that you can leverage existing enterprise directories.
Get the code from GitHub.
The Single Sign On service supports different identity providers. For example enterprise customers typically use SAML. If customers don’t have an SAML identity provider, they can install an I
Samples to get started with Cognitive Watson Services|
Fri, Feb 19th 2016 1:49a Niklas Heidloff
Over the last weeks I had to pleasure to investigate most of the Watson services on Bluemix. Below is a series of articles I published over the last weeks. In the articles I describe the different services, most of the times by providing simple samples including code snippets and screenshots.
Overall I really like the developer experience of the Watson services and how easy it is to embed cognitive functionality in your own applications. The last versions of some of the services can now be train
Usage of Cloudant in LoopBack|
Thu, Feb 18th 2016 4:02a Niklas Heidloff
The Node.js framework LoopBack supports multiple connectors for various data sources. Below is a sample how to use the Cloudant NoSQL database in Bluemix.
Check out the sample code on GitHub. It shouldn’t take longer than 15 minutes to set up the sample application. The sample uses basically a CLEAN stack with Cloudant, LoopBack, Express, Angular and Node.
After you’ve created the Cloudant service on Bluemix you get your own credentials. The credentials are stored in environment vari
Creating Business Objects and REST APIs with LoopBack|
Wed, Feb 17th 2016 4:00a Niklas Heidloff
Recently I’ve developed samples with LoopBack which is a very powerful Node.js framework. Over the next days/weeks I’ve planned to blog about LoopBack in more detail, especially how it can be used in the context of Bluemix. Below is a simple sample how to create business objects for which LoopBack provides persistence and REST APIs.
Here is a high level description of LoopBack from their website:
LoopBack is a highly-extensible, open-source Node.js framework.
Quickly create dynamic
Authorization of Node.js Applications in Bluemix|
Mon, Feb 15th 2016 4:00a Niklas Heidloff
As for authentication there are various ways to handle authorization in Node.js applications on Bluemix. Below is an example how to use the Node module acl. With this module you can use roles for authorization, both on application and even document level.
You can download the source code from GitHub and try the demo yourself. Follow the steps in the README and check out the screenshots.
In the sample two users log in against the Bluemix Single Sign On service. One user gets the role ‘admin
Customization of Authentication Pages in Bluemix|
Wed, Feb 10th 2016 3:08a Niklas Heidloff
With the Single Sign On service on Bluemix users can be authenticated against various directories, for example via SAML. A default set of pages is provided so that users can log on or change their passwords with an out of the box user interface. The pages can also be customized for your own branding and design.
Authentication in Node.js Applications on Bluemix|
Tue, Feb 9th 2016 3:03a Niklas Heidloff
There are different ways how to do authentication in Node.js applications running on Bluemix, either via Bluemix services, third party offerings, open source libraries or self written code. Below is a sample that leverages the Single Sign On service and a Mongo database to store user sessions for cloud native applications.
Get the code from GitHub.
The Single Sign On service supports different identity providers. For example enterprise customers typically use SAML. If customers don’t have
Meet Bluemix at JavaLand 2016|
Mon, Feb 8th 2016 4:06a Niklas Heidloff
Next month on March 8th and March 9th JavaLand will take place in the theme park Phantasialand in Cologne, Germany. After our positive experience last year, IBM sponsors JavaLand again this year. My colleagues David Barnes and James Thomas and I will present IBM Bluemix at our booth and in sessions.
At our booth you can not only learn about Bluemix, but we will also have two lotteries on Tuesday and Wednesday where people can win two GoPro Hero Black 4 cameras: 4:50 PM on March 8th and 3:50 PM o
News Analysis via AlchemyAPI for Topics, Companies and People|
Wed, Feb 3rd 2016 2:10a Niklas Heidloff
The AlchemyAPI service on Bluemix provides an API to access news and blog content from the last 60 days enriched with meta information like sentiments and entities identified through natural language processing. This allows, for example, to build applications focussed on trend analysis for certain topics, companies or people.
The AlchemyData News API indexes 250k to 300k English language news and blog articles every day and stores the last two months. The News API uses internally several of the
Samples of the Watson Tradeoff Analytics Service|
Tue, Feb 2nd 2016 3:15a Niklas Heidloff
The Watson Tradeoff Analytics service on Bluemix helps users to make decisions when balancing multiple conflicting goals. Below are a couple of samples which demonstrate the functionality of this service.
When buying technical devices I typically compare similar devices and then decide which one to buy. To find similar devices I often use filtering mechanisms that e-commerce sites provide. In some cases these sites also support comparing items by displaying tables. But static tables are not opti
Text Analysis via AlchemyAPI to identify Entities, Concepts and Sentiments|
Mon, Feb 1st 2016 5:15a Niklas Heidloff
With the AlchemyAPI service on Bluemix provides multiple AlchemyLanguage APIs that offer text analysis through natural language processing. Below are some samples that show how to extract entities and concepts and how to understand sentiments.
AlchemyLanguage provides 12 different APIs to analyze text. The APIs can be invoked separately or via a combined call to optimize network requests. Here is a quick sample how to invoke the service to find entities, concepts and sentiments for my last blog
Fun Worker Safety Demo leveraging the Watson IoT Platform|
Thu, Jan 28th 2016 11:50a Niklas Heidloff
Here is a nice demo of the IBM Watson Internet of Things platform. My colleague John Cohn led the creation and Travis Siegfried is presenting it.
The worker Bob, the builder, wears an intelligent helmet with an accelerometer and temperature, sound and oxygen sensors. The data is sent to the IBM IoT cloud and analyzed to observe the health of workers. Watch the one minute video for a demo.
You can you find other cools demos from John on his website. I like especially the video “Innovation
Customizing the Watson Language Translation Service|
Thu, Jan 28th 2016 3:31a Niklas Heidloff
With the Watson Language Translation service in Bluemix you can translate from and to English, French, Portuguese, Arabic, Spanish and Egyptian. To optimize the translations you can customize the service for your own domains. Below is a simple example.
Let’s say you want to translate news about your products. You can use the out of the box translation capabilities based on the pre-defined news corpus for most text. However for your product names you often need to customize the service to t
Simple Sample of the Watson Document Conversion Service|
Wed, Jan 27th 2016 9:33a Niklas Heidloff
With the Watson Document Conversion service on Bluemix PDF, Word and HTML documents can be converted into HTML, plain text or JSON. The converted documents can be used as input to other Watson services like Concept Insights and Retrieve and Rank.
In my concept insights sample I’ve used the service to convert the downloaded HTML files into JSON. From the JSON the title and body fields were extracted and uploaded to the concept insights service. Check out the Python script convert.py file to
Watson Concept Insights Sample for Eclipse FAQ|
Mon, Jan 25th 2016 3:34a Niklas Heidloff
My colleague Hiroaki Komine and I’ve open sourced a sample that shows how to use the Watson Concept Insights service and the Watson Document Conversion service on Bluemix to improve search results for the Eclipse FAQ.
Rather than limiting findings to traditional text matching, Concept Insights explores information based on the concepts behind your input. Let’s use the Eclipse FAQ and the email client Lotus Notes as an example. Lotus Notes leverages the Rich Client Platform from Eclip
Sample of the Watson Tone Analyzer for WordPress|
Thu, Jan 21st 2016 5:45a Niklas Heidloff
With the Watson Tone Analyzer service on IBM Bluemix you can discover, understand, and revise the language tones in text before you publish, send or share it. Below is a little sample how to invoke the service from WordPress via a simple Chrome extension.
Next the extension open
Steering Anki Overdrive Cars via Leap Motion Gestures and Bluemix|
Wed, Jan 20th 2016 9:41a Niklas Heidloff
Here is another example how to steer Anki Overdrive cars via IBM Bluemix. In addition to a local controller, Watson speech recognition and a Kinect I’ve added gesture recognition via Leap Motion.
The sample is available as open source on GitHub. The project contains sample code that shows how to send MQTT commands to IBM Bluemix when gestures are recognized via Leap Motion.
Right now four gestures can be recognized: swipe left, swipe right, screen tap and circle. The best way to explain th
Steering Anki Overdrive Cars via Kinect and Bluemix|
Mon, Jan 18th 2016 3:08a Niklas Heidloff
I’ve open sourced a sample showing how to steer Anki Overdrive cars via Kinect and IBM Bluemix. The sample requires the Node.js controller and MQTT interface that I had open sourced previously. The sample is another alternative showing how to send commands to the cars in addition to Watson speech recognition.
Check out the project on GitHub.
The project contains sample code that shows how to send MQTT commands to IBM Bluemix when ‘buttons’ are pressed via Kinect. Buttons are pr
Steering Anki Overdrive Cars via Speech Recognition on Bluemix|
Wed, Jan 13th 2016 3:25a Niklas Heidloff
I’ve extended the Anki Overdrive demo so that you can steer the cars via voice. I’ve used a combination of the Watson Speech to Text service and the Watson Natural Language Classifier service on Bluemix to implement this. All of this is available as open source.
To convert speech to text an extended version of the Watson Speech to Text sample is used so that received text (which is marked as ‘final’) can be sent via MQTT to the Internet of Things foundation.
The Watson S
Sample of the Watson Retrieve and Rank Service|
Tue, Jan 12th 2016 10:15a Niklas Heidloff
I spent some time to understand the Watson Retrieve and Rank service. Below are some findings that might help people to learn about the power of this cognitive service that is available in IBM Bluemix.
Here is the description of the service from the Watson Developer Cloud:
This service helps users find the most relevant information for their query by using a combination of search and machine learning algorithms to detect ‘signals’ in the data. Built on top of Apache Solr, developers
Customization of Node-RED on Bluemix|
Mon, Jan 11th 2016 4:26a Niklas Heidloff
Bluemix provides starters to deploy Node-RED on Bluemix so that, for example, you can easily start creating flows for Internet of Things scenarios. In some cases however you might want to change the home page of your application, enforce authentication, add more nodes, change configuration files or set up your own default flows. Below is a short description how to do these types of customization.
On GitHub there is a project called Node-RED Bluemix Starter Application which is very similar to wh
Collision Prevention for Anki Overdrive Cars with Bluemix|
Fri, Jan 8th 2016 3:24a Niklas Heidloff
I’ve built a demo that shows how Anki Overdrive cars can be controlled from IBM Bluemix. Commands can be sent from the cloud to the cars, for example in order to set the speed, and the messages from the cars, for example location data, are sent to the cloud, so that you can prevent the cars driving on the same lanes.
I’ve open sourced the demo on GitHub. In order to run the demo yourself, you need in addition to the Anki Drive Starter Kit MacBooks or notebooks to run Node.js applicat
Analyzing the Personalities of Minecraft Players with Watson|
Wed, Jan 6th 2016 3:24a Niklas Heidloff
Over the holidays I looked briefly into how to extend Minecraft and how to utilize Bluemix. In multiplayer games it might make sense to understand the personalities of competitors or to understand the personalities of players when forming teams. The Watson Personality Insights service might help.
My colleagues Kyle Brown, Joseph Kozhaya and Srinivas Cheemalapati have written a great four parts series Create cognitive plugins for Minecraft with Bluemix, Docker, and Watson. Their introduction expl
Top Five Bluemix Articles on heidloff.net in 2015|
Mon, Dec 21st 2015 2:20a Niklas Heidloff
2015 has been a great year for me. I had the pleasure to work as developer advocate for an innovative technology, I could attend lots of developer conferences, had the opportunity to build cool apps and could share a lot of what I had learned on my blog. Most importantly I had and have the privilege to work in an awesome team, the IBM Emerging Technologies organization.
Below are three Top Five lists with the most popular articles on my blog, with my personal favorites and with the most popular
Tue, Dec 15th 2015 3:29a Niklas Heidloff
Below is a simple example which is the same scenario that I implemented with the API Management service. In or
Thumbs Up for Watson’s Visual Recognition Service|
Mon, Dec 14th 2015 2:32a Niklas Heidloff
Watson’s Visual Recognition (beta) service on Bluemix understands the contents of images. Since the beginning of this month you can train this service with your own classifications. Below is a simple sample how to train Watson to recognize the thumbs up gesture.
This functionality could be used for example in the selfie drone scenario to steer drones using gestures and not only via web user interfaces and speech recognition. There are many more scenarios where this service could be valuabl
Building Cognitive Question and Answer Systems via Bluemix|
Wed, Dec 9th 2015 2:08a Niklas Heidloff
IBM Watson provides services to enable cognitive functionality in your own applications. In this article I describe on a high level how to ‘mix’ some of these services to build question and answers systems.
Watch this two minutes video for a sample scenario of the cognitive question and answer system “Pepper, the robot”.
In order to build question and answer systems you can use Watson services as described by Rahul A. Garg. For speech input and output Watson and IBM Bluem
Simple Sample of the Watson Dialog Service in Bluemix|
Tue, Dec 8th 2015 3:26a Niklas Heidloff
With the IBM Watson Dialog service on Bluemix developers can build applications using natural language to automatically respond to user questions, for example functionality to help users to reset their passwords. Below is a simple sample demonstrating how this service works.
Via the dialog users can enter a topic they are interested in to see recent tweets with a positive or negative sentiment. The tweets are received via the Insights for Twitter service.
The dialog is defined via XML. There is
Classify Natural Language without a Background in Machine Learning|
Mon, Dec 7th 2015 3:15a Niklas Heidloff
With the Natural Language Classifier Watson service in IBM Bluemix developers can classify natural language so that, for example, you can build a virtual agent application that answers common questions. Below is a simple sample how you can use this service.
Here is a description on the service: “The service enables developers without a background in machine learning or statistical algorithms to create natural language interfaces for their applications. The service interprets the intent beh
Building an Apache Kafka Messaging Consumer on Bluemix|
Thu, Dec 3rd 2015 2:13a Niklas Heidloff
The Message Hub service on Bluemix is based on Apache Kafka, which is a fast, scalable, and durable real-time messaging engine. For developers there are Java, Node and REST APIs to leverage Kafka. Yesterday I blogged about how to write a simple Kafka producer in Node.js. This article covers the counterpart – a Kafka consumer.
To understand how consumers work in Kafka I recommend reading the Kafka documentation. Essentially you define consumer groups with potentially multiple consumer insta
Building an Apache Kafka Messaging Producer on Bluemix|
Wed, Dec 2nd 2015 3:43a Niklas Heidloff
Apache Kafka is a high-throughput distributed messaging system which is getting a lot of attention these days. There is good documentation available that describes Kafka’s functionality and benefits as well as comparisons to other technologies like RabbitMQ. As quick start I suggest to read the Kafka introduction and to watch this video.
Messaging systems have the benefit of decoupling the processing of data (consumers) from the data producers and with Kafka you can scale the consumers eas
One Year of Bluemix.info|
Tue, Dec 1st 2015 3:16a Niklas Heidloff
One year ago I launched Bluemix.info, a news aggregator for Bluemix developers. Over the last year I’ve published 1004 links to Bluemix related articles written by 279 people. Many Bluemix developers read Bluemix.info frequently, I’ve received a lot of positive feedback and the Bluemix feed was integrated in the official Bluemix blog site.
Since yesterday however Bluemix.info is not online anymore. There are multiple reasons for it. One reason is that there are other ways now to find
Assembling REST APIs with the API Management Service on Bluemix|
Mon, Nov 30th 2015 2:28a Niklas Heidloff
With the API Management service in Bluemix you can easily manage and monitor APIs. The service can be used as proxy to API implementations where the APIs exposed via the service to developers and the interfaces of the underlaying implementations are essentially identical. Additionally you can assemble new APIs declaratively via a web interface and invoke multiple REST APIs internally before the results are sent to the applications.
This functionality is useful in different scenarios. For example
Deploying APIs built via Node.js to IBM Bluemix|
Tue, Nov 24th 2015 11:47a Niklas Heidloff
In my previous article I described how to use Swagger to document APIs in Node.js applications via a simple hello world sample. Below I demonstrate how to deploy the same sample to Bluemix via Docker and how to use the API Management service to enforce client ids and secrets when invoking the APIs so that API owners can monitor the usage of their APIs.
Deploying Node.js Applications to IBM Bluemix as Docker Containers
First you need to add a Dockerfile to your project’s root directory. The
Usage of Swagger in Node.js Applications to document APIs|
Tue, Nov 24th 2015 3:45a Niklas Heidloff
Last week I described how to use Swagger in Spring Boot applications to document APIs. Below is a quick overview how to do this in Node.js applications.
As I wrote earlier I like the model to document APIs directly in the source code where the APIs are implemented. This helps developers to always remember to keep the implementation and the documentation of APIs in synch and it creates awareness for upwards compatibility of APIs. You can use this approach not only for Java applications but also f
Developer Perspective on Cloud Foundry vs Docker on Bluemix|
Mon, Nov 23rd 2015 5:06a Niklas Heidloff
IBM Bluemix supports different ways to package applications and to deploy and run them in the cloud (“compute options”). Developers can choose between Cloud Foundry and Docker. The two models have certainly similarities, for example they are both open and widely adopted, but there are also significant differences. Below I describe some of these differences as well as pros and cons from a consumer point of view.
Cloud Foundry – Open Source Platform as a Service
Cloud Foundry is
Management of APIs with IBM Bluemix|
Wed, Nov 18th 2015 9:56a Niklas Heidloff
In the previous blog entries I described how to develop and document REST APIs with Spring Boot and Swagger and how to deploy Spring Boot applications to Bluemix as Docker containers. Below I go one step further and explain how to manage and monitor APIs on IBM Bluemix via the API Management service.
With the API management service you can manage your APIs without having to write this functionality yourself and redundantly directly in the API implementations. For example you can define how to ha
Deploying Spring Boot Applications to Bluemix as Docker Containers|
Wed, Nov 18th 2015 5:19a Niklas Heidloff
In the previous blog entry I described how to document REST APIs in Spring Boot applications via Swagger. Below I explain how to deploy these applications as Docker containers to IBM Bluemix. As example I use again the Spring REST sample.
In the Dockerfile (in the project root directory) define how to build the Docker image.
ADD target/gs-rest-service-0.1.0.jar app.jar
RUN bash -c 'touch /app.jar'
Usage of Swagger 2.0 in Spring Boot Applications to document APIs|
Tue, Nov 17th 2015 4:32a Niklas Heidloff
As IBM VP Angel Diaz stated in an interview on SearchCloudComputing “Swagger is the way most developers describe [REST] APIs”. With version 2.0 many important features like extensibility have been added, there is a big community and many developers are using it by now. Additionally there is work going on to create an open governance model around the Swagger specification under the Linux Foundation as part of the Open API Initiative. What I like most about Swagger is the ability to do
Moved my Blog to WordPress|
Mon, Nov 16th 2015 9:00a Niklas Heidloff
Over the weekend I migrated my blog to WordPress. This allows me to benefit from the huge amount of themes and plugins, for example to display source code. While I still want to tune a couple of things, I’m glad I’m (almost) done since the migration wasn’t as fast as I had hoped.
To move the content I used the HTML Import 2 plugin. The main reason I chose this plugin was because it handles images. I built a simple XPage that displays only the HTML of the core entry and save it
Configuration of the ibmliberty Image on Bluemix to display Logs|
Thu, Nov 12th 2015 3:47a Niklas Heidloff
IBM Bluemix provides a set of Docker images in the catalog to help developers to get started. Below is a short description how to configure the ibmliberty image to see the logs in the Bluemix dashboar ...
Configuration of the ibmliberty Image on Bluemix to display Logs|
Wed, Nov 11th 2015 7:00p Niklas Heidloff
IBM Bluemix provides a set of Docker images in the catalog to help developers to get started. Below is a short description how to configure the ibmliberty image to see the logs in the Bluemix dashboards and the CLIs.
The ibmliberty image is an extension of the websphere-liberty image on DockerHub. The ibmliberty image adds an SSH server to support remote access and it enforces compliance with the IBM Vulnerability Advisor. In contrast to the base image Liberty is run via supervisor.
As a result
Deployments of Hybrid Applications as Docker Containers with IBM UrbanCode on Bluemix|
Wed, Nov 11th 2015 11:02a Niklas Heidloff
IBM Bluemix provides built in DevOps services to manage source code and to build, test and deploy applications to Bluemix. This works well for many scenarios, esp. when deploying single applications t ...
Deployments of Hybrid Applications as Docker Containers with IBM UrbanCode on Bluemix|
Tue, Nov 10th 2015 7:00p Niklas Heidloff
IBM Bluemix provides built in DevOps services to manage source code and to build, test and deploy applications to Bluemix. This works well for many scenarios, esp. when deploying single applications to Bluemix via delivery pipelines. For more complex scenarios IBM provides the Continuous Delivery toolset UrbanCode to deploy hybrid applications to the cloud and on-premises and to deploy composite applications with multiple components or microservices.
In this blog entry I focus on how to deploy
Video (in German) - Rapid Application Development with Docker|
Tue, Nov 10th 2015 3:25a Niklas Heidloff
At code.talks I gave a session Rapid Application Development in the Cloud and On-Premises with Docker. Below is the recording of my German session. You can find my slides on Slideshare and other ses ...
Video (in German) – Rapid Application Development with Docker|
Mon, Nov 9th 2015 7:00p Niklas Heidloff
At code.talks I gave a session Rapid Application Development in the Cloud and On-Premises with Docker. Below is the recording of my German session.
You can find my slides on Slideshare and other session recordings on the code.talks YouTube channel.
The location of the conference was a cinema and my colleague Jonathan Kaufman explains why all developer conferences should be held in cinemas.
Pictures from IBM Bluemix at W-JAX|
Mon, Nov 9th 2015 4:30a Niklas Heidloff
Last week James Thomas, Jonathan Kaufman, Soheel Chughtai, Swati Goel and I attended W-JAX in Germany. W-JAX is a conference for enterprise developers with 1200 attendees with a packed agenda. The q ...
Pictures from IBM Bluemix at W-JAX|
Sun, Nov 8th 2015 7:00p Niklas Heidloff
Last week James Thomas, Jonathan Kaufman, Soheel Chughtai, Swati Goel and I attended W-JAX in Germany. W-JAX is a conference for enterprise developers with 1200 attendees with a packed agenda.
The quality of the sessions and speakers overall was great. Our team gave three sessions and there was a lot of interest in IBM Bluemix. Soheel Chughtai gave a keynote about IBM Watson and services in Bluemix.
I did a session about Docker in the cloud and on-premises and James Thomas did a great session
Mobile Apps Monitoring with IBM Bluemix|
Tue, Oct 20th 2015 8:00p Niklas Heidloff
One of the great capabilities of Bluemix is that developers can see information about how their mobile apps are used in a server side dashboard. This includes usage statistics, network traffic and devices types as well as client side logs. Being able to see logs from all mobile devices is very useful since physical access to devices is obviously hard and sometimes not possible.
In order to use this functionality Bluemix provides the Mobile Client Access service and SDKs for iOS, Android and hyb
Video of Cognitive Bluemix Application and Conversational Computing|
Mon, Oct 19th 2015 8:00p Niklas Heidloff
Earlier this month Ginni Rometty spoke about the importance of cognitive computing and IBM’s bet on the the Cognitive Era. Cognitive computing enables more natural interactions of people with technology, cognitive computing is intelligent turning raw data into information considering contexts like user intentions, locations and preferences and cognitive computing allows people to discover important information quickly based on a big set of available data. In other words: Cognitive computin
Visually develop REST APIs in Node and monitor them on Bluemix|
Tue, Oct 6th 2015 8:00p Niklas Heidloff
Last month IBM acquired StrongLoop, a company that provides functionality to power the API economy via Node in enterprises. Specifically StrongLoop provides capabilities to develop REST APIs in Node.js, access them easily from various clients including mobile apps and manage and monitor them in enterprises. Below is a high level description and some resources how you can use these features on IBM Bluemix.
In the easiest case REST APIs can be developed visually using a web tool called StrongLoop
Access to Bluemix Applications via Command Line|
Mon, Oct 5th 2015 8:00p Niklas Heidloff
During the development and testing of applications it’s sometimes necessary to get access to the hosts of the running applications via command line, for example if you want to check or set certain environment variables, log files, etc. Dependent on whether you run applications as Cloud Foundry applications or Docker containers IBM Bluemix provides different mechanisms to do this.
For Docker you can SSH into containers. Read the documentation for details. Essentially you need an
Rapid Application Development in the Cloud and On-Premises with Docker|
Sun, Oct 4th 2015 8:00p Niklas Heidloff
At code.talks I gave a session Rapid Application Development in the Cloud and On-Premises with Docker. Below are the slides.
In the first part I gave some background why containers are important in general and a quick introduction to Docker. After this I gave some demonstrations and the deck contains screenshots of these demos.
1) Build Docker images and run containers locally: Slide 11ff 2) Push images to Bluemix manually and run and monitor containers: Slide 22ff 3) Deploy applications
Bluemix at code.talks|
Wed, Sep 30th 2015 8:00p Niklas Heidloff
This week my colleagues James Thomas, Jonathan Kaufman, Tristan Reckhaus and I attended code.talks in Hamburg, Germany. code.talks is a developer conference with 1500 attendees covering various topics around web application development. We presented IBM Bluemix at our booth and in a session. I enjoyed the conference and had a lot of great conversations with other developers. Below are some impressions.
The conference was held in a cinema.
My session Docker in the cloud was in a big room wi