Knowledge: Tech Blog

Where we share our thoughts on technology and design.

Latest Articles

William Ferguson

Web Audio API Part 2: Moving to Electron

Back in January, I blogged about using the Web Audio API with D3, creating an app using Knockout and RequireJS. I’ve since expanded on that application, migrating it to Electron and adding new functionality along the way – like MP3 tag extraction and recursive folder searching. Migrating to...

Rosie Hamilton

A snapshot of software testers in 2016

Continuing my research into Software Testers I examine how and why people are getting into testing careers and present a snapshot of testers in 2016

Chris Price

ES6 Iterators, RxJS, IxJS and the Async Iterators proposal

A quick walk through ES6 iterators and iterables. It covers extending d3fc’s random data component to implement the required protocols and how this can lead to greater interoperability with utility libraries like RxJS/IxJS. The d3fc-random-data stochastic generator d3fc contains a component for generating random data series based...

Colin Eberhardt

Recursive Pattern Matching and Transformation of JavaScript AST

I’ve recently been playing around with the JavaScript Abstract Syntax Trees (AST), with the aim of transforming some JavaScript code into various other languages (Java, C#, Objective-C). As part of my research, I looked at how Babel performs AST transforms. If you’re not familiar with Babel, and the plugins...

Chris Smith

Declarative CI / CD with Concourse

This post describes the Concourse build system and explains why declarative CI / CD is so compelling. No more pet build servers!

Rhianna Rahim

UX Scotland 2016

Last week I attended the UX Scotland conference held at the impressive setting of Our Dynamic Earth in Edinburgh. The 3-day conference, sponsored by Scott Logic, contained a selection of interesting case studies, workshops, hackathons and other social events. Graham Odds, Head of UX Design at Scott Logic presented...

David Wybourn

Service discovery with Docker Swarm

For the last few months we’ve been working on a very DevOps focused project. As such we’ve used AWS, infrastructure as code, Docker and microservices. The different microservices were initially running all on one box, each with a different port. This solution wasn’t scalable or very practical. We couldn’t have...

James Hill

Bitcoin payments and the Lightning Network

This is the second blog post orientated around Bitcoin and its inner workings. The first post took the blockchain and broke down the algorithms which create the fundamental structure of any cryptocurrency. The post was separated into two sections; the first focusing on the block header and the second focusing...

Graham Odds

The Catch 22 of Conversational UIs

This blog post highlights an awkward problem in one of the key building blocks of an automated conversational UI and suggests a few strategies for how to deal with it.

Bartosz Jedrzejewski

Code reuse in microservices architecture - with Spring Boot

In most microservice architectures, there are many opportunities and temptations for sharing code. In this post I will give advice based on my experience on when it should be avoided and when code reuse is acceptable. The points will be illustrated with the help of an example Spring Boot project.

Colin Eberhardt

Six tips for cleaner javascript promises

This blog post shares a few quick tips and patterns that I've been using to structure JavaScript promises; keeping them clean, simple and readable.

Daniel McNamee

Chaining Custom Locators

Custom locators are great for when you need to roll your own, but they can require some tweaking when an application starts to get more complex. Here I'll look at how to chain custom locators.

Rosie Hamilton

A study of software testers

I decided to do some research into testers and the challenges we face in the work place to find some answers. These are some my findings.

Dean Kerr

An update on Electron Security

It’s been a couple of months since my first post about the security of Electron. With v1.0 having recently been released I felt it was time for a a fresh look

Ross Hendry

Writing a Docker Volume Plugin for S3

An experiment in writing a volume plugin for Docker

Hannah Pretswell

The Defects Of Defect Density

Test metrics have for too long been the 'Holy Grail' of determining quality. This blog post looks at the reason why the metric of 'defect density' should perhaps have a second thought before use to determine software and tester quality.

Alexander Cheshire

Log-driven big data: The ELK stack

An insight into the ELK stack and how we used it on a big data project

Tamara Chehayeb Makarem

Body as Interface

Body as interface is plausible either when the body is in a controlled environment or when the device becomes part of the body. Exploring this notion allows us to stop designing interfaces and start designing experiences.

Saber King

An animated chart with HTML5 Canvas

For the past few weeks, Laurie Collingwood and myself have been working on a prototype banking app with an animated graph. In this post we’ll discuss some of what we’ve learned during the project and talk generally about animation with HTML5 canvas. Designed...

Bartosz Jedrzejewski

Recommended Reading For Java Developers

Being a software developer requires constantly improving ones knowledge. This is a short list of books that made the largest impact on me as Java developer. I hope that you too will find here something that will take you to the next level!