This is part 2 of the Using WebdriverIO guide where we'll be taking a closer look at the tests and implementing the page-object model.
WebdriverIO is a great addition to your automation toolkit. This 2-part post first walks through configuring WebdriverIO and automating the test process using Gulp, before taking a look at the tests themselves and abstracting using the page-object model in part 2.
Inspired by Colin’s article on building an expenses app with the Mondo API, I wanted to create something to make use of the webhook API which fires in real-time (ish) whenever a transaction happens. In this post I’ll cover subscribing to the Mondo webhook, creating the glue code as...
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...
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.
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!
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...
Automation of user interactions in browsers can be difficult. Even more so when you have to hunt for elements in a single page application. How can we ensure reliable location of these and reduce flaky checking?
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
How to stay fresh, focused and super effective when testing alone
A brief look at the current state of application security in Electron
On the 1st of March myself and Graham Odds travelled to Helsinki, Finland to attend the 8th annual Interaction week.
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...
In this post, we discuss cross site scripting attacks against web apps, and how to defend against them.
This post discusses building a modern single page marketing site using a static site generator
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...
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.
In this post, we discuss SQL and other injection attacks against web apps, and how to defend against them.