As a software solutions architect I often find myself communicating and clarifying ideas between different teams, backend, mobile apps, micro-servcies and across various departments, engineering, legal, marketing.

I have learned to be wary of words that are ambiguous and easily misunderstood– or differently understood between teams and departments. “Best practice” is one such term.

This can be a buzzword in some circles and I often encounter this term in documents and presentations. Most listeners seem to understand it perfectly and you can easily get the audience to nod when you say it, yet each listener interprets the term very differently. The interpretation often depending on the team or department that they are in.

So what does “best practice” mean?

Continue reading →

So your business has been offered a chat bot; or perhaps your competitor is using one. The excitement behind these chat bots– they are supposedly powered by AI. A talking Artificially Intelligent agent seems futuristic and perception has been driven by the many Sci Fi films we have watched over the years.

Marketing a chat bot? ask the customer to name the Bot and invite them to think of the bot as part of their team and as an intelligent agent, an R2D2 of sorts.

Such intelligent agents are truly tempting. We hope they become advanced helpers, superheros and save many a day for our business.

Now let’s get real. Welcome to the chat bot boom.

Continue reading →

I’ve had to explain log levels on many occasions when working with new teams and over time developed a hopefully simple explanation of how logging should work in any application. This post is of course opinionated; As long as you, your team and your organisation have the same opinion you should be fine and my opinion won’t matter. But if you are seeking a better explanation of logging levels then this post is here to help you reason through this.

Continue reading →

With introduction of native Promise support and the async and await keywords promises have only gained popularity in JavaScript. But there are quirks they hide and the underlying asynchronous nature of JavaScript means you can sometimes end up with code that is harder to reason about. Here is a not so gentle introduction for those moving from callbacks to promises and looking forward to async/await.

Continue reading →

Javascript.

I wouldn’t have thought that a language that pretty much threw out all of the rules of good language design would come to occupy a place in my heart, standing with the likes of my romances with C++. Let me take you on a journey…

Continue reading →

I recently decided to create my own Windows 10 base box for Vagrant. VirtualBox is already allowing Windows 10 virtual machines as of version 5.0 (though Windows 10 is not officially supported). So I decided to go ahead and create a base box for Vagrant for Windows 10 Professional.

Continue reading →

SOLID principles of object-oriented design are an important consideration for anyone looking for good software design. The problem is they can be hard to understand and implement. In my personal experience unit-testing can actually help understanding these principles better and provide a genuine use case for implementing them.

Continue reading →

The Auto ISO setting on the Fuji X100 had me confused the first time I used it. Initially my reaction was, this can’t be right.

Since, I have read many forum posts asking for a better explanation on how it works and why it does what it does, but I failed to locate a clear explanation. After much thought, I finally figured out the logic behind Auto ISO used by the X100. I assume the X100S works similarly. I am using Fuji X100 firmware 2.01

Continue reading →

Sound Transit is a collaborative site where individuals upload high quality audio recordings of every day sounds, called field recordings, together with a short description of the main activity contributing to the recorded sound and their location, city and country.

Continue reading →

With the Intel Atom and the Core i series of processors, laptops featuring up to 7 hours of battery life are now available. Which means you can leave the power supply home and walk out with your laptop into the sun or go to a coffee shop.

In fact I’m typing this article sitting in a train. But battery power is not the only thing you are going to need to make your laptop road worthy. I share some tips and caveats I encountered when first getting my laptop ready for the road for a day out.

Continue reading →