Conversational Interfaces is a term often used to define systems that hold "human-like" conversations, examples include; Chatbots, Voice User Interfaces, and Embodied Conversational Agents. The user interacts with these using text input, voice recognition, and gestures. These types of interfaces are often unable to provide...
Prerequisites Operating system Windows MacOs Linux CLR .Net Framework (Windows) Mono (MacOs, Linux) VSCode With ionide extensions for VSCode (http://ionide.io/) Ionide-FSharp Ionide-FAKE Ionide-Paket Step-by-step instructions Create new directory Move to new directory At the console type Code . or open VSCode and then open the...
The word opinion has two distinct meanings according to the Oxford Dictionary: A view or judgement formed about something, not necessarily based on fact or knowledge. A statement of advice by an expert on a professional matter. Synonyms to the word opinion are: belief, judgement,...
If you are working on a node project there may come a point where your app has a dependency on another custom module you have created. For example, at one of our clients, my colleagues and I are responsible for a shared component called the...
My team have been working on improving the performance our API, and identified a database call as the cause of some problems. The team suggested three ways to tackle this problem: Scale up the database till it can meet our requirements. Introduce some light-weight caching...
Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be...
In the previous post, we wrote the acceptance test as a first step and started creating the classes on the entry points of our system. In this post, we will finish implementing the system, and will summarize what we have learnt during the process. Inner...
I had the privilege to attend the Certified Scrum Product Owner course at Skills Matter. During the two-day course, I learnt many techniques to deliver value efficiently, and I am going to share a less widely known tool to help teams visualise interruptions. Keeping track...
Evolutionary Database Development, as coined in Martin Fowler’s book Refactoring Databases, is a concept whereby the design of the database is not done upfront, but instead is done in a way that evolves as the software that is relying on the data store does. In...
Having worked in the software engineering field for 6 years, I sometimes pause and consider how much I have learned since I started my career. One thing that strikes me is how many things I would want to tell just-out-of-college me if I had the...
Software is our passion.
We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.