Blog

Our thoughts on technology and design

Data Engineering
This post demonstrates how Docker 1.12 swarm mode round robins the containers in a service both for incoming connections (ingress) and DNS within the swarm.
Tech
An overview of the Edinburgh Interns summer project: A react application to filter and search interview questions stored on Google Drive
People
Last week, five Scott Logic staff took time out of the Edinburgh office to lend a hand with the Prewired Summer Hack for young people aged eight to 19.
Tech
This post quickly introduces data join before moving on to some of the edge cases we've run into when building components on top of data join. It covers how you can solve them with vanilla D3 and why you might find our d3fc-data-join component useful.
People
Last week was a busy week for our second lot of 2016 graduates as they embarked on their first week at Scott Logic - read on to find out what they got up to.
Testing
I developed a web application to enable exploration of the data collected by a survey of software testers. I explain how R and Shiny can be used to create reactive web applications which make data accessible to a wider audience.
Tech
A short introduction to Java enum capabilities followed by concrete examples of good use. How enums help with implementing lazy loaded singleton, following open/closed principle and using strategy pattern.
Tech
Euro 2016 may have been a little disappointing and flat, but the same can’t be said for the Scott Logic Euro 2016 table football tournament...
Tech · Video
In this talk I'll review how the functional programming style of frameworks such as React, ImmutableJS and Redux have paved the way for novel techniques that once again support rapid development cycles
Tech
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.
Testing
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
People
In this post, Richard and Andy will talk you through their ‘Hell Escape’ game project, one of the things they’ve worked on during their first few months working at Scott Logic as graduate developers.
Tech
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.
Tech
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 which perform the transformations, I'd recommend this blog post by Shuhei Kagawa that describes the development of a simple plugin for Angular 2 code generation.
Cloud
This post describes the Concourse build system and explains why declarative CI / CD is so compelling. No more pet build servers!
UX Design
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.
Data Engineering
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 all our services on one machine and it was getting tiresome and error prone having to remember/lookup which port each service was on. We needed our services to run on separate machines, and we needed a way to communicate with them without having to hard-code IP addresses or port numbers. What we needed was service discovery. As we had already been using Docker for each service, Docker Swarm was a natural candidate.
UX Design
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.
Data Engineering
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 on the construction of a transaction. If you are not comfortable with how the blockchain works, I suggest you read the first blog post before continuing.
Data Engineering
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.

Authors