| Recent Blog Posts
Quick Update: Excited to work as Developer Advocate again|
Mon, May 22nd 2017 1:54p Niklas Heidloff
Over the last year I’ve worked on a very interesting internal project. I’ve learned a lot about conversational experiences and it was a lot of fun. Most importantly I enjoyed working with great people in the Emerging Technologies organization.
Recently a new opportunity has come up and I’m happy to share that I will work as developer advocate again! I will be part of an international organization of advocates and will focus on developers in Germany, Austria and Switzerland. Tec
My Advice: Don’t use Angular 2+ without Redux|
Thu, Apr 13th 2017 6:34a Niklas Heidloff
Recently I have used Angular 2+ in one of my projects. There are many things I like about Angular like dependency injections, TypeScript, etc. One thing that gave me a hard time was to understand Angular’s change detection strategy. Below is a quick tip how to use Angular without having to worry (too much) about how to refresh your components.
One of the design goals of Angular 2 was to provide better performance than AngularJS which is why new features were added to reduce changes to the
Invoking OpenWhisk Actions from Angular 2 Apps|
Tue, Apr 11th 2017 2:14p Niklas Heidloff
In my last blog entry I documented how to deploy Angular 2+ apps to Bluemix via the HTTP server nginx. All that server does it to host the static files. Below I describe how to use OpenWhisk actions for server-side business logic that can be invoked from Angular apps.
In order to avoid cross origin security errors proxy servers need to be used. Fortunately both the local web server that is installed via the Angular CLI and nginx can be configured as proxies.
I’m using the same simple app a
Deploying Angular 2 Apps to Bluemix|
Tue, Apr 11th 2017 8:01a Niklas Heidloff
Over the last months I’ve done quite a lot of Angular 2 development (now Angular 4). Below is a description how to create a new Angular app and deploy it as Docker container to Bluemix in just a few minutes.
In order to create a new Angular app you can use the Angular CLI.
npm install -g @angular/cli
ng new angular-app
ng build --prod
There are several ways to deploy Angular apps to Bluemix. For example you can build a simple Node.js web server to host the files. Or y
Running the Sample App BlueChatter on Kubernetes|
Mon, Apr 10th 2017 3:56p Niklas Heidloff
Since last month Bluemix supports Kubernetes (beta) which many people consider the de-facto standard for orchestrations of containers. Some of the older and simpler Bluemix sample applications use docker-compose. Below is a description how to run those examples on Kubernetes.
Essentially the docker-compose file needs to be converted to a Kubernetes yaml file. As example I use the chat application BlueChatter. The sample is a Node.js application that leverages Redis to store session data. The fil
Orchestrating Docker Containers with Kubernetes|
Fri, Apr 7th 2017 1:37p Niklas Heidloff
Last month IBM announced the beta of Kubernetes support in the IBM Bluemix Container Service. Below is a short introduction to Kubernetes and a short description how to get started using Kubernetes on IBM Bluemix.
In a nutshell Kubernetes allows running and managing cloud native apps that consist of multiple containers. To get started you need to know some terminology. For example a ‘Deployment’ contains ‘Pods’ that can contain multiple Docker containers (but typically co
Using IBM Watson Discovery to query Unstructured Data|
Wed, Apr 5th 2017 7:32a Niklas Heidloff
In my previous blog entry I described how to use Watson Knowledge Studio to create models to identify information in unstructured data. These models can be used by the Watson services and offerings Watson Discovery, Watson Explorer and Watson Natural Language Understanding. Below is a quick intro how to use Watson Discovery to query unstructured data.
Watson Discovery is a service to extract value from unstructured data by converting, normalizing and enriching it. In order to use it you first ne
Understanding Natural Language Text via Watson Knowledge Studio|
Tue, Apr 4th 2017 2:10p Niklas Heidloff
One of the newer IBM Watson offerings that I really like is Watson Knowledge Studio. It basically allows identifying information in unstructured data. Below is a quick overview of the Knowledge Studio functionality.
Watson Knowledge Studio is not a Bluemix service but an SaaS offering to create models for custom corpora of data that can actually be deployed and used in other Watson services (more about this in another blog). These models are either machine-learning models which work more generic
Getting started with Tensorflow on IBM Bluemix|
Mon, Apr 3rd 2017 4:11p Niklas Heidloff
In order to learn Deep Learning I’ve taken an Udacity course that I can highly recommend. One reason I took that course was because I also liked the Udacity machine learning courses. Another reason was because I wanted to learn Tensorflow which to me looks like the most popular deep learning library right now.
Below is the YouTube playlist of the course. The assignments can be run locally via Docker.
Another good starting point to learn Tensorflow is the video “Tensorflow and deep l
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