Computing Blog

A blog about all aspects of computing and technology from software development to social network to commentary on the IT industry as a whole.

Swiss Cheese at Plymouth

On the third of April there was a low-speed collision between two passenger trains at Plymouth station. A local train from Cornwall ran into the back of a stationary London-bound express. Though nobody was killed, thirty-five people were injured, a couple of them seriously.

The preliminary report makes it sound like an archetypal “Swiss cheese” incident.

If you imagine safety represented by several layered slices of Emmental cheese; each hole in the cheese represent an opportunity for human error to creep in, but an accident can only get through when all the holes line up. The more layers of safety the better.

This was what seems to have happened at Plymouth.

The normal pattern of operation was disrupted due to scheduled maintenance on the lifts, causing trains to be diverted away from their regular platforms. The signaller wrongly estimated the amount of space in the platform behind the express, and thought the local train would fit in behind it. The driver of the local train wasn’t expecting the platform to be part-occupied by another train. And because the approach at the western end of the station is on a very sharp curve, the driver didn’t realise the express was on the same track until it was too late to stop.

Posted in Testing & Software, Travel & Transport | Tagged | 2 Comments

The Trolling of Tay

TayThe story in brief: Microsoft created a self-learning chatbot designed to emulate the speech of Millenials. They let her loose on Twitter, where she immediately got trolled hard by members of one of the most notorious boards of 4chan, and she turned into a massive Hitler-quoting racist. Microsoft took the bot down, and are working hard to remove the worst of her tweets. Oops.

Aside from obvious conclusion that there are some awful people on 4chan, what can the testing community learn from this?

One seems to be that if you carry out testing in a very public space, any testing failures will be very public as well. An artificial intelligence turning into a noxious racist is a pretty spectacular fail in anyone’s books. Given the well-known nature of the bottom half of Twitter, it’s also an all-too-predictable failure; people in my own Twitter feed express very little surprise over what happened. It’s not as if anyone is unaware of the trolls of 4chan and the sorts of things they do.

What they should have done is another question. Tay was a self-learning algorithm that merely repeated the things she’d been told, without any understanding of their social contexts or emotional meanings. She’s like a parrot that overhears too much swearing. It meant that if she fell in with bad company at the start, she’d inevitably go bad.

The most important lesson, perhaps, is that both software designers and testers need to consider evil. Not to be evil, of course, but to think of what evil might do, and how it might be stopped.

Posted in Testing & Software | Tagged , | 7 Comments

Testing Blog Links

I haven’t blogged that much about testing of late, so here are a couple of recent links from the testing blogosphere that are well worth a read.

First, in response to some rather heated discussion on Twitter, a post from last year by Adam Knight in defence of the principle of hiring for cultural fit. It’s a concept that comes in for a lot of justified criticism, going from rejection of well-qualified candidates for superficial reasons that have nothing to do with their ability to do the job, to the much more serious concern over bias in terms of gender and ethnicity. Adam Knight recognises those concerns, but stresses that cultural fit should be about soft skills and style of working, not stereotypes.

Second, the always excellent  Mike Talks writes about blogging itself and asks “Are you your own Mary Sue?“. He users the example from the world of music; the famous Köln concert by jazz pianist Keith Jarrett, and imagines the story of the circumstances leading up to the performance from the different perspectives of Jarrett humself, and concert organiser Vera Brandes.

Posted in Testing & Software | Tagged , , | Comments Off

The TV Evangelist Social Media Model

One consequence of the growth of social media is that the most successful way of building a big online following goes something like this:

  • Find a partisan audience and tell them what they want to hear.
  • Adopt a confrontational or preachy manner that’s guaranteed to get up the nose of your chosen audience’s outgroup.
  • Use the inevitable backlash from that outgroup to boost your own signal.

We’ve seen it from people all over the ideological spectrum from right-libertarianism to leftist social justice activism. It’s the tried-and-tested method of the tub-thumping TV evangelist. It works, but it comes with a social cost. “Othering” entire demographics never ends well no matter who’s doing it, even if some criticism of that demographic’s stereotypical behaviour is justified. It makes us forget our common humanity when we divide ourselves up into ingroups and outgroups. Not only does inject a form of party politics into places where it doesn’t belong, such as workplaces and social spaces, but it makes it far easier for those with insufficient empathy to justify doing horrible things to people.

Then we see Donald Trump doing the same thing. And the size of his platform makes him genuinely dangerous.

Posted in Religion and Politics, Social Media | Tagged , | Comments Off

A question for readers of this blog, whether you’re one of the few that regularly comments or not. What would encourage you to leave more comemnts? Or, indeed, any comments?

Posted on by Tim Hall | 7 Comments

The March of Technology

Goot post by Stephen Tall on why he has given up on Channel 4’s ‘Spin’. It’s because it seems to ignore the existence of the internet and social media, and that absence breaks suspension of disbelief in what is supposed to be a present-day drama.

* News breaks of French presidential hopeful Anne Visage’s affair with the recently blown-up former President. Her campaign manager is issued with the urgent warning… “this story will hit the news-stands in just a few hours’ time!”. Because, obviously, we’re all ignorant of what the newspapers are saying til we walk past les kiosques in the morning and Twitter stops at the white cliffs of Dover.

* A key witness — the one person who can testify to the motives of the President’s assassin — is being hunted by the French authorities desperate to ensure their state-sanctioned lie of terrorism isn’t challenged. Tensely, he hunkers down for a couple of days until a journalist with a TV camera can arrive and film his evidence. On tape. Seriously. No suggestion is made that he might tell his story using the smart-phone he’s carrying and post it to the Internet. Or even tweet his testimony.

If somebody had written that twenty years ago, not a word of it would have made any sense. We are indeed living in a science-fiction future, just not quite the science-fiction future we were promised.

Posted in Science Fiction, Social Media | Tagged , | Comments Off

In defence of NULL

There was a blog post a while ago that declared that NULL was the worst ever mistake in history of computer science. The fact that nulls existed meant that code always has to be written to handle them, otherwise programmes would crash with Null Pointer Exceptions or their Windows equivalent Object Reference Not Set To An Instance Of This Object. Life would be easier and less error-prone if there was no such thing as NULL.

It may have a point when it comes to object-orientated programming languages, but when comes to databases, the suggestion that the concept of NULL is a dangerous bad idea is nonsense. The fact that some common beginners’ mistakes involve a lack of understanding over how to use NULL does not change this.

NULL has meaning.

Precisely what it means is dependent on the context, but it still has meaning. Consider an End Date. What does it mean if you have no End Date? It means, perhaps, that you are still employed, or maybe even still alive. Defaulting to some arbitrary date far, far into the future in this context is nothing but an ugly kludge. You still have to write code to handle that value, and you’ve probably got a greater potential for error than if you’d just used NULL.

NULL has meaning.

Another example. Imagine a stock control system. Each stock item has a re-order level. When the stock level reaches this point it will trigger an automated re-order process.

Now imagine there are some stock items where you want to keep track of how many you purchase and use, but you don’t want to hold them in stock; perhaps the value is high and lead time is low, and you don’t use them frequently enough to want that much capital tied up in inventory. You will only raise purchase orders manually when you know you’re going to need the thing.

So most of the time the stock level is going to be zero. But you don’t want that automated re-order process to touch it. What value do you give the re-order level?

Now, you could set it to -1, and one stock control system I know did precisely that. But that’s still a kludge, and there are scenarios that will break it.

What if the stock transactions are transmitted via a mobile network that’s not 100% reliable, which means they’re not guaranteed to be real-time and may be received out of sequence? Again, I know a system that works like this. For one thing you can’t enforce a database constraint that makes sure the stock quantity never goes negative. It’s possible that you might end up with a stock level of -1 for a short period because a receipt transaction has been delayed by an electronic sargasso. Then there’s a window in which that pesky re-order process could turn up and do mischief.

If you’d just let the re-order level be NULL for those items you only want to re-order manually, you would not have that potential bug.

This is why we have NULL.

Posted in Testing & Software | Tagged | 5 Comments

As you may have noticed, I’ve streamlined the front page of the website making it slightly less cluttered, and faster to lead. It now shows five featured and five recent posts across all categories. What do you think?

Posted on by Tim Hall | 2 Comments

Has anyone got experiences (good or bad) of using Disqus as the commenting system on a WordPress blog?

Posted on by Tim Hall | 8 Comments

First they came for the right-wing bellends

Following on from the shadowbanning nonsense, Twitter have now suspended the account of an aggressively anti-feminist right-winger with 90000 followers, with no hint of exactly what it was he said that crossed the line.

I am not going to defend this man’s speech or opinions, he’s an unpleasant and misogynist bigot. But again the lack of transparency suggests Twitter has adopted a policy of suspending high-profile accounts “pour encourager les autres” in a largely ad-hoc manner. And that does raise all sorts of concerns over the direction in which Twitter is heading.

This comment on Popehat sums up the concerns quite well.

Twitter’s getting too Orwellian for my tastes. No fun. I’ll be damned if I stick around if they’re going to let the likes of Arthur Chu and Anita Sarkeesian decide who gets voted off the island.

It’s probably going to be a while before the speech of liberals is threatened. Precedents in other spaces suggest that if they succeed in driving off the wingnuts the next targets are more likely to be those on the wrong side of sectarian disputes within feminism.

But the mention of Arthur Chu is a reminder that my card is already marked. I’m on his shared block list along with 30000 other people because months ago I criticised something he said. While it would be monumentally stupid for Twitter to decide one morning to suspend every single account on that blocklist, their recent behaviour means that can’t be trusted not to be that idiotic.

Posted in Religion and Politics, Social Media | Tagged , | Comments Off