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.

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.

Using Watson Content Hub as a central repository and tag generator

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.

Trilibis PSD to HTML converter

screen-shot-2017-01-18-at-7-56-41-pm

In this segment of Partner Connect I demonstrate how the Trilibis PSD2HTML API is used to create responsive HTML from three versions of the same PSD. The new Triblibis API can take a Web, Mobile, and Tablet version of the design along with a configuration file to identify HTML elements at a very granular level.  Watch this video to see the new API in action.

 

IBM’s new THINK Marketing site and news letter launches

Want to stay in tune with todays best marketing minds? Then you should visit IBM’s new THINK Marketing site and subscribe to its news letter to receive fresh thinking from the worlds greatest marketing minds. The site is highly visual, responsive and pretty cool to navigate. The site also has a Trending page to see what is most popular at that moment.  And don’t forget to follow #THINKmarketing on Twitter!

THINK Marketing

 

 

3000 Members now in the BlueMix LinkedIn Group!

Today, as I processed the pending membership requests on LinkedIn for the IBM Bluemix group, we surpassed 3,000 members!  In less than two years the group continues to grow and membership and activity have grown regularly each week. Keep promoting it and keep posting important material to the group!

While the group has some good discussions and examples of how BlueMix is used, if you prefer video then you should consider checking out the YouTube channel dedicated to IBM BlueMix, which is run by the Developerworks team: