I recently had to look at an option for user management, authentication, and security. I was aware of what IBM Cloud App ID was but I never dug into the details.
In this video I extend my visual recognition models to include more samples and now two teams. Let’s see how the results are with over 100 samples in each class identifier.
The IBM Cloud, previously know as IBM BlueMix, seems to be getting a lot of press lately. More and more of our commerce customers are asking about Watson and this development platform. The platform has been greatly expanded over the past few years and is now considered a first class cloud development platform. As outlined here, this has turned into $15 Billion of revenue for IBM and seems to be growing each quarter. The IBM Cloud is now ranked in the top 5 cloud platforms by Bob Evans, displacing Google and Oracle and Bob seems to hint it will probably be moving further up the list. It is no coincidence that one of the key elements to this platform is Watson and the cool API’s it brings to the table. I am seeing some amazing integrations being done into existing applications with some of these Watson API’s. But what is more interesting is the full life cycle development a team can do 100% in the cloud.
Working with REST services can be extremely error prone. You could have latency, network failures, or at worse case even total down time. I have been writing a lot of code as of late that requires extreme error handling and graceful failing when dealing with remote REST services and in general web calls – like parsing or loading external web sites for DOM evaluation as an example. The issue is you can’t trust the performance or even trust the service is even available and knowing what methods are failing or causing the bottlenecks could be extremely cumbersome. You could implement network profilers to capture what is going on, or, you could implement a CircuitBreaker design pattern and take control of your calls yourself.
Welcome the Circuit Breaker design pattern. This pattern allows you to monitor a specific function call and “break” gracefully if it has taken too long or even fails. This is usually symptomatic with asynchronous calls that may require calling other code on completion, fail, or timeout. Methods like jQueries ajax where you supply the various error, complete, and done methods work great and even languages like Swift and Java have similar callbacks but it lacks data around the calls. The CircuitBreaker design pattern will make your code easier to follow for race conditions and it can even track statistics around the calls…
If you are a Swift programmer you can check out the Swift CircuitBreaker project on GitHub. It has complete documentation and makes using this design pattern very easy and straightforward.
Now, what sets this package apart in my opinion is it also gives a large set of statistics around the calls. Capturing how long calls take (latency), how many successes, failures, and even average response times. From an SLA perspective this is great! You can then quickly identify what remote calls to “other” services are the primary bottlenecks or problems in your application.
I have been hearing a lot about the different courses offered on the IBM Skills Gateway so I decided to try one. Since I have been working with BlueMix for a bit I figured it would be easy to go through the BlueMix Essentials course and earn the badge, I squeaked by the test with a 90% (you need an 80% to earn the badge, so make sure you REALLY pay attention as there are only 10 questions).
I have to say I am pretty impressed with the way the course played out; mixing video, text, and lab content into a seamless straightforward experience. You can stop and start as you will, it will just keep track of where you left off. I got a little impatient with a few videos but that was only because I was familiar with most of the material, however it makes you finish watching each video – so no skipping around! I really like this course because if anything, it teaches you how to setup an application, make code changes locally, and then deploy those changes to the BlueMix cloud. Make sure you before you actually do the lab you watch the lab video. I kept making the mistake of just doing the lab as described and then I was forced to watch a 10-12 minute video of the instructors walking through the lab. It explains how to install the different tools you may need, walks you through all configurations, using the command line Cloud Foundry tools (cf), and using Eclipse as your IDE for your project.
Finding courses is very easy and many are free! You can filter courses by duration, category, product group, and skill level.
You can take courses that are instructor led or self-paced. Some courses are a combination of reading material and videos, while others may contain hands on labs, or may just be a simple article like An introduction to InfoSphere Streams. If you really like the concept of badges, which in my opinion are similar to certfications, then you can search for them here. The badge system is a partnership with Acclaim and it uses Open Badges which can then be posted to your social profiles, like on LinkedIn.
I am still waiting for my first badge, I guess some badges could take from 1-2 weeks to get. I would be interested to hear others experience with this process. Meanwhile, I think I might earn a few more badges and beef up my own technical arsenal!
Tagging digital content is time consuming for a person and very hard for a computer. Who remembers when Flickr’s auto-tagging was called out? (read more here) So needless to say its not a trivial task, unless you are Watson…
I am fascinated by this technology. To be able to actually pull apart an image and apply tags that describe what is in the image is amazing. If you think about the applications here, they are endless. I was thinking about how I constantly look for images on my Mac. I have over 10,000 photos on my mac and the only way I can find them is using the map if I recall where I took it or I remember the time frame and find it based on date. Imagine if you could do a search based on tags!
Since Watson Content Hub(WCH) does the auto-tagging for me I decided to whip up a short video showing the power of this amazing feature using WCH. Remember, you could always build your own application like this article explains using OpenWhisk and the API’s on BlueMix. To get you started, below is a screen shot of the Watson API’s on BlueMix:
Now for the video. Like I mentioned, I was really just playing around with various photos in my collection to see how well Watson did at tagging. All in all, I am very impressed…
Where do you think this technology is going? Will you expect your photo albums to have this ability in the future?
Want to learn how to integrate Watson into your applications? Well, it’s as easy as clicking on this link and getting started. From image recognition to financial services API’s there is an entire catalog of Watson API’s right at your finger tips. I personally have been playing with the Watson Content Hub API’s and they are very cool. A project I worked on used the Watson Content Hub(WCH) API’s with WebSphere Commerce where we used WCH as not only a central repository but also extracted the tags Watson generated for product images and pushed them into the product record in WebSphere Commerce. This enhanced the searching for products by a customer greatly. Watson generated key words we didn’t think of at first, making search and type-ahead much better.
Here is a quick video where we used a City Cool product called Minimals Moped. We pushed the images to WCH, Watson generated new tags, then we used those tags in the products keyword field. The search indexer did the rest and viola, the search experience was greatly enhanced to have a broader set of key words per product.