Circuit Breaker design pattern and library for Swift

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.

Watson Customer Engagement for Developers is here!

We have several offerings spanning Marketing and Commerce and many more coming this year. As a developer, you can now sign up to be notified when products and API’s become available on the IBM marketplace. Bookmark it and sign up today for notifications.

Check it out today.

IBM named as Leader in Gartner Magic Quadrant for Digital Commerce

This is good news for IBM and while Gartner mentions Watson Commerce Insights for predictive merchandising and predictive search, I am not sure why it doesn’t include products like Dynamic Pricing – which is clearly stated as a primary initiative for most B2B sites by 2018.  Analytic’s and augmented intelligence is a big area IBM is investing in and it ties closely with managing customers for both B2C and B2B sites. As stated in this report, by 2020, smart personalization engines used to recognize customer intent will enable digital businesses to increase their profits by up to 15%. I don’t think products like IBM Predictive Customer Intelligence or Watson Customer Experience Analytics are well represented in this report and by next year there will be even more augmented intelligence features in the IBM suite. At some point, the Digital Commerce quadrant has to recognize these add-ons as a base part of doing business in this report and this year they should have clearly been listed as strengths in the industry.

Another area I think the report falls short on is order optimization. With more and more companies moving to buy on-line pick up in store or more specifically buy on-line ship from store, you are going to see more demand for order fulfillment optimization, something Watson Order Optimizer covers very well.

Some key messages from the report IBM is focusing on:

  • IBM is a Leader, based on its product functionality, ability to support B2C and B2B business models, and its supporting ecosystem of applications that connect to its commerce platform across the globe.
  • IBM maintains an extensive set of partners in the digital commerce ecosystem, which was highly thought of by its reference customers — all scored it “very high” or “outstanding.”
  • By 2018, 40% of B2B digital commerce sites will use price optimization algorithms and configure, price and quote tools to dynamically calculate and deliver product pricing.
  • By 2020, 25% of leading online sellers will have enabled first-generation “commerce that comes to you” capabilities.
  • By 2020, smart personalization engines used to recognize customer intent will enable digital businesses to increase their profits by up to 15%.

Out-price the competition with Watson and Dynamic Pricing

Are you tired of the internet price wars? Are you sick of managing prices across all of your channels and competing with the likes of Amazon and other retailers? Do customers browse your brick and mortar store and use smartphone applications like RedLaser and QR Code scanners to scan your bar codes only to find it cheaper on the internet?

If so, then you may want to see how Watson and Dynamic Pricing can help you stay competitive across all of your channels. Here are some of the key benefits you get from IBM Dynamic Pricing:

  • Re-price in real time
  • Bring together online and offline prices
  • Sense and react to out-price competitors
  • Empower business users

Best of all, you get intelligent pricing at digital speed while getting competitive data in real-time enabling you to create customized strategies using product groups and rules. You can also schedule pricing strategy run times and it all quickly integrates with the IBM Digital Commerce platform.

Watch this video below to see how it works or go directly to the Dynamic Pricing page to read more about this cool new product.

IBM Skills Gateway: Refreshing your technical arsenal!

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).

BlueMix Essentials.png

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.

IBMSkills-Search.png

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.

Screen Shot 2017-03-30 at 2.33.10 PM.png

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!

Is the future of photo libraries with auto-tagging and Watson?

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?