Blog

Tech

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
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
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
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
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
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
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
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
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 · 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
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...
Tech
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.
Tech
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
Tech
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 by Scott Logic’s UX team, the app...
Tech
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!
Tech
The redux pattern provides a simple (and strict) pattern for managing state; a single store holds the state while a reducer applies actions, evolving the application state. As your app becomes more complex, you can split up your reducer into separate functions, however, what if you have multiple instances of...
Tech
In this post, we discuss design and implementation choices for account and session management features, and how these trade off against usability and other goals.
Tech
Kotlin is the latest JVM-targeted language to see a 1.0.0 release. Having experimented with it for a short while I thought I would capture my experience and point out a few gotchas.
Tech
Over the past several years there has been a lot of talk about cryptocurrencies, such as bitcoin, and the blockchain technology that underpins them. However it can be difficult to understand how the blockchain actually works in practice, and why it is such a clever method for currency exchange. Two...
Tech
This post uses React to show how we can use features from functional programming in everyday JavaScript, and integrates RxJS to show how these approaches are common across many frameworks today.
Tech
Mondo Bank has recently moved into public Beta, sending out 1,000 cards to trial customers each week. I received my Beta card a few days ago, and have been using it ever since. This blog post takes a quick look at the Mondo API and how I used it to automate expense claims!
Tech
Along with the modularisation of code, D3 version 4 also brings new support for canvas drawing, thanks to the d3-path package introduced in version 4. There are performance advantages to using canvas over svg for drawing complex charts (however canvas is not necessarily always better). You can read more about...
Tech
This post introduces a new feature of D3 version 4: the d3-path package. d3-path is an abstraction over SVG path creation which uses the canvas element’s Context2D interface. Previously creating path generation code involved a lot of concatenating SVG path commands like M0,0 or L2,2, and the somewhat more cryptic...
Tech
A brief look at the current state of application security in Electron
Tech
I recently created a site which I’m proud to say now hosts an impressive collection of tweet-sized D3 creations from the hugely creative people of the internet. In this post I’ll talk through deconstructing one or two of those creations with the aim of giving any aspiring artists a starting...
Tech
Making the jump to fully modularized applications in javascript is now incredibly easy with ES6 modules and javascript package manager (jspm). We'll take a look at the refreshing simplicity in the jspm workflow and how it goes about achieiving this.
Tech
In this post, we discuss cross site scripting attacks against web apps, and how to defend against them.
Tech
The next version of D3, the data visualisation library, is on the way. As we maintain D3FC (a charting library built on top of D3) we want to stay on top of those changes, to make sure that the library makes appropriate use of any new functionality and to embrace...
Tech
This post discusses building a modern single page marketing site using a static site generator
Tech
Swift Bond is a binding framework that removes the mundane task of wiring up your UI. In this tutorial, which was originally published on Ray Wenderlich's website, I introduce the concepts of Bond and demonstrate how to use it to rapidly build an iOS app.
Tech
In this post, we discuss SQL and other injection attacks against web apps, and how to defend against them.
Tech
If you've used React and Flux, you'll know how powerful this combination is when building single page applications. But how practical is it when building truly large scale applications with multiple sections?.
Tech
In this post, the causes, effects and mitigations of Man in the Middle attacks against web apps are discussed.
Tech
Hot-reloading UI is a hot topic at the moment. I want to take some time to explain why, in the class of applications I typically work on, I believe it to be such an important feature for future UI frameworks to have. Fundamentally it’s about improving the developer workflow, improving...
Tech
This post looks at integrating Angular 2 with Immutable.js and Redux, a popular Flux store implementation. It also demonstrates that the functional approach, encouraged by these technologies, allow for powerful concepts such as time travel, where you can replay actions and application state.
Tech
Literally a couple of hours after we released the previous post on writing a RESTful API with ASP.NET 5, I learned that Microsoft have renamed the new platform. This is a very short summary of that decision.
Tech
This blog describes my first experience of writing a RESTful API with Microsoft's new MVC 6 framework which is due to be released as part of ASP.NET 5 in early 2016.
Tech
In this post, I investigate the HTML5 Web Audio API, using it with D3 to perform real-time audio visualisation.
Tech
This blog shows how to get started with microservices using Dropwizard. It guides the reader through building a simple task-list service.
Tech
Angular 2.0 introduces a component-based approach to building applications, where the rendering can be optimised by selecting a suitable change detection strategy for each component. This post looks at how the OnPush change detection strategy works quite elegantly with the concept of immutable objects as enforced by Immutable.js.
Tech
From my perspective Angular 2 is a great improvement over Angular 1. The framework is simpler, and as a result your code is more concise, making use of modern JavaScript concepts. However, this does come at a cost; with Angular 2 the required tooling is really quite complicated.
Tech
This blog post takes a step-by-step approach to building a simple todo-list application with Angular 2.0. Along the way we'll look at web components, dependency injection, TypeScript, bindings and the Angular 2.0 change detection strategy which combine to make a much more elegant framework to its predecessor.
Tech
OData Controllers offer an easy interface between data and your application, but require one controller per model type. These controllers often have a large amount of almost identical code. In this blog post, we look at using C# Generics to remove this duplication.
Tech
There aren't many examples of OAuth2 working with a SAML 2.0 as an authentication method on the Internet. The purpose of this post is to provide a simple implementation of these two technologies working together.
Tech
A few days ago Bloomberg published their list of 50 companies to watch in 2016, and for some reason they decided to publish the entire report in ASCII! I thought it would be a bit of fun to see if I could use D3 to create my own ASCI charts
Tech
Libraries like d3 and d3fc do a fantastic job at making interactive charts. However, when the data size is in the hundreds of thousands, performance suffers. In this post, I'll have a look at some sampling techniques recently implemented in d3fc, and show them off with a demo.
Tech
While d3fc (a toolkit of charting components built in the d3 style) embraces the philosophy of simplicity over performance, there’s no point in creating a chart with lousy performance. In this post I’ll run through some of the tips and tricks for squeezing the best performance out of d3fc without...
Tech · Video
ReactJS, Virtual DOM, JSX, a hackable editor, ES6 modules, classes, arrow functions, node, iOS, native-UI, flexbox, idempotent functions… In this talk I’ll be geeking out about all the seriously cool tech that makes ReactNative possible.
Tech
JavaScript builds are getting more complex and time consuming. This blog post shares a few steps I took to improve the performance of one of our project's grunt build, hopefully some of the tools I used will be of use to others.
Tech
Ionic is a framework built on angular-js, targeted at creating mobile applications. However, one useful component that isn't part of the standard controls is the master detail layout, and this post describes the solution I used when creating this control.
Tech
Recently I needed to make a site for a personal project, and although I work on dynamic web apps for a living, I hadn't had to make a proper, honest-to-goodness website for years. There are plenty of well-known options out there for making sites quickly, like Wordpress and Squarespace, but why go for the quick option, I said to myself, when there's a learning opportunity to be had!
Tech
Every year Scott Logic takes on a number of interns who spend 12 weeks writing code, working on projects and having a great time in the offices. My name is Ruth, and along with Chris Barrett, I am an intern in the Newcastle office; and this summer we’ve been working...
Tech
A foray into generating simple charts in a fashion inspired by D3 using React as a rendering engine.
Tech
I try to clear up confusion on different ways of setting up TypeScript projects in Visual Studio, particularly for non browser (WebWorker or Node) projects, and end up more confused than ever.
Tech
I’ve been working on an open-source charting library called d3fc. And following Colin’s lead, was looking for a creative example to replicate: I think I found it… Once upon a time The story starts with Coinbase, a well-known(/funded) Bitcoin company. I was hunting for a freely available streaming data feed...
Tech
Code quality is important in large systems and web sites are no exception. This post shows how Umbraco enables developers to write clean and maintainable code.
Tech
Meteor seems like a fresh way to work. It makes a lot of things, like CRUD operations and keeping your UI in line with data changes, extremely easy and it adds a lot of nice, clever tricks, like the client-side stubbing of server-side methods.
Tech
Sizing advanced components such as grids using ng-style can leave you with rendering problems. Here, I create a variant of ng-style with some small tweaks to avoid this problem.
Tech
The standard LDAP JNDI implementation that ships with Java leaks a classloader reference when used from a web application hosted in a web container. While Tomcat and Jetty both include factory-fitted workarounds, JBoss does not. This post describes a JBoss-specific fix.
Tech
A look at some of the more unusual parts of JavaScript by examining seven things I've learnt recently.
Tech
In the second post of my series on the Aurelia framework I walkthrough bundling the less2css project. The result of which significantly reduced the load time, but did uncover a few aspects of the Aurelia bundling process that do not yet feel fully formed.
Tech
This post gives a walkthrough of a project that makes use of the new Aurelia framework. It also take a look at how it compares to Angular 2.0, which is still in development.
Tech
Airbnb's JavaScript coding standards are now based around ES6 and contain many guidelines to help you take advantage of its features. In this blog post I'll present some resources I created to help you learn ES6 through their guidelines.
Tech