Some of the biggest challenges when testing software can be getting the software into some very specific states...
In this post, the causes, effects and mitigations of Man in the Middle attacks against web apps are discussed.
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...
This post uses Docker Compose to spin up a three container HTTP server. One container services the HTTP requests and delegates work to two other containers in a load-balanced way. Erlang is used for development to add a bit of extra challenge!
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.
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.
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.
When automating end to end browser verification, how do you keep it simple, make it robust and enable flexibility within your automated checks. One way is to use helpers.
Six annoyingly awkward bug patterns that every tester should know...
What is ‘Big’ Data? Big data is one of those buzz phrases that gets thrown round a lot, companies love saying they work with ‘Big’ data, but what is ‘Big’ data? When does data get so big that it can be called Big data? One Gigabyte? How about a...
In this post, I investigate the HTML5 Web Audio API, using it with D3 to perform real-time audio visualisation.
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.
This blog shows how to get started with microservices using Dropwizard. It guides the reader through building a simple task-list service.
I am often asked for recommended reading on design by people from all sorts of different backgrounds. My answers vary wildly depending on the person asking and the angle or topic I think might be most relevant to them. However, there are certain books that come up quite often so...
Web testing, in simple terms, is checking your web application for potential bugs before the system is revealed to the public. When testing web applications, there are many different resources you can use to help your testing. But a great resource is browser developer tools which can help in many...
This post explores continuous delivery within an agile context, and goes into detail about what it really means to be doing continuous delivery.
This is the second post in a series of simple and short tutorials for automating tests using Protractor. In this post we will look at the difference between isPresent and isDisplayed, and we will use getText and the matchers toContain and toEqual to create some tests.
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.
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.