Is there bias in BBC Question Time panel selection?

Update: This analysis was referenced in The Economist.

The BBC has been fighting back against accusations of bias in the selection of political guests. Such accusations are not new, but do they have merit?

In an attempt to defend the impartiality of the show the BBC Press Team recently published a graphic reflecting the political alignment of panellists.

Unfortunately the graphic is a bit scarce on the specifics of what the sources and the beeb have declined to elaborate on it or provide the underlying data.

Without the underlying data, it’s hard to know exactly what the graphic actually…

How and why to use custom error types in JavaScript

Handling errors well can be tricky. How Error() historically worked in JavaScript hasn’t made this easier, but using the Error class introduced in ES6 can be helpful

Image © Quinn Dombrowski

Throwing errors in JavaScript

JavaScript supports try/catch/finally but the Error object it uses works differently from Exceptions in other languages and it doesn’t provide a way to catch Errors by type in the same way you can with Exceptions in Java or C# so it’s quite common for all Errors thrown in a project to be instances of Error.

Some vendors have implemented a conditional catch clause but it’s not a standard and not widely supported in…

Working around Cross Origin restrictions during development

Making requests to HTTPS APIs from HTTP sites running on localhost can be a pain, especially as browsers keep changing how they expose the option.

Browser Settings

The only way to turn off Cross Origin Restrictions in Chrome is to turn off the feature completely when starting the browser by passing arguments to it.

e.g. --disable-web-security --user-data-dir=~/.chrome-disable-web-security

On my Mac, I have the following in my .bash_profile so I can just type chrome at the command prompt so I can quickly start an instance of Chrome with web security disabled for development.

alias chrome=”/Applications/Google\\ Chrome --disable-web-security --user-data-dir=~/.chrome-disable-web-security”

This saves me from…

From GitHub to Docker Hub to Docker Swarm

Configuring automated deployment of an image to Docker Hub every time a change is pushed to a specific GitHub branch (or when a new release is tagged) is easy to do with Docker Hub user interface.

Docker Hub will automatically configure your GitHub repository to trigger this for you and is able to build different Docker images from different GitHub branches.

While it’s quite straightforward to setup and run a private registry, using Docker Hub is very cheap and provides automated image building, starting at only $7 a month for 5 private repositories.

This makes using DockerHub much more cost…

Authentication for Next.js

Update June 2020

The next generation version NextAuth.js was released in June 2020!

It is built for Next.js and Serverless, with simple configuration, out of the box support for a large number of authentication services and supports MySQL, Postgres, MSSQL and MongoDB (and and without a database!).

Find detailed documentation and a working example at

Original Article

This week I released NextAuth, a module specifically designed for Next.js and React, that supports email sign in and oAuth.

It comes with example configuration for Facebook, Google+, Twitter and email sign in and uses Mongo DB to store accounts, but it is easy to extend to…

Docker Swarm is a great way to deploy Docker Containers on AWS or Azure, both of which are supported cloud providers for Docker Community Edition (CE) and Enterprise Edition (EE).

A common admin task can be needing to run a command on all nodes on a cluster, either for monitoring or when debugging problems.

Executing Containers on all nodes in a cluster is easy, and the docker stats command lets you easily view the memory, CPU, network and IO usage of all Containers on an individual node.

However, unless you are running the Enterprise Edition or something like the Portainer

A web based tool for video and audio transcription, translation, captioning and video creation.

Less than a month ago we released the first public version of our automated video transcription and translation tool Mercury, supported by prototype funding from the Google Digital News Initiative.

We now have hundreds of registered users and hundreds of videos uploaded. This is a progress update on how things are going — including challenges and the sort of feedback we have had so far.

Servers by pierrotcarre

A guide to using Docker for the first time.

This guide was origionally written as internal documentation, before Docker Community Edition for Windows and Mac was published. Docker Community Edition is the easiest and most robust way to run Docker on Windows or Mac, as it does most of the setup work for you.

This guide is useful for background on how to interact with Docker and for debugging when things go wrong. The original documentation has been updated to reflect where you can go ahead and skip sections as Docker Community Edition does the initial setup and configuration for you.

Docker lets you deploy your code inside a…

Update: We are looking at rolling the exploratory work we’ve done on this into another project we are working on with a larger team!

We recently picked a “Smart Editor” as as one of the project we’d like to work on. If you haven’t read the original pitch, the tl;dr description is “an editor that helps you write articles”.

It helps by using Structured Data, to suggest connections and additional information you might want to include your article, and analytics, to suggest how you might want to improve your writing to better serve your audience (What questions are they asking…

The approach Facebook and Google are taking to False News, how they differ, how it could be improved and how publishers can help

Facebook’s VP of News Feed Adam Mosseri sharing insights about the News Feed with Jeff Jarvis at the International Journalism Festival in the Sala Dei Notari, Perugia, Italy

This week at the International Journalism Festival in Italy we’ve heard from Facebook about what they are doing to tackle what they are calling False News in their News Feed.


False News a term Facebook have adopted that’s intended to a better job than the more familiar term “Fake News” of distinguishing between articles that contain unintentional mistakes or minor factual inaccuracies, “misleading content” and “false content”.

What Facebook are doing

The system Facebook described at a panel on Thursday morning involves highlighting articles that have multiple reports from Facebook users to a team within Facebook, who will attempt to judge if the site…

Iain Collins

Software for news and media and civic tech. Cat herder. Director at Glitch Digital.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store