Critical Mass

Critical Mass Following on from Thursday, I was reminded of the last book I read on the subject of economics. That said, Critical Mass by Philip Ball goes beyond just economics and takes in a whole range of social sciences and delves into why these areas of study so often get things wrong.

Ball, a physicist by training and a former editor for Nature, makes the case that these subjects should focus on the behaviour of systems, rather than trying to extrapolate from individual behaviour as is so often the case. He starts by laying the groundwork and then works through a series of examples in which his approach has been successfully used.

It’s been a fair few years since I read this (my copy has a printing date of 2007) but the core point – that people are random and unpredictable individually, but highly predictable in groups – is one that has stayed with me and still appears to hold true.

I’d recommend it and I’m highly tempted to go back and read it again.

Flattr this!

Quote of the day: Divided we fall

[O]nly a broad regional political settlement involving all of the powers conducting proxy wars on the territory of Syria will end this bloody civil war. Given the regional complexities and vested interests at stake, it will be difficult for Russia and the US to forge a deal bilaterally. A united Europe, speaking with one voice, could play an important role in steering a path to peace.

Not only does Europe have an overriding interest in securing its immediate neighbourhood, it has recent experience of helping to deliver a nuclear deal with Iran. The Iran nuclear deal showed what the European Union can achieve when it works together with one voice and engages other global powers.

Guy Verhofstadt

Flattr this!

Goodwin’s Law and Social Justice Warriors

In a footnote to a post, Martín Ferrari makes the following observation:

At this point, using the term SJW in a discussion should equate to a Godwin, and mean that you lost the argument.

Pedantry aside1, Ferrari makes a good point. Increasingly, the accusation that someone is, or is behaving like, a “Social Justice Warrior” is bandied about online by reactionaries seeking to shut down discussions rather than deal with the points being made.

People who try to close down arguments in this way can, and should, be dismissed as the irrelevancies that they are.

1 Godwin’s Law merely states that “As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches 1.” The idea that making a Nazi comparison means that you lost the argument is a corollary.

Flattr this!

On Hayek and Liberalism

David Boyle makes an interesting point.

It seems to me that the Left’s narrative about neoliberalism is too naive to overcome it – it understands none of the appeal of its original ideas. It is somewhat vacuous – a fairy tale about nasty people overturning the great and enlightened Keynesian consensus of 1945.

Until we can develop a better understanding of where neoliberalism came from, and why it became such a perversion of itself, we will never force a path beyond the neoliberal consensus we need.

Maybe now would be a good time to take another look at Hayek. Or a first look, in my case.

Flattr this!

Happy Birthday to the Free Software Foundation

Happy birthday to the Free Software Foundation

On 4 October 1985 Harold Abelson, Robert J. Chassell, Richard M. Stallman, Garald Jay Sussman, and Leonard H. Tower, Jr. incorporated the Free Software Foundation, Inc. The application included also the GNU Emacs General Public License, the GNU Manifesto, a list of software which was already written (Bison, MIT Schema, Hack, plus a list of several Unix utility replacements).

And today, their message is more important than ever. We are surrounded by software, in our computers, our tablets, our phones, our gadgets and even our watches. It matters more than ever that this technology works for our benefit, and not counter to it.

The FSF’s four freedoms – to use, inspect, modify and share our software – really is the only mechanism currently available that goes any distance towards achieving this.

I’m tempted to say long may they continue but, in truth, I would much rather see a situation in which they are no longer needed.

Flattr this!

Misused English Words and Expressions in EU Publications

I am indebted to The Antihippy for pointing me in the direction of Misused English Words and Expressions in EU Publications, a weirdly fascinating and often amusing report that attempts to document the ways in which EU jargon obscures rather than illuminates. You know that feeling when you understand all of the words in a sentence but none of the paragraphs make any sense? This report goes a long way towards explaining that.

I would also like to take the opportunity to reiterate the fact, which I seem not to have made sufficiently clear, that the aim of this document is neither to criticize the work of other EU employees, particularly those who are not native speakers of English, nor to dictate how people should speak or write in the privacy of their own Directorates-General. In addition to providing guidance to readers outside the EU institutions, my comments are mainly designed either for those who, for reasons of character or personal taste, would like their English to be as correct as possible or those who need, or want, their output to be understood by people outside the European institutions, particularly in our two English-speaking member states. This takes up a principle that is clearly set out in the Court of Auditor’s performance audit manual:

‘In order to meet the addressees’ requirements, reports should be drafted for the attention of an interested but non-expert reader who is not necessarily familiar with the detailed EU [or audit] context’.

This means not only that we should not be too technical, but also that we should do our best to avoid assuming that our readers will necessarily be able to decipher our in-house jargon.

Some of the highlights so far include:



This word is an extraordinary creation that manages to combine a noun of dubious pedigree (see ‘actor’ above) with a suffix (-ness), which, elsewhere in the English language, is only applied to adjectives and participles, producing a result that is both quite impenetrable and slightly childish. Even more unusually, although it is perhaps not actually an EU word as such, because it is not often found in EU publications themselves, it is used almost exclusively in publications about the EU in an attempt to express the concept of ‘the quality of being an actor’. The association between this word and the EU is so strong that, at the time of writing, if we google say ‘US actorness’, we still get a list of entries concerning the EU. Curiously, if we look up ‘Russian actorness’ or ‘French actorness’, Google thinks that we might have just misspelt ‘actress’.


‘EU Actorness in International Affairs: The Case of EULEX Mission in Kosovo, Perspectives onEuropean Politics and Society11.’


participation, involvement, active participation, active involvement.



In English, the term ‘Anglo-Saxon’ is generally used to describe ‘a member of any of the West Germanic tribes (Angles, Saxons, and Jutes) that settled in Britain from the 5th century AD’. Also, particularly in America, it is used to denominate white people, usually of the Protestant faith (‘WASPS’), thus excluding large swathes of the population of that country. It follows that there is no such thing as an Anglo-Saxon country, or, as in the example below, an Anglo-Saxon agency or Anglo-Saxon capitalism. Furthermore, the Anglo-Saxon language ceased to exist in the 12th century (I am ill-informed about Brussels, but the last known speaker in Luxembourg was St Willibrord, 658-73919). This term is particularly inapplicable (and, I gather, irritating for those concerned) when used to describe the Irish, Scots and Welsh, who partly base their national identities on not being Anglo-Saxons, and verges on the ridiculous when used to include West Indians.


‘The Anglo-Saxon group of agencies reflect (sic) the previous dominance of Anglo-Saxon capitalism which was not disrupted by two world wars and the specific operational issues relating to Asian economies.’


‘English-speaking’ when referring to the countries or the people, ‘British’ and ‘American’ (‘Australian’ or whatever) when referring to agencies, capitalism etc. The term may, however, be used if you are talking about something like the (presumed) ‘Anglo-Saxon conspiracy’ and you will often find it used ironically in this way in the British press (usually in inverted commas). However, it has negative connotations and should be avoided.



Bovine animals are ‘any of various chiefly domesticated mammals of the genus Bos, including cows, steers, bulls, and oxen, often raised for meat and dairy products’. They are normally called ‘cattle’ in English. However, whereas the word ‘bovine’ may be recognised by English speakers (often with the meaning ‘sluggish, dull and stolid’), the terms ‘ovine’, ‘caprine’ and ‘porcine’ would only be known to specialists.


‘Commission Decision of 26 July 2004 amending Annexes I and II to Council Decision 79/542/ EEC as regards model certificates relating to the importation of bovine animals for slaughter and bovine, ovine and caprine fresh meat’.


cattle, sheep, goats and pigs respectively.

And I haven’t reached the letter C yet.

There is, of course, a serious point to all this:

[I]nternally, it may often be easier to communicate with these terms than with the correct ones (it is reasonable to suppose that fewer EU officials know ‘outsource’ than ‘externalise’, for example). However, the European institutions also need to communicate with the outside world and our documents need to be translated – both tasks that are not facilitated by the use of terminology that is unknown to native speakers and either does not appear in dictionaries or is shown in them with a different meaning. Finally, it is worth remembering that, whereas EU staff should be able to understand ‘real’ English, we cannot expect the general public to be au fait with the EU variety.

The report is well worth reading and the associated website tells me that a 2015 version is on the way.

Flattr this!

In a nutshell: The problem with Corbyn

Some of [Jeremy Corbyn’s] friends say that they understand a “big tent” approach has to be adopted. But finding a modus vivendi will require a capacity for compromise that has not been the notable feature of a political career lived in a leftwing bubble. And he can’t make too many concessions to make his leadership more palatable to parliamentary colleagues without risking the alienation of the people who have just made him leader on the basis that he keeps his principles unpolluted by pragmatism.

Andrew Rawnsley

Flattr this!

John McAfee to run for US president

I have to admit that, on seeing this headline pop up in my news feed, I clicked through expecting to have a bit of a laugh at the expense of yet another slightly bonkers candidate with no prospect of actually winning. After all, his rather colourful private life has been much publicised to the point that any hope of achieving public office is wildly ambitious, to say the least.

But then I read this:

I live in a country that is governed by people largely illiterate in cybersecurity – as proven by the multiple government computer hacks.

Yet cyber-warfare is now the means of war. My government is dysfunctional. For the 300 million other Americans – you are in the same boat with me.

He has a point. It’s not just in the US that IT-illiterate politicians continue to make IT-illiterate promises to an IT-illiterate electorate, and then wonder why nothing ever works out as expected.

I don’t think John McAfee has the faintest hope of winning this – or any – election. But if can lever even a little IT literacy into the debate, then he will have done us all a huge favour.

Flattr this!

Better date conversion with timestamp_format

Some time ago, I discussed the never-ending problem of converting a six digit number into an ISO date. I have since found a better way of doing this and, in order to save myself a search through the IBM Knowledge Center every time I need to do this, I’m putting it up here.

So here’s the problem: I have a table in which the date is represented as a 7 digit number. The first digit is the century (0 indicates 20th century, 1 indicates 21st century) and the next six digits represent the date in YYMMDD format. So 1150831, for example, is 31st August 2015.

The request in hand is for a report, so I want to convert the number into a date so that it looks sensible once exported into Excel. Timestamp_format is your friend.

The TIMESTAMP_FORMAT function returns a timestamp that is based on the interpretation of the input string using the specified format.

It’s that “interpretation of the input string” that makes this so handy. Put simply: you tell the function how to interpret the string and it will do the rest.

Here’s an example. I have a contracts table (CONTRACTS) with three columns: Contract Number (CTNR), Start Date (STDT) and End Date (ENDT). The start and end date are both seven digit numbers as described previously. I need to list all of the currently active contracts (Start Date is before Today and End Date is after Today).

And the SQL looks like this:

select CTNR,
       date(timestamp_format(substr(digits(STDT), 2, 6), 'YYMMDD')),
       date(timestamp_format(substr(digits(ENDT), 2, 6), 'YYMMDD'))
where date(timestamp_format(substr(digits(STDT), 2, 6), 'YYMMDD')) <= current_date
and date(timestamp_format(substr(digits(ENDT), 2, 6), 'YYMMDD')) >= current_date

Current_date is a special register that returns the current date, but that’s not important right now.

The date conversion part involves several nested functions to get to a final date, so here’s the breakdown using a date of 1st September 2015 (1150901):

  • digits(STDT) converts the 7 digit number into a 7 character string. So 1150901 is converted to ‘1150901’.
  • The IBM i can figure out which century it’s in by looking at the year, so I don’t need the century flag and the substr(digits(STDT), 2, 6) strips it out to give me a value of ‘150901’
  • The timestamp_format function takes the date string and uses the format string of ‘YYMMDD’ to generate a timestamp of 2015-09-01- Since I only passed it a date, the hours, minutes and seconds are all zeroes.
  • And finally, I can use the date function to retrieve the date from the generated timestamp.

And here’s the result:

CTNR      DATE      DATE
C1000001  01/09/15  31/08/16

Pretty, and portable.

Flattr this!