Blog

Tech

Tech
After hearing about Svelte, a performance-first web framework, I tried it out in a web-based Minesweeper solver. SHOCKINGLY, it didn't automatically make my code fast - that took a process of iterative optimisation
Tech
For the past 3 months, I have been a bit obsessed with Minesweeper. It has plagued my honeymoon, stolen my free time, and been the subject of two tech talks. That's a good thing.
Tech
In this post I explore the Bindable SwiftUI Redux package I created, and explain the motivations behind using Redux for state management in SwiftUI, and the challenges faced in integrating the two frameworks.
Tech
This post discusses one way to add Playwright to a create-react-app generated app, and shows how easy it is to use for cross-browser UI automation.
Tech
Interface Segregation is an important part of writing clean and maintainable code. In most languages, it requires constant maintenance and naturally degrades over time. In TypeScript, we can just Pick the good bits.
Tech
In this post I take a closer look at how SwiftUI uses declarative syntax to construct view hierarchies, and how it transmits state updates to the UI.
Tech
In this hands-on tutorial, I'll introduce Google Cloud Platform and use it to develop a simple computer vision application. We'll make the most of its user-friendly interface, great developer tools and generous free tier.
Tech
This post looks at adding Puppeteer to a create-react-app generated app, and shows how easy it is to get Puppeteer up and running.
Tech
We - Alex and James - are graduate developers and our first project introduced us to Infrastructure as Code (IaC) and serverless architecture. This post is a collation of useful resources and thoughts gathered on our journey to help you learn about AWS, Terraform and Serverless - it's the guide we wish we had.
Tech
In this post we will be investigating how we can improve the performance of a chart created using D3FC and WebGL by using a lower level API from the d3fc-webgl package.
Tech
SAT solvers are surprisingly fast and probably under-used. Could one help us improve sprint planning meetings? Maybe, but first you'll have to change the way you think about user stories.
Tech
Rebasing is a technique available in Git, often shrouded in mystery or steered away from, this post explains what it is and how it can be used
Tech
Improv is one of my favourite pastimes. In this post I explore some of the most fundamental rules of Improv and what they can teach about writing good code.
Tech
In this post we will be looking at creating a chart using D3FC and the new WebGL functionality. With the performance boost that WebGL provides we will see how we can render a large data set of around 54,000 points in a single pass.
Tech
The more advanced, time saving and helpful techniques of any source control tool require an understanding of the fundamental concepts of any source control, here we cover the most important ones
Tech
In this post I look at how SwiftUI manages state with Combine, and how it compares to using React with Redux. SwiftUI is Apple's new declarative UI framework for developing UI natively, while React is a declarative UI framework for the web.
Tech
An Augmented Reality Sudoku solver using the WebAssembly build of OpenCV (a C++ computer vision library), Tensorflow (a machine learning library) and solver written in Rust. It neatly demonstrates how WebAssembly allows you to write performance-critical web-based applications in a wide range of languages.
Tech
DTOs help translate data between server and client. By going back to first principles, how can we utilise static type-checking and integration with modern IDEs to write a better DTO?
Tech
Delivering software fast and with as few bugs as possible is not an easy thing to do. Developers often blame the lack focus on technical debt for a buggy solution, while testers point to well... lack of testing. In this blog post I will talk about the idea of "sustainability" in software delivery and how thinking and using it may make your project more successful.
Tech
I've been authoring the WebAssembly Weekly newsletter for just over two years now. As we near the end of 2019 I want to take the opportunity to share some of my favourite articles from the year.
Tech
We're told that we need to commit early and often. But what does this mean...? What is the right frequency? When should branches be used? When do they work well, and when should they be avoided?
Tech
This is a post about doing performance right when building large and complex web applications. Much advice is available about optimising for every last ounce of performance on the web, but that won't help much if we don't already have 'good' to begin with.
Tech
Regular expressions are very powerful, but something that many developers are wary of using—they have a reputation of being difficult to understand. If you appreciate their underlying principles, you can understand them better, and if your code takes advantage of this, you may be able to refactor them into a more readable form.
Tech
In partnership with FINOS, we held the first event of the Edinburgh Open Source Fintech Meetup on 4 December, with great talks by Colin Eberhardt, Calum Miller and Reg Wilkinson – you can watch videos of the talks here.
Tech
This is the first of a series of blog posts exploring SwiftUI, the new UI framework for native Apple development. This post will focus on my initial impressions, having gone through the first part of Apple's SwiftUI tutorials.
Tech
We are taught how to write good code, but we're not taught how to use source control properly. Why is the history of our code any less important than the code itself?
Tech
Prettier, or code formatting in general can polarise developers - everyone has an opinion on braces. There are changes we can make and tricks we can apply to streamline all of this. Or: How I Learnt to Stop Worrying and Love Automated Code Formatting
Tech
An introduction to ArchUnit; an open-source, extensible Java unit testing library for enforcing your architectural and coding rules.
Tech
The switch statement in Swift is a powerful and expressive way of performing flow control. It pairs very nicely with a few other language features: enumerations, extensions and type inference.
Tech
Protecting your data by generating visual reports for your users in an optimal way without exposing the raw data using serverside generation.
Tech
An overview of the methods we used to create and deliver digests (emails containing information on a topic that users are subscribed to) using Elasticsearch and serverless architecture on AWS.
Tech
Drawing and shading an area around a line is a useful feature for any charting library. In this post we will be exploring the approach we took to implementing this functionality for the D3FC library using WebGL.
Tech
WebAssembly, despite the name, is a universal runtime that is finding traction on a number of platforms beyond the web. In this blog post I explore just one example, the use of WebAssembly as a smart contract engine on the blockchain. This post looks at the creation of a simple meetup-style event with ticket allocation governed by a smart contract written in JavaScript.
Tech
Earlier this year React released hooks, shaking the codebase of developers all over the world and changing the way we write React web applications. Functional components with hooks have largely replaced class components and now Redux has followed.
Tech
The second part of a practical series on building Microservices with Spring Boot and Spring Cloud. In this post we expand on our previous online store project, scaling out while introducing the concept of client-side load-balancing using Netflix Ribbon and Feign. We also implement fault and latency tolerance with Netflix Hystrix.
Tech
Connecting points on a chart with a line is one of the most basic uses of a charting library. When drawing that line in WebGL, however, it's not as straightforward as you might think.
Tech
A very quick experiment into setting up a new development environment in GitHub and Visual Studio Online for creating Python-based AWS Lambdas
Tech
A practical series on building Microservices with Spring Boot and Spring Cloud. In this post we get started by building some services for an online shop and tie them together with 2 more services, backed by Netflix's Eureka and Zuul.
Tech
In a React app, opening and sharing data with a new (non-modal) window might seem like a challenge, but it's possible - and I've provided a component to make it even simpler.
Tech
I am constantly amazed at how unfamiliar otherwise competent developers can be with numeric types. In a series of two blog posts I will explain what you need to know to understand the JVM's numeric types. This first installment covers the integer types.
Tech
When first using WebGL, even rendering a simple shape can be a challenge. In this post, I take a look at the approach we've taken in D3FC to render shapes using the fragment shader.
Tech
Taking a look at Microsoft's new product .NET for Apache Spark by writing a C# app that writes Spark dataframes to a SQL database.
Tech
For the past few months I've been using Visual Studio Code Remotes, a powerful new feature that is available in Visual Studio code.
Tech
In this blog post we consider a practical example of how the D3 and X3DOM libraries can be used together to build dynamic 3D charts for the web.
Tech
An introduction to our recently released open-source React Hooks library, OpenFin React Hooks. Developed especially for OpenFin and its developer community.
Tech
SwiftUI is Apple's new UI framework for all its platforms - watchOS, tvOS, iOS and macOS. This post explores the significance of its release, comparing it to both to former native iOS development and competitor frameworks.
Tech
In this post we look at X3D and how it offers a simple declarative approach for including 3D visualisations in web pages in a way that is supported by major browsers.
Tech
Caching frontend application bundles isn't as effective when they're updated frequently. In this post, I'll explore the idea of using deltas to update already-cached bundles, and cover some approaches - including one that's feasible today using service workers.
Tech
Reactive programming is a powerful technique for handling data that changes over time, time-bound events, API requests and updating the UI. This post is a summary of how the reactive paradigm works in Android.
Tech
Swift combines the type and memory safety of a language like Java with the simplicity and ease of languages like JavaScript and Python. This article will explore some of the language features that, in my opinion, make Swift the most beautiful language to read and write.
Tech
Why Java Developers can gain from C++, what C++ can gain from Java Developers, and how the language has made itself more comfortable for you to make the transition.
Tech
When WebAssembly was released a couple of years ago it was an MVP (Minimal Viable Product), one significant feature that was missing from the MVP was threads. The WebAssembly threads proposal is now quite mature and available in both the tooling and Chrome. This blog post explores the internals of this feature, the new instruction set, and how it supports multi-threaded applications.
Tech
Spring Boot applications have quickly become one of the most popular Java frameworks due to the speed and simplicity of creating production ready applications. Sometimes the world of Spring can be confusing - in this post I give an overview of some fundamentals of Spring, what Spring Boot is actually doing, and where to start if things go wrong.
Tech
Scott Logic is proud to have been identified as one of 1000 Companies to Inspire Britain in 2019 by the London Stock Exchange Group (LSEG).
Tech
This article is for anyone interested in learning more about Amazon Web Services (AWS). It talks about training resources, getting practical experience and staying up-to-date.
Tech
As a front-end developer working on real-world applications, WebAssembly isn't something I can actually use, is it? Let's find out how easy it can be using AssemblyScript.
Tech
Styling in Android can be a difficult experience for developers not familiar with how the framework works. However, once you start to understand the "Android way" the development experience can be both logical and enjoyable (excepting a few Android quirks, but for the Android developer - c’est la vie).
Tech
React and Vue are two popular web application frameworks aimed to make developing user interfaces easier. This post summarises a few of the similarities and differences between them I found after using both.
Tech
Is WebGL faster than Canvas for drawing 2D shapes, and if so can we harness that speed to visualise very large data sets? I wanted to learn WebGL so I decided to investigate this question and learn at the same time.
Tech
The 'Performance' tab of Chromium (Google Chrome) DevTools isn't always enough for analysing complex multi-window Electron web-desktop applications. In this post, I'll introduce the related but lesser-known Tracing tool, and show how it can be used with Electron.
Tech
Have you ever wanted to write your own compiler? ... yes? ... of course you have! I've always wanted to have a go at writing a compiler, and with the recent release of WebAssembly, I had the perfect excuse to have a go.
Tech
The d3fc cartesian chart provides a simple way to compose the most commonly used type of chart, while keep its API simple. But would it be possible to keep that simplicity while making a chart component that is more flexible?
Tech
Recently we've been looking at enhancing the D3 axis component to implement a number of common features including more flexible label placement (e.g. positioning labels between ticks) and rotation / offset of labels to avoid collisions. This blog post demonstrates some of these features and how they were implemented.
Tech
Hooks are one of the most exciting features of React in recent times, allowing the developer to "hook" into React features without having to use class components. In this post, we take a dive into Hooks and learn how, when and why to use them.
Tech
Can Kotlin, the latest language to join the JVM, supersede its predecessor Java? Let's compare the two languages that are currently battling for supremacy in the world of Android.
Tech · Video
This talk, from London Node User Group, looked at some of the internals of WebAssembly, exploring how it works ‘under the hood’ with a demonstration of how you can create your own (simple) compiler that targets this runtime.
Tech
Persisting data can be easy with an ORM like EF Core. Let's take a look at how we can save our data without compromising our domain models.
Tech
A working example of how to create a new plugin for Perspective, using a ready made template to get started quickly, and open source mapping API from OpenLayers.
Tech
How we built a plugin for Perspective from JP Morgan, using d3fc to display a generic charting view that can show multiple chart types.
Tech
We usually need to consider data persistence when writing an application. In this first part we look at how to model your domain in preparation for use with Entity Framework.
Tech
A lot of developers start specialising in Javascript, and have an inherent fear of Java (I know I did!) In this blog post I look at a few tips to get over that initial fear and start coding in Java, from a Javascript background.
Tech
My personal reflections on the sessions that I attended at the 2019 Build IT Right conference. Continuous Delivery, embracing conflict and fighting entropy.
Tech
The WebHID API will allow web applications to use human input/output devices connected via Bluetooth or USB. This post takes an early look at where it fits in, the possibilities enables, and how to use it.
Tech
If I said the words "a tech conference for women" - what would you imagine? Would it be the attendees sitting in circles, holding hands and admiring each other's beads? Do you picture 'sisters' singing kumbaya and plotting the downfall of the patriarchy? Would you picture sessions such as "how to code for fluffy-wuffy knitting sites?" Would you wonder if it was full of hardcode coding and hacking sessions to get women further up the knowledge ladder? Some of the Scott Logic tech staff went to a technical conference for women. This is what it was like.
Tech
In this article, I share my take on the recent AWS Builders Day in Edinburgh. I delve into a couple of the talks i attended which were primarily focused around AWS AppSync, AWS Amplify and GraphQL.
Tech
This post addresses how to grant access to Firebase Test Lab without also granting access to your wider Google Cloud Platform services.
Tech
D3 and d3fc are powerful tools for creating charts in JavaScript. This post will look at one way to create a continuous colour range legend to annotate one of these charts.
Tech
Changes to code formatting tooling/policy can be painful to integrate with work-in-progress branches. Here's an approach to solving the situation quickly and easily using a single Git rebase command.
Tech
When first learning to develop in Swift, there were many cases in which I would become frustrated at some of its unique features. However, the more I learned about Swift, the more I realised these features weren't so crazy after all.
Tech
Riders of public transportation rely on real-time traffic information (RTI) systems to make informed decisions. But really how accurately are those systems? By systematically collecting and analysing the Open Data exposed, we can gain some insight into the question.
Tech
Where does one start when looking to write better code? And how do we maintain code quality and consistency when working in a team? These two questions drove me to create a language-agnostic guide to writing decent code.
Tech · Video
With open source projects, we often work with strangers, people we may never speak to, let alone meet. Creating a quality product, with such a disparate team can be quite a challenge. This talk takes a look at how tools and automation are a critical component when creating a successful open source project.
Tech
It's useful to be able to use components built using one framework, within different frameworks. In this post, I explore considerations and patterns, and finish off with an example using React and D3.
Tech
This article describes an experiment about building my own DOM render utilities. It is written incrementally following a sequence of commits, each of which brings in a new feature. The results are a tiny library, some learning along the way, and too many questions left unsolved !
Tech
Hi, I'm James. I recently worked on an Android project for Scott Logic and want to share with you some of my tips for starting out as an app developer. If you are a developer wanting to learn how to code Android apps then this article is for you.
Tech
We've updated StockFlux, our OpenFin demo app, to make use of the recently-released OpenFin Layouts APIs. This blog post takes a quick look at the features we've added, and the APIs used.
Tech
Perspective is a streaming pivot visualization engine which uses WebAssembly. This blog post explores its capabilities and creates a custom cryptocurrency visualisation using d3fc.
Tech
Beneath the user interface of our applications, we as developers both define and use default values in code and configuration. Choosing carefully helps make what we build quicker, easier, and less error-prone to use.
Tech
Recently I've been doing a bit of research on machine learning and particularly TensorFlow and Keras. This blog provides a brief introduction to the tech, and then a simple tutorial using both TensorFlow and Keras, exploring the differences between the two.
Tech
This post explores some of the ideas and technology features behind Docker and Kubernetes. We delve into deploying a simple Java application on the Google Cloud Platform using a managed Kubernetes Cluster.
Tech
Developing with Redux makes managing your React state easier, but if not integrated correctly it can remove key advantages of using React, wrecking your application's performance. This blog will outline how I managed to create a painfully slow React app and the steps took to correct it.
Tech
When it comes to creating complex bespoke charts, of all the JavaScript visualisation / charting frameworks, D3 is the clear winner. This blog post takes a step-by-step look at the process of of building an ‘advanced’ financial charting using D3, with additional components from d3fc.
Tech
The TensorFlow team have developed a JavaScript library for performing machine learning tasks in the browser. We take a look at some of its uses and discuss some of the problems encountered while working with it.
Tech
React and Redux are 2 tools that together make it simpler to create functional UIs. However there are many potential pitfalls when it comes to using them. In this blog I will walk you through some practices to keep in mind as you write your own code.
Tech
Do you think Test Driven Development is simply writing the tests before you write the code? If you do, then this post is for you.
Tech
Cake (C# Make) is an awesome tool for writing scripts to build and test projects. This post details how the VsTest runner can be invoked using Cake.
Tech
WebAssembly is a performance optimised virtual machine that was shipped in all four major browsers earlier this year. It is a nascent technology and the current version is very much an MVP. This blog post takes a look at the WebAssembly roadmap and the features it might gain in the near future.
Tech
Code examples and definitions of the SOLID principles to show how easy it is to voilate them and how you can refactor code to adhere to them.
Tech
Managing state in an application can be tricky, even more so with many moving parts like in typical forms. In this article I consider when it is appropriate to use Redux and Redux Form to manage the state of a form in a webapplication
Tech
The F# language has many features which can lead to expressing complex domains in a terse and typesafe way. To show this we can codify the world of Dogshorts, the private school for young witches and wizards.
Tech
Nobody looks forward to conflicts when collaborating on code. There are things we can do however to minimise unwanted ones, promote useful ones, and make them easier to solve correctly.
Tech
The WebAssembly specification is evolving, with many new features on the way. This blog post makes one of these future features available today, multi value returns, using the Babel approach of transpiling.
Tech
It seems that everyone is trying to build a microservices based system these days. Some of those attempts succeed when others fail miserably. In this article, I will look at one thing that often connects the winners- the use of DevOps practices and culture.
Tech
WebAssembly is a new language for the web, although unlike JavaScript it's not a language you are expected to use directly. However, it is actually possible to write WebAssembly directly by hand and it turns out this is an educational and enjoyable process, which I will explore in this blog post.
Tech
What is npx? How is it useful and why should you care? Find out how you can use npx to run global npm packages without having them installed.
Tech
Key lessons I took from Eric Evans' book "Domain Driven Design". A brief summary of the book's concepts and why you should read it.
Tech
A short tour of different museums and exhibitions that have used technology to support their displays.
Tech
Mock the back-end of your web application, using Node.js, to make developing and testing the front-end easier.
Tech
How Scott Logic consultants worked with Rabobank's London IT department to improve DevOps practices.
Tech
Apache Curator is a client side library providing convenience and out of the box algorithms when working with Apache Zookeeper. In this blog we take a quick look at how to implement a leadership election.
Tech
Following from my recent article on Machine Learning with Scikit Learn, I decided to experiment with the library that is most loved by developers today: TensorFlow. Similar to Scikit Learn, this post walks through a simple example of TensorFlow to categorise handwritten digits.
Tech
In August 2017 a typosquatting attack was discovered in the npm repository with the intention of stealing developers' credentials. This post explains the attack and my efforts to search for similar active attacks.
Tech · Video
This talk, from JSMonthly, looked at what's wrong with the way we are using JavaScript today and why we need WebAssembly.
Tech · Video
This talk will introduce the recently launched TensorFlow.js library, demonstrate what’s possible right now (with some audience participation!) and ponder on the future directions this technology might take us.
Tech
In this blog post I'll be exploring Lexical Scope in JavaScript and answering the question "What is Closure?"
Tech
I found splitting JavaScript applications into separate packages within a single source tree difficult, until I found a tool called Lerna.
Tech
JVM Roundabout is a meetup in London where all things related to JVM are discussed. The February edition of the meetup focused on microservices. I had to be there!
Tech
When is it time to make something a generic re-usable class? And how do you manage the additional complexity of a generic solution? A potential solution lies in an incremental approach.
Tech
Machine learning (ML) has become an increasingly popular field of Computer Science. In the past few years I've found myself working with ML to categorise large sets of data, and Scikit Learn for Python has proved itself to be exceptionally good for the task. This post walks through a simple example of Scikit Learn to categorise handwritten digits.
Tech
Conflicts sometimes arise when merging two npm-shrinkwrap.json files from different source control branches. Git might be able to solve some of these - but should you let it, and what should you do if it can't?
Tech
In highly-visual, rapidly-updating, multi-window, buzzword-laden apps performance is a big concern. With WebWorkers, SharedWorkers and ServiceWorkers we have a number of options for moving complex scripting tasks off the critical path. However, rendering can be more of a dark art. In this post I'll dig into how one browser (Chromium) uses renderer processes and how you can use this knowledge to your advantage.
Tech
Java Optional has been around for a while now. It is a pity that this language feature is not used more often by developers. This is a simple demonstration of how to use it correctly.
Tech
First introduced to me as “upside-down recursion”, dynamic programming is a technique used to write efficient algorithms to solve a wide range of problems, often replacing recursive approaches. Having met many examples in the past few years, this post explores three applications I’ve seen for the benefit of those new to the technique.
Tech
A quick look at Apache Storm with a short word count walk-through example using a Redis Database.
Tech
If you're a fan of Redux Saga then you will have noticed the abundance of libraries to assist testing your sagas. This post takes an in-depth look into the different approaches to testing sagas, describing where five popular testing libraries fit into these approaches.
Tech
In this post, I create an interactive map of relative changes in currency strength, using D3's geographic projections, world map data, and a currency exchange API.
Tech
I show a simple use of the PostGIS Postgres database extension to combine route data from Strava and postcode data.
Tech
Over the past couple of months I’ve been exploring the potential of WebAssembly. I wanted to try my hand at creating a more complex WebAssembly application, which is why I’ve been spending my evenings working on a CHIP-8 emulator ... and learning Rust!
Tech
As interns at the Newcastle office we were tasked with creating an interactive desk directory to allow new employees to better acquaint themselves with their building and colleagues, with the speculative goal of replacing the company-wide internal phone directory. The original brief specified we should present a graphical view of...
Tech
A few weeks ago the new Bristol Pound mobile app was launched, allowing users of this local currency to find vendors, view transactions and make payments on both iOS and Android. This post describes our experience of writing this application using React Native.
Tech
Last week I took a trip to London to attend CodeMesh, the Alternative Programming Conference. Attending conferences can be a way to expand your horizons and inspire interest in a variety of topics, and CodeMesh did this for me and more, with a great line-up of experienced speakers. Here I'll describe a few of the talks I attended.
Tech
I'll be taking a first look at Polymer 3.0, including how to integrate other technologies, as well as comparing it with other front-end frameworks.
Tech
A common misconception I have frequently observed in organisations that are adopting agile is around using story points for planning, forecasting and progress tracking. Long- and mid-term planning in agile can have devastating effects on teams, which is why I’d like to shed some light on it and talk about how the situation can be tackled in an agile way providing much better results for the project and the organisation itself.
Tech
A quick guide to the available source map options in webpack, and the considerations for choosing one in different scenarios.
Tech
In this blog post I'll take a look at a real-world application of WebAssembly (WASM), the re-implementation of D3 force layout. The end result is a drop-in replacement for the D3 APIs, compiled to WASM using AssemblyScript (TypeScript).
Tech · Video
JavaScript is the dominant force on the web and increasingly the desktop too, but what about on the server? This talk looks at server-side JavaScript within the context of serverless architectures, a cloud-computing pattern with zero configuration, automatic scaling and a pay-per execution model.
Tech
In this blog post I'll explore the various different ways you can create WebAssembly modules, using Emscripten, LLVM and AssemblyScript, comparing the tooling and performance.
Tech
JUnit 5 has been available for a few weeks now so in this post I will investigate setting it up and migrating from JUnit 4 then explore some of the new features available.
Tech
Creating asynchronous functions that are recursive can be a bit of a challenge. This blog post takes a look at various different approaches, including callbacks and promises, and ultimately demonstrates how async functions result in a much simpler and cleaner solution.
Tech
Jest is a testing framework that provides the testing tools we now expect to see in a modern software project. It provides fast parallelised test running, with a familiar assertion syntax, built in code coverage, Snapshots and more. In this post, I'll be investigating Snapshots and laying out some thoughts!
Tech
This post demonstrates one way to add Selenium e2e tests to a `create-react-app` generated app. It uses Jest as the test runner, embraces modern JavaScript features (including async/await, modules, fat-arrow functions, templated strings, etc.) and attempts to ensure that modern editors are able to provide useful auto-complete suggestions when authoring tests.
Tech
Market profile charts are relatively complicated and specialised charts used by financial traders. This blog post looks at how to render a market profile chart using D3.
Tech
A few months ago we contributed a project, ContainerJS, to the Symphony Software Foundation, an organization that fosters open source and collaboration within financial services. The Foundation has various legal requirements that must be adhered to, including that all contributors (i.e. committers) sign a Contributor License Agreement (CLA). Unfortunately as...
Tech
Place names in UK and Ireland are very much influenced by their surroundings, with endings such as -hill, -ford, and -wood quite clearly referencing local geography. This blog post uses the new NDJSON command line tools for processing, transforming and joining datasets to create an optimised visualisation.
Tech
A walkthrough of setting up a WebPack 2 based build process for creating an Electron application in TypeScript, including configuring a build in Visual Studio Team Services.
Tech
Does npm 5 deprecate yarn? With promises of increased speed and consistent package versions yarn has a new competitor, but in this post I'll show the reasons for why, for the time being, I'll be sticking with yarn.
Tech
Following on from my previous blog post where I created a simple particle simulation using Go, I looked at adding some complexity.
Tech
Using two of the currently most popular web frameworks I'll demonstrate how to create semantic looking code.
Tech
Theming an application is a concern for many organisations and products. In this post I'll present a simple way to manage branding using current tooling.
Tech
Two years ago I wrote about TypeScript compiler APIs. There has recently been further progress in this area and I explore the newly exposed API in TypeScript 2.3.
Tech
Following on from making a simple particle simulation in Go, I decided to try and implement a simple set of web services too.
Tech
Small multiples repeat the same basic chart, typically with the same axes, to display different slices of a dataset. They are an excellent way of showing rich multi-dimensional data, without becoming a dense mess of lines. This post looks at how to implement small multiples with D3 and d3fc.
Tech
Your store is the source of truth... as long as it makes sense. A concrete example integrating Redux with React Router
Tech
I downloaded an analysed the training data for 1,000 athlete who ran the London Marathon in 2016. From this data I've learnt that people put in ~30% less mileage than popular plans suggest, Sunday mornings are a firm favourite for long runs, and that Saturday morning parkruns are very popular!
Tech
Level-up the state is perhaps the most useful React pattern. Apply it to your dependencies and you can get many benefits, like better tests, flow control and idempotent routes.
Tech
How I used Go to create a web app that would help me practice violin scales.
Tech
My first thoughts and impressions of version 11 of Alteryx.
Tech
I recently downloaded run data for the 7,190 athletes who recorded their London Marathon on Strava, a popular platform for runners and cyclists. This blog post visualises and analyses the data in various interesting ways.
Tech
OK, I’m a bit late; I intended this for the start of January, but this time last year I wrote a post on our most popular 2015 technical blogs. Here I am again!
Tech
Given the complexity of digital transformation, how does anyone faced with a responsibility to deliver get to grips with the issues and decide where to start?
Tech
When creating d3 visualisations it's common to want some form of responsive layout. However, SVG and canvas don't provide a native way to do this. Most examples found online either use fixed dimensions or resort to some form of manual layout to achieve the required effect. This post introduces an alternative approach using CSS and custom elements.
Tech
In this post I will talk about Consumer Driven Contracts in Microservices architectures. I will also give an example of how to use Pact in a modern JavaScript application.
Tech
Recreating the data used for the Guardian's Unaffordable Country visualisation in Apache Spark.
Tech
A few days ago the roadmap for future Angular releases, starting with v.4 in March 2017, was unveiled. It once again made me re-visit my personal doubts about semantic versioning, the underlying issue being that it is great for computers, but bad for humans. Considering that people are the primary...
Tech · Video
Pull up a comfy seat and listen to Chris Price tell a story about the Tortoise and the Hare, the App Store and Progressive Web Apps.
Tech
For the past four years I’ve been an author on Ray Wenderlich’s website which provides tutorials for iOS developers. I don’t do much native iOS development these days, However, I do like to keep my skills up to date. As part of this team I sometimes find myself being assigned...
Tech
We’ve recently been investigating uses for the blockchain and as part of this, we’ve developed our own system called Scottcoin. This post will explore the core components of the Bitcoin system, how a transaction goes through it, how our internal version differs and what advantages and disadvantages it brings.
Tech
Yesterday I attended (and spoke!) at the 2016 Bristech conference, an event aimed at polyglots, innovators and the “tech curious”. It was a full house at the Watershed with over 400 tickets sold. I had a great time at the conference, attending quite a few talks myself. What made the...
Tech · Video
This talk from Bristech 2016 takes a look into the use of Redux for state management in front-end React applications
Tech
In this post, I take a look at writing a simple particle simulation as a way of learning some of the basics of the Go language.
Tech
Awareness of Bitcoin has steadily grown, but understanding of it less so. Allow us to shed some light.
Tech
A practical look into higher order components and what they bring to the table, along with a general discussion of code reuse in React
Tech
My highlights from attending the Alteryx Inspire Europe conference, hosted in London.
Tech
In this article, I take a look at writing a watchface for Pebble using their newly released JavaScript SDK.
Tech
If you look up the MVC pattern on the web you can easily find definitions that differ and contradict each other. In this post I'll look at some definitions of MVC and consider what the differences mean for applying the pattern in practice.
Tech
This blog describes my experience of upgrading a basic RESTful API from .NET Core RC1 to .NET Core 1.0, and using Docker to host it on Linux. Docker is completely new to me so I'll give my thoughts as a noob.
Tech
Migrating a Knockout project to a webpack redux application using Riot, and why I didn't use React.
Tech
My highlights from the inaugural JSConf.IS 2016 hosted at Harpa, Reykjavik.
Tech
This post describes my entry into one of the hack events at JSConf.IS which challenged us to take control of the Northern Lights. It hopefully also serves as a nice introduction to creating visualisations with d3-force.
Tech
An overview of the Edinburgh Interns summer project: A react application to filter and search interview questions stored on Google Drive
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.
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. Migrating to Electron In...
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. The d3fc-random-data stochastic generator d3fc contains a component for generating random data series based on stochastic processes....
Tech