Blog

Tech

Tech
Mobiumata (a concatenation of Möbius strip and cellular automata) is a small interactive art piece that allows folk to play god to 1,500 LED cells wrapped into a Möbius strip.
Tech
A developer takes a dive into the lands of legislation. What is the EAA and what does it mean for me and my company?
Tech
A (belated) festive look at the latest challenger to Node.js's throne
Tech
The increase of in-car instrumentation over the years has opened up the opportunity to use this data as an input into weather modelling. Are we all driving around in mystic minivans and clairvoyant coupés?
Tech
Everyone loves CSS! Continuing in my obsession, I have created a tictactoe game, with an option to have a CPU that plays randomly. This was made without any JavaScript, only HTML and CSS. In this blog post I discuss how I made it
Tech
I'll admit that for me knowledge graphs and graph databases were always something of a mystery, so I spent some time investigating to see how they compare to more traditional relational databases. Are they more than just circles and lines?
UX Design
Observations on an industry shift towards building partner ecosystems for personalised, differentiated customer value propositions.
Sustainability
Notes on the recent Government Digital Sustainability Alliance (GDSA) summit at the Science Museum in London. This event brought together 200 people from government departments, 30 delivery partners and academia. This blog is a summary of some of what Oliver considered to be the key points covered on the day.
Tech
I wrote recently about what the future holds for Open Banking in the US. But what about the UK? We’re now over five years into the Open Banking era in the UK. How is it reshaping the banking sector, and what’s coming next?
Tech
If you work in banking in the US, you should care about Open Banking. To help argue the case, I look at the legal changes in the US that will likely push towards an Open Banking standard and argue that implementing Open Banking can reduce your regular operational costs as a bank.
Tech
On Saturday I attended UKGovCamp XL in London. UKGovCamp is an annual, free public sector digital unconference, which means there’s no set agenda, and anyone attending can propose, host or participate in sessions. I share my reflections on the event in this blog post.
Tech
A brief look into building out a NextJS application which makes use WebAssembly to solve Advent Of Code puzzles in the browser.
Sustainability
Many of us love a good podcast so I reached out to our project team to see what they were listening to in the tech and sustainability space. Here are their recommendations
Testing
In this blog, I will walk the reader through some simple statistical concepts to aid in testing AI. I hope it is accessible regardless of prior statistical knowledge.
Sustainability
Part of the Conscientious Computing series this blog talks about the emerging ecosystem of organisations that are promoting sustainability within software development, cloud computing, infrastructure, and digital services.
Tech
In my previous post, I introduced and approach to testing called Testing with Intent. Essentially, the approach focuses on testing from the perspective of a user intending to do something. Adopting this approach brings you benefits in both your test suites and your products accessibility. That post discussed why the topic is important and how you can benefit if you adopt it. Now, it’s time to look at the technical side of how this actually works in practice.
Tech
In this post, I explore an approach to testing called Testing with Intent. I look what the approach is—testing from the perspective of a user intending to do something—and the positive impacts it can have on both testing and accessibility. I've written this for a broad audience, so I've steered clear of technical details included. Instead, you should come away with an understanding of why this topic is important and how you can benefit from adopting the approach.
Tech · Video
We demonstrate our web app used for experimenting with different types of prompt injection attacks and mitigations on LLMs and how easy it can be to hack GPT through malicious prompts.
Tech
This blog posts shares the results of the third annual State of WebAssembly survey, where we found that Rust and JavaScript usage continues to increase, but there is a growing desire for Zig and Kotlin. The use of wasm as a plugin environment continues to climb, with developers hoping it will deliver of the “write once and run anywhere” promise.
Tech
I developed a cross-platform location sharing app and learned valuable lessons along the way. This post explores the practical strategies used to boost the app's efficiency.
Tech
This year I’m attending the Linux Foundation Europe Summit, a sizable event bringing together 1,000s of people involved in open source. Day three made us think about allyship, yet more AI and the looming shadow of the EU Cyber Resilience Act (CRA).
Tech
This year I’m attending the Linux Foundation Europe Summit, a sizable event bringing together 1,000s of people involved in open source. Day two was packed with surveys, statistics and the fragility of the node ecosystem..
Tech
This year I’m attending the Linux Foundation Europe Summit, a sizable event bringing together 1,000s of people involved in open source. I typically take extensive notes of the sessions I attend, so thought I’d share them here on our blog.
Testing
Discover how to streamline metrics collection in Jest test suites using a centralized 'metricsCollector' utility, simplifying test maintenance and enhancing data-driven testing practices.
Testing
In this blog post I will walk you through how to set up a Jest custom environment in order to dynamically skip tests after they have been queued.
Tech
JSON Web Tokens are a secure way of transmitting information between two parties. This article explores what they are, how they are made, the kinds of JWTs that are commonly used and their key benefits.
Testing
Jest is a JavaScript unit testing framework that is popular amongst developers wanting to ensure code correctness. Jest is not typically used for tasks like performance testing, but offers some useful features in snapshot testing that can be enhanced to carry out such tasks.
Tech
Understand how Google and other search engines use LLMs to gain insights into the semantic meaning of the language in search queries using embedding and cosine similarity.
Tech
There are a plethora of datagrid and table solutions available for JavaScript applications, but it can still be tough to find one that does exactly what you need. In this post, I provide an introduction to an option you might not have considered: using the table library that doesn't actually provide a table at all.
Tech
In this post, I share the top things that resonated with me from the Reset Connect Conference 2023 and crucially some of the topics that I felt were missing – and that we at Scott Logic are actively researching and working on.
Tech · Video
We've all now seen the apparently creative outputs of Generative AI, with astonishing results that seem to border on human creativity. How does GPT-3 achieve this? In this short talk, I lift the lid to reveal the probabilistic elements that allow an otherwise deterministic model to give all the appearances of creativity.
Tech
For many of us peer review is an everyday part of software development, but why do we bother and how can we do it well? In this post I share my top tips for peer reviewing code.
Tech
I recently spent some time remotely attending JSNation, a hybrid-format JavaScript conference held in Amsterdam alongside sister conference React Summit. In this post, I'll cover some points of interest from around half the talks I chose to attend.
Tech
Spring Boot makes developer’s life easier through autoconfiguration. Even though it's true most of the time, occasionally we come across situations where autoconfiguration makes it harder to understand what is really happening behind the scenes and ends up wasting hours or may be days of developer time. This article is about one such rare occasion where understanding of RabbitMQ got confused with how Spring Boot implemented it behind the scenes.
Tech
Using RabbitMQ as it is in Spring Boot works fine. But sometimes it's not enough. This article will explain how to alter the retry behaviour and consume messages concurrently by multiple consumers in RabbitMQ in your Spring Boot Application.
Tech
Xamarin Forms has now been superseded with .NET MAUI. In this blog post, I'm looking at the process of upgrading an existing Xamarin Forms project to MAUI. How much effort is needed and what will still work or needs to be updated.
Tech
What is the best way to test the repository layer of a spring boot application? Or should you test it at all? What are Testcontainers and how to use them? This article addresses them all with examples, so you can make a better decision when you are faced with a similar challenge in future.
Tech · Video
The rapid rise in the consumption or usage of open source hasn’t been met with an equal rise in contribution – to put it simply, there are far more takers than givers, and the challenges created by this imbalance are starting to emerge.
Tech
Newcomer desktop-web framework Tauri has quickly attracted the interest of developers looking to build cross-platform desktop applications using web technologies. Promises of smaller and faster applications certainly appeal to those using Electron. In this post, I’ll take a look at what’s new in this space, what distinguishes them, and why WebView2 doesn’t solve everything.
Tech
Late last year I attended DevTernity, an all-remote generalist software development conference. In this post I'll cover off some points of interest from some of the talks I chose to attend, and reflect on the remote conference experience.
Tech
Here are five books that influenced my coding style and working practices early in my career. A top list of anything is deeply personal, so I’ve tried to select books I found both inspirational and informative, with an equal focus on technical and non-technical skills.
Tech
A Vim clutch is typically a repurposed keyboard/guitar pedal that enters insert mode when you press down on it and leaves it when you release it. This can and has been accomplished in a great many weird and wonderful ways. This post adds yet another to that list.
Tech
A brief overview of the creation, workings and application of the markup language Markdown
Tech
EDGY is a new graphical design language for visualising enterprises. This new open source design language shows great promise as a tool to bridge across siloed teams. This post explores the preview edition at a high level.
Tech · Video
FINOS, in partnership with Linux Foundation Research, GitHub, Red Hat, Scott Logic, and with the support of many other FINOS members, conducted the second annual study to assess the opportunities and potential challenges of consuming, contributing to, and governing open source in financial services. This panel dives into the research's key findings, as well as provides insight into how things have progressed year-over-year.
Tech
There are a growing number of voices heralding Web3 as the future of the internet, and this technology (concept?) is receiving considerable coverage at conferences, in the technology press, and internet forums. I decided it was time to put Web3 to the test and see how it fares against the contemporary approach to building apps - the public cloud. Unfortunately I found Web3 to be very lacking.
Tech · Video
A panel discussion from FinJS London 2022, exploring the latest developments in desktop workflows
Tech
Learn about what a data platform is and how it can translate enormous amounts of unstructured data into meaningful reports on your business operations.
Tech
A whistle-stop tour through some of the LGBTQ+ computer science pioneers ,the technology they created, and the impact they have had on modern computing.
Tech
WebAssembly has gone through quite a transformation this last year, while the wasm language landscape is slowly shifting, the more notable change is in what people are using WebAssembly for. The use of wasm for serverless, containerisation and as a plug-in technology has leapt considerably, with WebAssembly System Interface (WASI) becoming ever more important.
Tech
Ever wondered how to tell how strong your pasword is? This blog post explores this question using the popular Wordle puzzle game for context.
Tech
An introduction to the tree data structure. Trees are often shrouded in mystery and stoke fear in the hearts of software engineers. Today we look at the different types, how they work and most of all, how do you implement one!
Tech
WebAssembly is really starting to shine is as a standalone runtime environment. In this blog post I explore the Wasmtime WebAssembly runtime, and build a WebAssembly-powered serverless platform in just 70 lines of code.
Tech · Video
As far back as 600BC there is evidence of people encrypting messages to send secrets. Originally it was mainly used to conceal tactics for battle, but now encryption is used frequently in our daily life. In this talk, I describe how methods of encryption have changed through time.
Tech · Video
Recently, WebAssembly has been a hot topic in tech and developer forums. In this talk, I discuss one use-case: the creation of a UI that runs in browsers, which is powered by WebAssembly (compiled from Rust).
Tech · Video
We’ve all played a game with Box2D physics (e.g. Angry Birds). Google forked Box2D to add fluid simulation, but diverged irretrievably in the process. In this talk, I ask whether we can salvage Google’s contributions and bring both these C++ projects to the modern web using WebAssembly and TypeScript?
Tech
A very simple introduction on how to begin pondering about the environmental impact that software can have on the planet. Nothing too technical more just an introduction.
Tech
Everyone loves CSS! So I built a calculator where the CSS handles the logic without the help of javascript. In this blog post, I will discuss how I achieved this and maybe make a case for my sanity for making it.
Tech
There is a lot of information available to us, but we often just read and forget. Using a digital Zettelkasten is an effective way to store and make use of the things you learn.
Tech
Apache JMeter is a very popular performance testing tool which I used recently for load testing a server. In this post I will take a brief look at how to use it to perform a basic HTTP load test on a server.
Tech
The Disruptor was developed by LMAX to improve Java inter-thread communication for extreme low latency applications. In this post I will outline what is the Disruptor and see what we can learn from the framework for building future applications.
Tech
Have you ever wanted to learn Rust or just simply know why everyone is so hyped about it? Well, I’ve put together a pile of links to interesting resources to get you started!
Tech · Video
In this talk, I summarise the first steps in creating a Seasonal Cocktail Playlist by outlining how to apply Data Science skills when cleaning and labelling a cocktail data set.
Tech · Video
While we are all working remotely, code reviews should be an opportunity to grow as a team, but too often they can become something we fear, hate and avoid. This talks suggests an approach to remove conflict while strengthening the team.
Tech · Video
Sometimes it’s important to show progress to people who don’t care about APIs and there is no time to put together an elaborate UI.
Tech
In a previous blog post, Colin focused on rendering massive numbers of points using D3. In this post I'll consider how you can efficiently load that data using Apache Arrow.
Tech
When coming to TypeScript from OOP languages it can be very easy to fall into the trap of using types the same way you are used to. But this is missing a lot of power of TypeScript. This article looks at how you can extend your TypeScript use to not only represent types, but also express the intent and document your code better.
Tech
Timezones, and daylight saving - the practice of moving clocks forward by one hour once a year - are a pain. They make it hard to schedule international meetings, plan travel, or may simply cause you to be an hour late for work once a year. For a developer, they are even worse! This blog post takes a visual journey through the last 120 years of timezones, daylight saving and the ever changing world time.
Tech
Always wanted to write a custom linting rule for your JavaScript project, but never been sure where to start? This guide will introduce the key concepts you need to give it a go!
Tech
...or what I should have known before I jumped in and started playing around. In this post I cover logprobs and the "creativity" controls.
Tech
TypeScript can enhance the experience of developing React components. However to fully represent the types of some dynamic components, we need to harness the power of union types. This article examines an example where union types improves our component typing.
Tech
When using TypeScript for many developers it is natural to compare to Object Oriented languages. However TypeScript is different. This article looks at one tool that does not exist in Object Oriented languages: Union Types, and how you can use it to improve your TypeScript.
Tech
When first using TypeScript you get presented with a choice, do I represent that with an interface or a type alias? In this article I explain the differences and why and when you should choose one over the other.
Tech
This blog post shares the results of the first State of WebAssembly Survey, with results from 250 respondents surveyed in June 2021. We find that Rust is the most frequently used and most desired WebAssembly language and many other interesting results
Tech
RTK Query is the latest addition to the Redux family, intended to make loading data from a server as easy as possible. In this post, we'll look at why I'm so excited for it, and answer the question "but why does redux care about data fetching?"
Tech · Video
In this panel discussion, Ash Smith (GDS), Cheryl Stevens (DWP) and Mike Crockart (The Scottish Government) discuss their approaches to identity assurance, including opportunities to improve the user experience and potential obstacles to overcome along the way.
Tech · Video
In this talk, I delve further into the proposed transition from Open Banking to Open Finance, discussing some of the possible opportunities and challenges on the journey.
Tech
In advance of the event on Profit with Purpose that I'm participating in during Digital Leaders Week, I reflect (briefly) here on my experiences in Government, my thoughts on some of the challenges that still lie ahead, and why I’m excited to be the new ‘gaffer’ at Scott Logic.
Tech
Follow-up article to "Why Java Developers Should Learn C++". If you are interested in picking up C++, or enjoyed my previous post, this can help you get started.
Tech
A step by step guide through the process of building my first bespoke animation with SwiftUI. Touching on technical aspects specific to SwiftUI and more general concepts relating to animation.
Tech · Video
Data Mesh is an emerging architectural paradigm for big data that addresses the challenges inherent in the data lake and data warehouse approaches. In this talk, I define what it is, and Charlie Boundy, DWP Deputy Director and Head of Data Science, brings it to life through DWP's technology and data vision.
Tech
An exploration of how to setup up a basic multi-platform SwiftUI project, including platform specific files, common files and conditionally compiled platform code.
Tech · Video
With APIs, Open Standards and modern tooling, the vision of GaaP is more readily achievable than ever before, but it requires a different understanding of the role of government — from master and commander to convener and enabler. In this talk, I bring to life why I believe APIs are key to establishing digital foundations that will enable us to better serve citizens' personalised needs at scale.
Tech · Video
In this session, I consider how legacy dictates our view of APIs and explores how, with a fresh perspective, we can maintain focus on recognising the full value of APIs in achieving control of legacy.
Tech · Video
In this talk, I explore a little of the history of the term API and covers what he considers to be the three most current use cases. I talk about REST and GraphQL with a look at the evolving standards in the 'API over the internet' space. I also look at how the popularity of Event Sourcing has led to a rise in the number of Asynchronous APIs and how standards are emerging in this area too. Finally, I round off with my predictions for the future of Web APIs and signposts some of the technology which is shaping that future.
Tech · Video
An API Strategy is vital for focusing resources, aligning stakeholders and ensuring that APIs deliver a good return on investment. In this session, I provide my perspective here on the major elements of an API strategy and discusses some of the areas to consider when designing one.
Tech
Micro-frontends is a relatively new architectural style for building web-based applications, which as the name suggests, is an extension of the popular microservices pattern. In this blog post I argue that this is a pattern you might not need!
Tech
Flutter is a cross-platform mobile UI framework which allows you to develop an app for Android and iOS with one codebase. But is it any good?
Tech · Video
Our panel of experts — Jacqui Leggetter (Head of Integration (Deputy Director) at DWP), Kevin Dearing (Head of API Ecosystems at NatWest Group) and Benny Boye Johansen (Head of OpenAPI at Saxo Bank) — share success stories, lessons learnt and practical advice based on their experiences of using APIs as a strategic enabler and value generator.
Tech
Svelte is one of the most exciting parts of front-end development today. But what is it, exactly? In this post, we take a look at the philosophy behind Svelte and see how it affects everything Svelte does.
Tech
JavaScript provides a Promise abstraction that can be used to express 'give me the result later'. What happens if you ask for the result twice?
Tech
It's the end of the #AdventofCode for 2020. I take a look back over the final 6 puzzles and sees how much was possible in BaseA Alteryx. How close did I get to solving all 50 stars in BaseA!
Tech
19 days in, the end of the third week of the #AdventofCode. The challenges have got harder and some have taken a little more than just BaseA Alteryx functionality but am still going strong. Here's my look back at solving the puzzles over the last 7 days.
Tech · Video
A talk, from the Open Source Strategy Forums, where I compared some of the challenges facing open source (complexity, fragility, sustainability) to those which triggered the financial crisis of 2008.
Tech
As week 2 comes to a close on the Advent of Code, a look back at how the puzzles have been solved using BaseA by the community and me. The challenge has definitely increased this week!
Tech
Everyone hates bugs. Unfortunately, as codebases grow, it's easy for bugs to spread out of control. Fortunately, they can be brought back under control using psychology and a mathematical model from the 1950s.
Tech
It's the end of week one in the Advent of Code and, as has become a little bit of an annual tradition, I and other's from the Alteryx community are trying to solve with the base tools. In this post, I look back over the first 5 puzzles and how I (and others) have solved them.
Tech
OpenFin enables the use modern web technologies in place of older legacy systems. In this post we investigate the 3 primary communication techniques made available when using OpenFin to build the next generation of applications for the financial desktop.
Tech
In this post I'll try to lay out some requirements for 'good' code, talk about how we might define 'easy' code and how this correlates with a definition of 'good' code.
Tech
The WebAssembly build of FFmpeg allows you to run this powerful video processing tool directly within the browser. In this blog post I explore FFmpeg.wasm and create a simple client-side transcoder that streams data into a video element, with a bit of RxJS thrown in for good measure.
Tech
Narration.studio is my latest project: a web app for automatically editing voiceovers. In this first part, I introduce the project and the motivations behind it.
Tech
d3-zoom is incredibly robust, powerful and flexible. However, its flexibility means it can be quite complex to configure and use correctly. This post covers one way of wrapping it up, reducing its flexibility but vastly simplifying its use for my use-case.
Tech
Van Halen famously requested M&M's with no brown sweets as part of their 1982 world tour rider. What, if anything, is there to learn from this ridiculous demand, and can it help improve our software development processes?
Tech
This blog post looks at how CSS flexbox item sizing works, how it is used to create responsive layouts, and how it can be used to display interactive charts without using any Javascript.
Tech
Over the past few months I've had an ergonomic keyboard obsession. It started out simple, just wanting to improve my typing experience. It ended with me writing a driver. This is my story - now available as an audiobook!
Tech
Learn Rust, the tech industry's most loved programming language by building Snake, the simple but addictive game found preloaded on old Nokia mobile phones.
Tech
Redux is a great state management library, but its types are too broad. Using the builder pattern, we can generate exact types and ensure type-safety throughout an app.
Tech
The world is racing for quantum supremacy, to solve problems once thought impossible on any reasonable timescale. In this post, I explain the fundamental principles that allow this to be possible.
Tech
This is part two of a series introducing Vue to developers who are new to the ecosystem and evaluating whether to include it in their next project. In this post we will look at Vue components but check out part one if you are looking for an initial overview.
Tech
This blog post is written for developers who have not used the Vue ecosystem before and want to decide whether to use it in a project or not. To help with this decision, this blog post will give a brief overview of the technology and ecosystem.
Tech
TypeScript's type system is amazing, but it can't do everything. In this post, I demonstrate how the builder pattern takes my types to the next level. We walk through an example in detail, so you can start using builders too.
Tech · Video
There's a standard approach to migrating legacy applications into desktop containers: the desktop equivalent of the strangler pattern – but this has its drawbacks. Is there another way? In this webinar, I shed light on an alternative that addresses these drawbacks and opens up new opportunities for old tech. And I explain what on earth rollercoasters have to do with it.
Tech
Published in 2007, Amazon's Dynamo paper changed the distributed database world. As well as powering AWS S3, it also inspired many well known open-source NoSQL technologies such as Apache Cassandra, LinkedIn's Voldemort and Basho's Riak. This post intends to present the paper and its concepts in a digestable way.
Tech
In this blog post I'll be demonstrating how quickly it's possible to setup, integrate and deploy a React application using the right tools.
Tech
Writing emulators that bring old computer hardware back to life is a popular hobby, and one that I have been enjoying recently through my own goal of writing an Atari 2600 emulator. However, writing a CPU emulator can get a little repetitive and tedious, so I thought I'd explore a different approach - generating the CPU emulation code from a specification rather than manually translating it. This blog post shares the fruitful results.
Tech
With so many organisations claiming to do microservices, it’s time to re-examine. Let's explore the principles of microservices and how the mindset transcends specific technology choices of the moment. It's more about people and change than it is about technology.
Tech · Video
This technical webinar sets out the steps involved in migrating a legacy application into the Finsemble desktop container, and introduces some of Finsemble's main features.
Tech · Video
This technical webinar sets out the steps involved in migrating a legacy application into the Glue42 desktop container, and introduces some of Glue42's main features.
Tech
I've been using Svelte for about 6 months now, and the worst bit has always been the lack of TypeScript support - but it's finally here! This post shows you how to get started using my two favourite web technologies together.
Tech
We explore how to use Spring Profiles as a handy way to select the configuration at runtime by wiring in different beans, as well as looking at how to autowire different beans in for integration tests.
Tech · Video
This technical webinar sets out the steps involved in migrating a legacy application into the OpenFin desktop container, and introduces some of OpenFin's main features.
Tech
The function console.log is a JS developer's best friend. In this post I explore the console API in greater detail to help you in your next big project, or help you mess around.
Tech
Accessibility is essential to provide a high-quality experience for all of your users. However, it can be easy for failures to slip into our applications. In this post, we'll look at the six most common accessibility problems and discuss why they matter and how they can be fixed.
Tech · Video
This webinar explores the potential and realities of an emerging vision for a more integrated desktop application ecosystem, as facilitated by various open-source and vendor products.
Tech · Video
WebAssembly is a brand new W3C standard for a secure and load-time optimised, stack-based virtual machine that is a compilation target for a broad range of languages. That's clear isn't it?! This talk will provide a very gentle introduction to WebAssembly, with practical examples. By the end of the talk you'll have a much better understanding of this exciting new technology.
Tech
In this post, we work through building up a cubic spline from first principles first in Python, and then converting the Python code into an Alteryx macro
Tech
In this post, we look at creating a brute-force search approach to solve Matt Parker's Coin Puzzle using some binary manipulation within Alteryx
Tech
One of the most common complaints when someone starts learning React Redux is that it's too magic. In this post, we'll be pulling back the curtain on React Redux to discover how it really works.
Tech
This blog post introduces the WebGL components which we recently added to D3FC, this suite of components make it easy to render charts with very large numbers of datapoints using D3. Throughout this post I'll describe the creation of the following visualisation, which displays 1 million books from the Hathi Trust library
Tech
Async iterators are a great language feature that make working with asynchronous streams of data a joy to use. We'll take a look at consuming an async iterator running in a Web Worker from the main thread and see how we can use a library called Comlink to abstract away the fact it's running in a different execution context.
Tech
The second in a series of posts exploring the things that Spring Boot does when it magically Autowires application dependencies. Is it really a kind of magic, or is there no such thing?
Tech
WebGL presents you with a blank canvas (literally!) and leaves you with what feels like an overwhelming set of decisions to make before you can render your idea on screen. This post introduces a quick reference guide to picking the right draw call for those trying to decipher the difference between drawArrays, drawElements and their oddly-ANGLE'd instanced equivalents.
Tech
The date is March 31st of the year 2020, and things have gone wrong. What follows is the account of a software developer confined to his home in Bristol as the people of the world come together apart, in defiance of this simultaneously macro-and-micro-scopic attack on our very species.
Tech
Some might say I pushed the Micro:Bit too far. This post is not for those people. If your Micro:Bit is also struggling, this post will show you how to optimise your code and push it further
Tech
Rendering charts can be a very intensive operation for the browser, especially multiple charting widgets in the context of a wider application. OffscreenCanvas is growing in browser support and allows canvas rendering to be delegated to a WebWorker. This post looks at what performance improvements we can realistically expect and some gotchas that can crop up along the way.
Tech
Frontend web technologies are increasingly being used beyond traditional web applications. Could the next frontier be multi-window web apps that run in both the browser and on the desktop?
Tech
Ray tracing is the process of simulating light rays to render a 3D scene. It seems really complicated at first, but it's actually quite simple. After reading this post, you could easily implement one yourself!
Tech
I recently got the chance to play around with a BBC Micro:Bit - an educational toy aimed at helping kids learn to program. It's designed to do a lot of things, but 3D rendering isn't one of them.
Tech
A look at the design principals behind the Aeron messaging system and the consequences on its suitability for Scott Logic's purposes.
Tech
A series of posts exploring the things that Spring Boot does when it magically Autowires application dependencies. Is it really a kind of magic, or is there no such thing?
Tech
Practicing Continuous Integration & Deployment, we can get new features to users faster and tighten our feedback loops. In this introduction to CI/CD, I introduce and explain an example GitHub Actions workflow which builds your front-end and deploys it with GitHub Pages
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
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
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
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
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
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