Don’t mock George Brandis

He’s trying to be intellectual.

In fact, today’s xkcd comic about free speech is delightfully well-timed, considering yesterday’s remarks by George Brandis about free speech in an online magazine called Spiked.

The magazine quotes Brandis as follows:

He isn’t a climate-change denier; he says he was ‘on the side of those who believed in anthropogenic global warming and who believed something ought to be done about it’. But he has nonetheless found himself ‘really shocked by the sheer authoritarianism of those who would have excluded from the debate the point of view of people who were climate-change deniers’. He describes as ‘deplorable’ the way climate change has become a gospel truth that you deny or mock at your peril, ‘where one side [has] the orthodoxy on its side and delegitimises the views of those who disagree, rather than engaging with them intellectually and showing them why they are wrong’.

Quite so, George! It’s deplorable that we’re arresting climate change deniers, gaoling them after secret trials, banning their books, preventing newspapers and TV stations from repeating their claims, and…

Oh wait, sorry, that’s what isn’t happening. It’s confusing, isn’t it?

What’s more confusing is that, while George has identified authoritarianism as the problem, he himself is the Attorney General. I don’t know if you quite understand how authoritarianism works, George, but it usually involves the government, or at least whoever is in control of the military. Is your government in control of the Australian Defence Force, George? I know this isn’t your portfolio, but perhaps you could quickly reassure us that someone else isn’t in control of the military.

And having made said reassurance, perhaps you could then explain how a bunch of scientists and activists can, without military force, engage in “authoritarianism”. Unless said scientists have developed some sort of mind-control weapon with those mysterious fountains of grant money they (apparently) keep swimming around in.

Oh, but I think I see the source of the confusion. You see, it’s not that deniers are being prevented from speaking. Indeed, they are some of the most outspoken people in the world. Rather, it’s that gangs of merciless intellectuals are refusing to take the deniers seriously. Now that is a deplorable violation of human rights if ever there was one. The deniers’ views are being delegitimised, George says. I mean, nobody has even contemplated “engaging with them intellectually and showing them why they are wrong”.

Except, now that I think about it, everyone. It’s a fine line, I suppose. I mean, it’s easy to mistake intellectual engagement for authoritarianism when your arguments are repeatedly shown to be an exemplar of the Dunning-Kruger effect. I say “repeatedly”, because no denier argument, however frequently refuted, ever just goes quietly into the night.

Of course, there is the outside chance, as deniers endlessly regurgitate long-refuted arguments and complain that nobody has “engaged” with them, that some of us may tune out.

Sorry George, I know I shouldn’t be “authoritarian”, but sometimes, when I’ve had a long day, it’s difficult to accord due respect and deference to bullshit, even yours.

WA senate election 2014: allegiances

At first glance, it’s difficult to make much of the group voting ticket (GVT) data.

One of the most important bits of information, I feel, is whether each party preferences the Liberals before or after Labor. Or, to ask a slightly more complicated question, how does each party rank the most likely winners? The answer would allow us to categorise microparties’ own ideology, which can otherwise be tricky. Quite often, the only other readily accessible information on microparties is the blurb they put on their websites.

I’ll look at the top five parties, by primary senate votes received in the 2013 federal election. These are: Liberals (2.7 quotas), Labor (1.9 quotas), Greens (0.66 quotas), Nationals (0.35 quotas) and Palmer United (0.35 quotas). These parties are the main game1.

So, I’ve boiled down the group voting ticket (GVT) data to a set of rankings of these parties2. Based on the results, there are a few clear categories. Nonetheless, there’s a lot of confusion as to whose side Clive Palmer is on (other than his own). However, the person of the moment must be Labor’s Louise Pratt, who has been treated almost as an independent in the preferences of several minor parties.

I couldn’t think of a good way to visualise this graphically, so I’ll just use bullet points.

Allies of the Coalition, enemies of the Greens

The following parties (with a rather libertarian flavour) all put the Coalition ahead of Labor, and the Greens last:

  • Australian Fishing and Lifestyle Party
  • Australian Voice
  • Building Australia Party
  • Freedom and Prosperity Party
  • Liberal Democrats
  • Mutual Party
  • Outdoor Recreation Party (Stop The Greens)
  • Palmer United
  • Shooters and Fishers
  • Smokers Rights

These parties all place the Liberals and Nationals next to each other (one way around or the other). However, they disagree over Palmer United, with some putting PUP first (including, obviously, PUP itself), and others putting it behind Labor, but still ahead of the Greens.

There are four more parties that basically fit this mould, but which seem to be making personal judgements of certain individual candidates:

  • Australian Christians (concerning Joe Bullock and Linda Reynolds)
  • Democratic Labour Party (concerning Louise Pratt)
  • Family First (concerning Louise Pratt)
  • Rise Up Australia Party (concerning Louise Pratt)

These all have a very social conservative flavour. In what seems like a personal grudge, The DLP, FF and RUAP have taken special care to put Labor’s Louise Pratt after even their Greens arch-enemy, probably for being particularly outspoken on social justice issues. And, for reasons that escape me, the Australian Christians have elevated Labor’s Joe Bullock above the Liberals’ Linda Reynolds.

Neutral on Labor vs Liberal, but still hate the Greens

There are two parties running dual tickets, with the order of Labor and the Liberals switched around:

  • Australian Motoring Enthusiast Party
  • Katter’s Australia Party

Both place PUP and Nationals first and second, and the Greens last.

Prefer Liberals, but (perhaps) don’t mind the Greens

Another two parties that stick out:

  • Australian Sports Party (which, of course, won a seat in the recount, and then lost it again when the election was annulled)
  • Republican Party of Australia

These two prefer the Liberals, Greens and then Labor, in that order — a relatively unusual combination recently (though it used to be common practice for the Liberals themselves).

Allies of Labor/Greens, but Labor first

This rather short list of parties (plus independent) put Labor first and the Coalition last:

  • Help End Marijuana Prohibition (HEMP) Party
  • Russell Wolf (independent)
  • Sex Party

HEMP puts PUP ahead of the Greens, while the other two put the Greens ahead of PUP.

Allies of the Labor/Greens, but Greens first

A few more parties put the Greens and Labor ahead of the other three major choices:

  • Animal Justice Party
  • Pirate Party
  • Secular Party of Australia
  • Socialist Alliance
  • The Wikileaks Party, which gives special consideration to the Greens’ Scott Ludlam and Labor’s Louise Pratt, placing them individually before the Greens and Labor.

These parties also tend to prefer the Nationals to the Liberals, except for Animal Justice (which possibly associates the Nationals with shooting and slaughtering things). They put PUP anywhere from 3rd to last.

[ Addendum (2014-03-24): the Animal Justice Party actually has dual tickets, both of which interlace the positions of the Labor and Greens candidates, two-by-two; i.e. two Labor candidates, then two Greens candidates, then two more Labor, etc. One ticket starts with Labor, the other with the Greens. ]

Finally, there are three more special cases:

  • The Australian Democrats have dual tickets, both preferencing PUP and then the Greens, but alternating the positions of Labor and the Coalition.
  • The Sustainable Population Party has three tickets that rotate the positions of Labor, the Greens and the Coalition. At first glance, this appears to be neutral, but if you look closely you’ll see that, on balance, the Greens come out slightly ahead and the Liberals slightly behind. (You could arrange three tickets such that any three parties are evenly-preferenced, so it’s informative that SPP hasn’t done this.) They also put the Nationals first and PUP last.
  • The Voluntary Euthanasia Party has dual tickets, both of which put the Coalition last and favour the Greens over Labor, yet single out Labor’s Louise Pratt again for special promotion. One of the tickets puts Pratt ahead of the Greens, and the rest of Labor ahead of PUP, while the other puts Pratt behind the Greens, and the rest of Labor behind PUP.


If you’re voting below the line, hopefully you’ll find this analysis useful in developing your own preferences. The ephemeral microparties often have very positive-sounding names, but it’s difficult to know at a glance what they’re really all about.

Even if you’re voting above the line, this may still give you a rough idea of who believes what, so that you know what you’re doing when you write that single “1″ on your giant ballot paper.

Update (2014-03-24) — full preference list

For completeness, here’s the actual list of major preferences. For each party, the top five parties are listed in order of preference. Numbers in brackets indicate the number of contiguous candidates. Where lone candidates appear separate from the rest of their party, their names are shown.

Party Ticket # Major Preferences
The Wikileaks Party A 1 Greens (LUDLAM), Labor (PRATT), Greens [5], Labor [3], Palmer United Party [3], National [2], Liberal [4]
National B 1 National [2], Liberal [4], Palmer United Party [3], Labor [4], Greens [6]
Independent: Russell Woolf C 1 Labor [4], Greens [6], Liberal [2], Palmer United Party [3], National [2], Liberal [2]
Australian Democrats D 1 Palmer United Party [3], Greens [6], Labor [4], National [2], Liberal [4]
Australian Democrats D 2 Palmer United Party [3], Greens [6], National [2], Liberal [4], Labor [4]
Pirate Party E 1 Greens [6], Labor [4], National [2], Palmer United Party [3], Liberal [4]
Labor F 1 Labor [4], Greens [6], Palmer United Party [3], National [2], Liberal [4]
Australian Motoring Enthusiast Party G 1 Palmer United Party [3], National [2], Labor [4], Liberal [4], Greens [6]
Australian Motoring Enthusiast Party G 2 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Freedom and Prosperity Party H 1 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Voluntary Euthanasia Party I 1 Greens [6], Labor (PRATT), Palmer United Party [3], Labor [3], National [2], Liberal [4]
Voluntary Euthanasia Party I 2 Labor (PRATT), Greens [6], Labor [3], Palmer United Party [3], National [2], Liberal [4]
Liberal Democrats J 1 Liberal [4], National [2], Labor [4], Palmer United Party [3], Greens [6]
Australian Voice K 1 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Building Australia Party L 1 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Mutual Party M 1 Palmer United Party [3], Liberal [4], National [2], Labor [4], Greens [6]
Family First N 1 Palmer United Party [3], National [2], Liberal [4], Labor [2], Greens [6], Labor [2]
#Sustainable Population Party O 1 National [2], Greens [6], Labor [4], Liberal [4], Palmer United Party [3]
#Sustainable Population Party O 2 National [2], Labor [4], Greens [6], Liberal [4], Palmer United Party [3]
#Sustainable Population Party O 3 National [2], Liberal [4], Greens [6], Labor [4], Palmer United Party [3]
Palmer United Party P 1 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Australian Sports Party Q 1 Palmer United Party [3], Liberal [4], Greens [6], Labor [4], National [2]
Liberal R 1 Liberal [4], National [2], Palmer United Party [3], Labor [4], Greens [6]
Shooters and Fishers S 1 Palmer United Party [3], Liberal [4], National [2], Labor [4], Greens [6]
Help End Marijuana Prohibition (HEMP) T 1 Labor [4], Palmer United Party [3], Greens [6], National [2], Liberal [4]
Republican Party of Australia U 1 Liberal [4], National [2], Greens [6], Labor [4], Palmer United Party [3]
Smokers Rights V 1 Liberal [4], National [2], Labor [4], Palmer United Party [3], Greens [6]
Australian Fishing and Lifestyle Party W 1 Liberal [4], National [2], Palmer United Party [3], Labor [4], Greens [6]
Australian Christians X 1 Liberal [3], Labor (BULLOCK), Liberal (REYNOLDS), National [2], Palmer United Party [3], Labor [3], Greens [6]
Secular Party of Australia Y 1 Greens [6], Labor [4], National [2], Liberal [4], Palmer United Party [3]
Rise Up Australia Party Z 1 Liberal [4], National [2], Palmer United Party [3], Labor [3], Greens [6], Labor (PRATT)
Greens AA 1 Greens [6], Labor [4], Palmer United Party [3], National [2], Liberal [4]
Democratic Labour Party AB 1 National [2], Liberal [4], Palmer United Party [3], Labor [3], Greens [6], Labor (PRATT)
Katter’s Australian Party AC 1 Palmer United Party [3], National [2], Labor [4], Liberal [4], Greens [6]
Katter’s Australian Party AC 2 Palmer United Party [3], National [2], Liberal [4], Labor [4], Greens [6]
Animal Justice Party AD 1 Greens [2], Labor [2], Greens [2], Labor [2], Greens [2], Palmer United Party [3], Liberal [4], National [2]
Animal Justice Party AD 2 Labor [2], Greens [2], Labor [2], Greens [4], Palmer United Party [3], Liberal [4], National [2]
Sex Party AE 1 Labor [4], Greens [6], Palmer United Party [3], Liberal [4], National [2]
Socialist Alliance AF 1 Greens [6], Labor [4], National [2], Liberal [4], Palmer United Party [3]
Outdoor Recreation Party (Stop The Greens) AG 1 Liberal [4], National [2], Labor [4], Palmer United Party [3], Greens [6]
  1. Of course, another microparty could slip through once again, as the Sports Party, Motoring Enthusiasts, Democratic Labour, Liberal Democrats have done recently, but that scenario requires a rather different sort of analysis. []
  2. I’ve used an R script to do this based on the AEC’s CSV data. I’m happy to share it if anyone is interested. []

WA senate election 2014: GVT rankings

The senate group voting tickets (GVTs) for the 2014 WA Senate election have now been released in CSV form. This allows me to do what I did last time.

First, here are the median positions of each party among all parties’ preferences:

wa-senate-gvt-pos-2014We’ve lost a few parties since last time:

  • One Nation;
  • the Australian Independents;
  • No Carbon Tax Climate Sceptics; and
  • the Socialist Equality Party.

And we’ve gained a few more to make up for it:

  • the Building Australia Party;
  • the Democratic Labour Party;
  • the Freedom and Prosperity Party;
  • the Mutual Party;
  • the Pirate Party;
  • the Republican Party of Australia;
  • the Socialist Alliance (not to be confused with the Socialist Equality Party); and
  • the Voluntary Euthanasia Party.

And there are two groups of independents:

Of the parties contesting both elections, here’s how their GVT positions have shifted since the 2013 federal election (based on WA GVTs only):

wa-senate-gvt-diff-2014Negative numbers here mean that a party has migrated towards the start of preferences, which is a good thing (for them). Positive numbers mean the reverse.

It’s curious that the established parties: Labor, Greens, Liberal and National are all beneficiaries of the shift. The major losers appear to be a collection of microparties, plus Family First. (In particular, I’m pleased to note the precipitous fall of the Rise Up Australia to the end of just about everyone’s preferences, as well as the complete absence of One Nation.) Perhaps the microparties’ exceptional performance in 2013 has made them seem less cute and cuddly than they were before. Nevertheless, many of them still adorn the prime real estate near the top of other parties’ preferences.

Labor and the Greens have also improved their standing with respect to the Liberals (though the Greens are still the least favoured of all the parties with a realistic possibility of claiming seats). Presumably there is now less of a frantic push to get Labor out, since that goal was roundly achieved last time. The fulfilment of Tony Abbott’s particular legislative ambitions perhaps doesn’t attract quite the same level of urgency.

Democracy sausage 2014

In 2013, a small group of geeks, including myself, began mapping the locations of sausage sizzles and cake stalls on election day. So far we’ve done this for the 2013 federal and West Australian state elections. We were interviewed briefly on ABC local radio. [brushes hair back heroically]

It turns out that these elections just keep coming. We have South Australia and Tasmania on Saturday, and WA again in three weeks. And we’re ready (unless I’m lying, but that hardly ever doesn’t happen).

We have a website — – at which you can plan your route to the nearest sausage/cake-equipped polling booth, or just marvel at the distribution of democracy sausage purveyance.

We also have a Twitter account — @demsausage — and a hashtag — #democracysausage — with which you can notify us of new and wonderful democracy sausage and cake opportunities. And please do! This is how we collect the data to build our map.

So, let us know on election day, or before it, if you spot a sausage sizzle or cake stall, or if you’re helping to organise one.

(I should mention that, for the 2013 federal election, we were somewhat out-gunned by another, unaffiliated group whose website was/is We’re not sure if they’re planning anything this time around.)

Sorry Tony, you fail the Turing Test

It’s election time again, and that means its also incoherent-shouting-about-taxes time. Tony Abbott is quick off the block, claiming that “the carbon tax and the mining tax are anti Western Australian taxes.”

It’s almost too drearily, predictably inane a comment to warrant analysis. But one of Abbott’s skills, I now realise, is his soul-crushing dreariness, the effect of which is perhaps to make his opponents give up out of sheer mind-numbing boredom. He’s even worse when you actually listen to him — I can feel the long seconds of my life slipping away during the exaggerated “ah”s and “um”s that litter his speech, pointlessly punctuating a collection of words that are already drawn out and so devoid of substance that they may as well have been randomly generated. That is, by an “Ab-Bot”, if you will1.

Isn’t it a bit patronising to start calling the carbon tax “anti-WA”, when the fight has always been a national one? Presumably, had the AEC lost 1,375 ballot papers in Victoria instead, Abbott would now masterfully be describing the carbon tax as “anti-Victoria”.

Isn’t it a bit condescending to be attacking the carbon and mining taxes without even trying to offer an argument? He has in the past, of course, but since we’re still having this fight, are we fighting over ideas, or are we now just being assaulted by keywords intended to make us go crazy?

And I always think we let off politicians and commentators rather lightly for their liberal use of the “anti-” prefix. For something to be “anti-WA”, it should in principle constitute a direct existential threat to the state — an issue that brings into question the very survival of Western Australia. But while my last power bill included an estimated “carbon component” of $14.282, I can assure all concerned that I am not, in fact, teetering on the edge of oblivion. We’ve all faced down greater threats to our existence than that.

One of the threats we continue to face, it bears repeating ad nauseam, is climate change itself. The debate over the carbon tax, or rather carbon pricing generally, is lost if we forget why it was implemented in the first place. And no, it won’t instantly make climate change go away — it’s part of a very long term struggle to mitigate the damage we’re doing as a global civilisation. Nonetheless, seen in that light, a few dollars on your fossil fuel power bill, to encourage renewable energy, is not a great deal to ask. That’s the argument that needs to be made, because it’s the truth.

But it’s too risky a strategy, Abbott must think, to inject actual information or reasoning into anything he says. He’s not stupid himself, but he seems to think (or perhaps he knows) that treating us like idiots is his best chance.

  1. I can’t possibly be the first person to have made this terrible, terrible joke. But I am making it. []
  2. Higher for some, no doubt, but I would guess still very small compared to things like food and rental/mortgage payments. []

Teaching SE: code as design

Software engineering lecturers have some misconceptions to grapple with — students’ certainly, but also our own.

One is this: we have tried to carve out an unambiguous1 distinction between software design and software implementation. In a previous post, I discussed a 2nd-year unit that historically focused on the Unified Modelling Language (UML). This unit purported to teach software design, to the exclusion of the “implementation” of that design. The unit content consisted almost entirely of diagrammatic notations (parts of UML) that, we assumed when they were first introduced, would stand on their own as the language of software design. The unit mentioned almost nothing about code, because we considered code to be a low-level implementation detail already covered in other units.

“UML is how you will write software”, some of us thought (to varying extents). “What comes after is just a labourer’s job.”

We2 wanted to believe this, probably because it seemed to imply that SE was maturing, that it was starting to develop efficiencies that would make current practice look like dark-age superstition. The notion of having separate “design” and “implementation” phases has been taken from older engineering disciplines (to some extent), in which a physical object is first designed, then constructed. That strict progression seems obvious. Design is the intellectual effort — the problem solving — while construction is physical creation of what you’ve designed.

Our UML fixation also owes something to the fact that diagrams play such an important role in older engineering disciplines. How would you construct a plane or a building without any diagrams to work from? You could do it, by describing measurements using only words and equations, but it would be painfully inefficient and error-prone. Why would you not want a picture of the thing you’re about to create? For software engineering, UML seems to slot naturally into this role.

We also noticed that software development requires you to think at different levels of abstraction. Initially, the work is highly abstract, big-picture stuff: whiteboard sketches and high level specifications, both of which have often been done with UML (or, historically, other diagrammatic notations). Work then progresses to more concrete and finely detailed stuff: code. There seems to be an obvious distinction here: a design phase, complete with diagrams, and a construction phase.

But this was always a conceptual mistake. Both activities are design, and there isn’t a construction phase at all (at least, not one that has any significant cost). The big-picture diagrams and the finely-detailed code are both purely intellectual; they’re both part of a single problem-solving exercise — one big design phase. The problem solving doesn’t stop until the coding is finished, and it often goes back on itself, with some whiteboarding required in the midst of coding. What would you think of the engineering of aircraft, buildings, etc. if you knew that the engineers routinely conducted critical redesign work half-way through physical construction? It’s not so much that software engineering is radically different3, but that we’ve been misusing the terms.

Real-world SE uses the term “building” or “build process” to refer to a set of automatable steps — compiling, linking, packaging, running unit tests — that turn the code into a finished product4. SE education forgets this a bit, but it’s a much closer analogue of the construction of a physical object than is the concept of the software “implementation”.

Once you accept that coding is, in fact, fundamentally a design activity, you realise that you cannot really teach software design without coding. If you take the coding out of software design, you’re really just left with an empty shell.

Our UML unit suffered because students were unable to connect UML’s diagrammatic notations to the things software actually has to do. Buildings and planes have schematics that broadly look like the physical object; there is an intuitive spatial relationship. But software has no tangible existence. A software diagram has nothing to do with what the software looks like, because software doesn’t look like anything. Software diagrams are no more than an aid to problem-solving. And how could we expect students to undertake problem-solving — design — without access to the one notation — code — in which the solution must be written?

Ultimately, code is everything. UML diagrams are merely subsets of the information present in code. They are abstract representations that highlight a few key details at the expense of many others. This can be very useful, but only as a way of organising your understanding of the code. Almost perversely, UML shows the big picture but never the whole picture. Experienced software engineers will understand the kinds of information omitted from a UML diagram, and thus what work remains to be done. But without code, students will look upon the diagram itself as the thing they need to master, without seeing it as merely a view of something more complicated.

Last year, alongside introducing patterns, I gave students a non-trivial amount of coding to do. (In hindsight, I probably gave them too much, to the point that it became a significant drain on their time, but such things can be recalibrated.)

In the weekly practical sessions, students formed into groups of three (or so). Over the course of the semester5, they worked on developing three pieces of software: an image viewer, library catalogue and a blog editor. Each system would be developed in a different language: Java, C++ or Python6, with the students choosing which language to assign to which system. Code, of course, is not just one notation, but many. The use of multiple languages was intended to show that software patterns (and other design concepts) apply to different languages and in slightly different ways.

Each week, I gave the students a few extra requirements for each system, drawing from the topics covered in that week’s lecture. This was all non-assessable — just preparation for the tests, assignment and exam.

A further twist was that students rotated between the different projects within their group, so that one group member would work on the image viewer one week, the library catalogue the next week, then the blog editor, then return to the image viewer, and so on. This would expose each student to three different languages, and also to the challenges of working with other people’s code. In practice, students became frustrated at the inability of their colleagues to actually finish their assigned tasks. That suggests I have some more thinking of my own to do, but I hope that these frustrations themselves served as a learning experience.

The unit still includes UML as a way of organising broad concepts. In fact, the introduction of code makes it easier to talk about UML. Students and I can use it to focus on the design concepts we need to convey, without getting too bogged down in superficial syntax or arcane rules.

By giving students the opportunity to write code, we give them all the information and the complexity that software design actually entails. Armed with that insight, they are in a better position to understand what design diagrams are for, and they can use them more effectively.

  1. Well, sort of. We occasionally pay lip service to the concept of an overlap. []
  2. Almost certainly not everyone believed this. Those who didn’t probably have some entitlement to point and laugh. []
  3. Software engineering is different — all engineering disciplines are different from each other, in terms of the methods and tools used — but we need not manufacture more differences than actually exist. []
  4. Or, rather, a potentially working product. The software build process is exceptionally cheap, because it’s automatable and has no material costs, so it’s done early and often. []
  5. In practice, mostly in the first half of semester, due to mounting stress levels and triaging of study effort. []
  6. There are many possible choices, of course, but I sought languages that were widely used and represented a diversity of approaches, but which basically adhered to the traditional OO paradigm. Java is our baseline teaching language (giving it the edge over C#). C++ stands out because of its pervasiveness and unique (if somewhat horrible) challenges. Python is a good representative of the dynamically-typed languages. []

Fred Singer’s climate consensus denial

So I read with some bewilderment1 a recent article by Professor S. Fred Singer on climate change. It jumps around a bit but mostly tries to attack the idea of scientific consensus. Singer’s logic leads from platitudes like this:

Scientific veracity does not depend on fashionable thinking.

to risible conclusions like this:

In other words, the very notion of a scientific consensus is unscientific.

This makes less sense than the reader comments beneath climate-related news articles. Take any established theory from any other scientific discipline — General Relativity, the Standard Model of particle physics, Evolution, Germ Theory, Genetics, etc. ad infinitum. If you follow Singer’s logic, these are all “unscientific”, not just in spite of overwhelming scientific support, but actually because of it. Presumably something can only be “scientific” if a large number of scientists disagree with it. This takes denialism to a whole new level.

The fallacy underlying Singer’s thinking (assuming, for the hell of it, that he’s actually being honest) is that “consensus” is equivalent to groupthink. Singer hasn’t apparently grasped the idea of a conclusion being arrived at independently by many people. But that’s what you should generally expect to happen if (a) we live in a universe that obeys rules, and (b) those people apply sufficient rigour in their observations and analysis, as scientists are expected to do.

But why is consensus important? Because we rely on experts all the time. An “appeal to authority” is perfectly rational when there is a disparity in expertise, as between climate scientists and laypeople. It’s not the scientists who rely on scientific consensus. They rely on rigorous observation and analysis. But laypeople lack the time and expertise to do the same, and for them (us), the notion of a scientific consensus is immensely important as a way of assigning credibility to particular scientific ideas.

Singer’s article actually begins by denying that any consensus exists at all, which is contrary to a number of surveys, and (if you pay attention to those who write about this sort of thing) the absence of any significant pool of climate expertise on the sceptic side of the debate. Singer is aware of the 97% figure — the proportion of climate scientists who agree that climate change is real and human-cased. His response? First of all:

The degree of consensus also depends on the way the questions are phrased.  For example, we can get 100% consensus if the question is “Do you believe in climate change?”  We can get a near-100% consensus if the question is “Do you believe that humans have some effect on the climate?”  This latter question also would include also local effects, like urbanization, clearing of forests, agriculture, etc.

The word “some” (underlined by Singer) is the key to his whole argument — an issue of wording on the survey questionnaires. Here are three surveys (of actual real-world climate scientists or climate science papers) that have each independently reported a 97% consensus:

  • One by Doran and Zimmerman (2009) that I discussed three years ago, which asked scientists the question: “Do you think human activity is a significant contributing factor in changing mean global temperatures?” (my underlining).
  • One by Anderegg et al. (2010), which classified 1,372 climate researchers as either convinced or unconvinced of the IPCC’s position, which is of course that humans are making a significant contribution to global temperature increases.
  • Another by John Cook et al. (2013), who examined and categorised 11,944 climate-related abstracts. Abstracts that minimised the impact of humans, or claimed that humans contribute less than half of the total effect, were counted as a rejection of anthropogenic global warming (AGW). This is another term for human-cased climate change, of course, but one that makes explicit its global nature.

In order words, the bar is set a lot higher, and so the consensus a lot more meaningful, than Singer makes out. Those who believe that humans are having “some” effect on the climate, but only a local or minimal one, have not been counted in the consensus.

Singer himself brings up a fourth survey by Oreskes (2004), which also found a consensus view among published papers. Singer only mentions this in order to dishonestly imply that something scandalous happened:

…after being challenged, Oreskes discovered having overlooked some 11,000 abstracts — and published a discreet Correction in a later issue of Science.

The “discreet” correction is advertised in large capital letters across the top of the downloadable PDF. The correction says:

The keywords used [in searching for papers] were “global climate change,” not “climate change.”

Not quite the same thing as “overlooking 11,000 abstracts”, which is Singer’s preposterous interpretation2. And notice that even the correction itself, raised by Singer just to spread doubt, again undermines his own point – we’re talking about global climate change here, not local effects.

In the midst of this, Singer has the audacity to cite his own survey without furnishing us with the wording of his questions3, finding of course that support for human-caused climate change is much lower. He does, however, tell us that it was done in 1990 with less than 100 respondents. It was also apparently targeted at the American Meteorological Society, because:

I figured those must be the experts.

Just smell the rigour. Meteorologists are not the experts — climate scientists are. But even if we assume the survey was done rigorously, it’s still much smaller than all of the above-mentioned surveys, and 24 years out of date.

But Singer also confuses surveys of climate scientists with public opinion polls:

On the other hand, independent polls by newspapers, by Pew, Gallup, and other respected organizations, using much larger samples, have mirrored the results of my earlier AMS poll.  But what has been most interesting is the gradual decline over the years in public support for DAGW, as shown by these independent polls.

The public does hold a much more cynical view of human-caused climate change than climate scientists, but Singer’s comparison here is utterly absurd. “Respected organisations” these pollsters may be, but what they do has no bearing on the existence (or otherwise) of a scientific consensus. They’re surveying laypeople, whose understanding of scientific issues is more a function of media coverage and ideology than of observation and analysis. Does Singer not understand the difference?

His other notable example is the “Oregon Petition”, said to have been signed by 31,000 “scientists and engineers”, 9,000 with PhDs. It’s clear that the list of signatories to the petition includes a very broad swathe of qualifications, most of which have nothing to do with climate science, and the majority of which probably have no connection to the active pursuit of scientific research at all (since a PhD is a basic qualification for a researcher in academia, and since less than a third of signatories claimed to have PhDs). The petition’s website itself states that only 31 signatories have a “climatology” qualification, a mere 0.1% of the total. It doesn’t say these are even PhDs, so they almost certainly include non-scientists. After all, the petition failed to ask signatories what they actually do, or in fact anything about them at all other than their name and self-reported qualifications (making the list impossible to verify). Singer also doesn’t concern himself with the difference between a petition and a survey. The former gives us a big, but ultimately meaningless number. The latter, more usefully, gives us the proportion of respondents (experts, in our case) who hold a certain view.

Singer’s other argument against the existence of the consensus is that there’s a global peer-review conspiracy. He complains about the corruption of the process — as evidenced by a few anecdotal examples gleaned from the “climategate” collection of stolen emails, in which scientists and journal editors are seen to be exercising their professional judgement. The whole point of peer review, of course, is to act as a front-line filter against the least meritorious scientific papers. Of course someone, somewhere, is going to have been making recommendations and sending communications about the worth or worthlessness of certain papers. The fact that so few climate sceptics ever get past this first hurdle annoys them terribly, but it doesn’t mean that the peer-review process across the world’s entire climate science community has become mired in systemic corruption. It could simply mean that said climate sceptics are full of shit (and doubly so for then claiming persecution). Given the quality of Singer’s other arguments, it’s hard to give him the benefit of the doubt.

Singer also briefly wheels out the “no warming for 15 years” myth, and complains that the fact of it having been the warmest decade on record is irrelevant. He comes armed with this self-defeating analogy:

It may help here to think of prices on the stock market.  The Dow-Jones index has more or less been level for the last several weeks, fluctuating between 15,000 and 16,000, showing essentially a zero trend; but it is at its highest level since the D-J index was started in 1896.

Singer argues that the current level does not indicate the trend, which is technically, pedantically true, but we’re never just talking about the current level. By saying that the Dow-Jones — or the current temperature — is the highest it’s ever been, we’re relating it to past levels, which is what a trend is all about. Singer just doesn’t want to admit that there’s such a thing as a long term trend that overwhelms whatever short-term trend he might find interesting. In the course of arguing that the Dow-Jones hasn’t changed much in weeks, Singer is actually conceding that it has changed considerably over the longer term. So, of course, has the global temperature. And it’s the long term trend that matters.

That’s certainly the case for climate models, which Singer laughs off for their apparent inability to explain short-term natural variability. But short-term variability is basically irrelevant in determining the broad magnitude and impact of climate change. A model doesn’t get “falsified” for failing to produce a level of precision that it doesn’t need and was never designed to produce. Run the models against the past temperature record and they quite successfully predict the large-scale shape and magnitude of the rise that we’ve observed.

Singer ends with a plug for one of his own creations:

The wild claims of the IPCC are being offset by the more sober, fact-based publications of the NIPCC (Non-governmental International Panel on Climate Change).

This is sheer delusion from the man who set up the NIPCC, which appears to be a group of cranks angry at not being taken seriously. The IPCC already considers and incorporates into its reports the full range of scientific opinion on climate change. Far from being “wild”, its claims are often considered quite conservative. Singer’s claims are nothing but denialism.

  1. In the naïve sense of one who expects intellectual honesty. []
  2. Presumably someone did a search for “climate change” and noticed that the tally of results was 11,000 higher than that reported by Oreskes. You might think that the simple, accidental omission of one of the search terms would explain the disparity in results. But the climate sceptics, bastions of reason that they are, know that really Oreskes must have had all those extra papers at hand and dishonestly or incompetently misplaced them. Because that sounds better. []
  3. For instance, did Singer ask survey respondents whether they believe that humans will cause the world to end, and did he count each “no” response as a rejection of human-caused climate change? He doesn’t see fit to tell us, even after raising the issue of wording. []

Pre-emptive fact busting

I have a theory (or, really, two theories) about what goes through Tony Abbott’s mind in situations like this. The context, so as not to get too far ahead of myself, is that Indonesian doctors appear to be treating burns of asylum seekers who claim mistreatment at the hands of the Australian Navy, as they were turned around mid-voyage.

Scott Morrison quickly pronounced this to be “sledging” with “unsubstantiated claims”. This is the political, amoral intellect of Morrison at work: conflating “unsubstantiated” with “incorrect”. Morrison’s own say-nothing policy must contribute greatly to the difficulty of determining the truth, one way or another, of such a claim. It can hardly have been “sledging” if, hypothetically, it turns out to have been accurate.

However, Tony Abbott has since backed up Morrison by also pointing to the lack of evidence. But absence of evidence is not evidence of absence.

We might ask what sort of evidence Morrison and Abbott would expect. These events took place at sea, where (I presume) the only witnesses were the asylum seekers themselves and navy personnel. Clearly the asylum seekers’ claims don’t count as evidence in the eyes of Morrison and Abbott, and we don’t have access to any information from the navy’s perspective. Morrison and Abbott expect the media to carry the entire burden of proof for something only the government (for now, anyway) has any real information about.

Abbott poses this question:

Who do you believe? Do you believe Australian naval personnel or do you believe people who were attempting to break Australian law?

Who do I believe? For a start, I’m disinclined to believe a man, Prime Minister or not, who frames the vulnerable and dispossessed as criminals1. What kind of moral compass can such a man possibly have? I’m also disinclined to believe a man who asks us to simply ignore serious allegations in lieu of spending a modicum of time and effort investigating them. We don’t have to just “believe” one side or the other. A little transparency is not too much to ask in a democracy, surely.

Of course, it’s problematic to accuse unspecified defence force personnel of abusing asylum seekers, because these are people to whom we feel collectively indebted for the personal risks they take on our behalf. But they are not superhuman, and it is not actually that hard to believe that abuses might have occurred. These are human beings in relatively isolated, probably very stressful situations, acting in the context of a brutal government policy. And there are unfortunate precedents for abuse within Defence and within our police forces. People in authority are not always flawless.

One pressing political question is this: how would Morrison and Abbott react if the media now does uncover more substantive evidence of abuse?

Whether or not Morrison and Abbott intend it, turning on the outrage early in a debate seems to cement the debate in place. If you tried this, you might worry about looking like a fool, especially if evidence is later uncovered that undermines your position. But in politics, perhaps, the early-outrage strategy actually creates a certain imperviousness to future revelations. If you’re a high-profile person, and you can articulate a hard-line position, you can make a lot of other people very angry in sympathy with you, and angry people have a habit of not quite thinking things through. Angry people treat new information not as information, but as ammunition, either fired at them by the enemy2, or available for them to fire back. In this view of the world, you never make mistakes, never need to issue an apology and never need to readjust your thinking. Even in the face of hard evidence of abuse (again, hypothetically), a political leader with sufficient willpower, and a sufficiently faulty moral compass, can plough straight through, with the ironclad support of people who worship strong leaders and who care more about political victories than about good policy outcomes.

Of course, the other theory is that Morrison and Abbott are just flying by the seat of their pants, just saying whatever seems most expedient right now, with undiluted confidence in their ability to later dig themselves out of a great steaming pile of whatever they may now be getting themselves, their party and their country into. If this theory is correct, then there is at least hope that Morrison and Abbott may be inclined, after a bit of kicking and screaming, to do something about the excesses of the implementation of their policies.

Morrison’s training for the immigration portfolio, I can’t help but noticing, has consisted of years in opposition of saying whatever seemed expedient (in the course of raising awareness of the horrifying menace of dispossessed people coming to our shores and asking for asylum). Abbott similarly veers so far from doing anything constructive (say, in the areas of fiscal management, environmentalism, public transport and education, to name a few), that it’s hard to tell if he’s actively trying to be an arseclown, or if he’s just never worked out how (or even why) not to be one3. At some point, he’s probably been told to just keep doing what he’s doing and call it a strategy.

There will certainly be a lot more arseclowning to be done before this issue is settled.

Addendum (24 Jan 2014)

A couple of extra links:

  1. Wasn’t it all about saving lives at sea, at one point? []
  2. “The enemy”, of course, consists of a core of people who are behaving in exactly the same way as you are, but with the opposite objective, intermixed with a group of people who really wish you would just listen to what they have to say for a moment and stop acting like a twat. []
  3. Abbott’s rise to power demands a considered explanation, but it seems principally the result of an almost unparalleled ability to tear down other people and rally opposition against them. []

The Constitution of Australia

In preparation for the commemoration of Australia Day1, I present to you the (somewhat abridged and edited) Constitution of Australia:

  1. The continent of Australia was willed into existence by the arrival of the First Fleet in 1788, having previously comprised isolated stretches of coastline on Dutch maps.
  2. Don’t mention the massacres. I mentioned them once, but I think I got away with it.
  3. The Commonwealth of Australia is one of four countries in the world, the other three of which are collectively referred to as “Overseas”, and include “Western Christianity”, “Asia” and “Islam”.
  4. The Commonwealth of Australia is founded on Western Christian values (delete whichever is inconvenient): racial superiority, forgiveness, conquest, humility, colonialism, tolerance for others, surprise, fear, ruthless efficiency, an almost fanatical devotion to the Pope and nice red uniforms.
  5. As Australia is founded on such openness, it cannot afford to let anyone else in who might dilute that openness, or otherwise embarrass its morally flawless citizens into living up to what they claim to believe in.
  6. The legal system of the Commonwealth is firmly based on the Ten Commandments and Deuteronomy, with the exception of the first, second, third, fourth, sixth, ninth and tenth commandments, and all the slavery, death, animal sacrifice and prohibitions on divorce, adultery and the mixing of otherwise innocuous things together, and aside from a few extra fiddling prohibitions we’ve implemented against rape, assault, deprivation of liberty, fraud, extortion, possession of drugs and firearms, etcetera. Firmly based, you understand.
  7. The monarch of the UK is on loan to Australia in perpetuity, to save on costs. He/she doesn’t really have any power, except when actually visiting the country, in which case all citizens are required to become gibbering idiots overwhelmed by gushing affection. In practice, the head of state is the Governor General, but he/she doesn’t really do anything either. Except once or twice, but you have to be Really Surprised about it.
  8. The head of government, operation of parliament and rights of the citizens are left as exercises for the reader.
  9. All citizens with incomes of $200,000 per year (adjusted for inflation) or more are permitted to whinge in the national media about “not being rich”, due to the unavoidable costs of living in a $1.5 million house with three cars, four refrigerators and a boat, and sending five children to private schools partly funded by the taxpayer. All other citizens are required to empathise with due weeping and gnashing of teeth.
  10. Elections of the House of Representatives are to be held no later than every three years, following a mandatory six-month period of intense speculation about electoral tactics. During this period, no substantive policy debate is permitted.
  11. The electorate is prohibited from electing a minority government, or choosing different outcomes in House of Representatives and Senate elections. The penalty for disobedience is a term of incoherent shouting from political commentators, followed by pledges from all parties never work with anyone ever again.
  12. The parliament is prohibited from implementing policies with planned outcomes more than three years in advance. The penalty for a violation is a term of incoherent shouting from political commentators followed by ruinous election defeat.
  13. Parties in office are permitted a maximum of six major scandals per term of office, and a minimum of four, to be approved via incoherent shouting from political commentators.
  14. The Federal Executive Council must contain a minimum proportion of arseclowns (initially 33%, to be adjusted upwards as determined by the parliament), defined as those members elected to safe seats who would not have been permitted into adulthood save for party affiliation.
  15. New Zealand is a state, whatever it says. Western Australia may or may not be a state depending on how much GST revenue it provides.
  16. Additional states may be approved on the basis of participation in the AFL or NRL.
  17. Australia is required to win every sport ever invented. Failure to do so is a National Disgrace, and requires that funding be stripped from science and education to compensate.
  18. Amendments to the Constitution must be approved by referendum, the outcome of which is “no”.
  1. The anniversary celebration of a bunch of Europeans taking over an inhabited continent and pretending it wasn’t. []

Teaching SE: from UML to Patterns

In teaching software engineering at Curtin Uni, we have long had a 2nd-year unit that dealt principally with the grandiosely-named Unified Modelling Language (UML), that diagrammatic language that promised to be software’s answer to the technical drawings of other engineering disciplines. I recall it as a student, when the various UML notations (each one allowing you to articulate a particular aspect of the software you’re designing) were described at a rate of approximately one per lecture (with one lecture per week). At the time, not knowing any different, this seemed a logical approach to useful design material.

As a mathematical system, UML draws you in. Pure abstract curiosity drives you to understand what its constructs are for and how they relate to one another. It has a kind of internal elegance, if you know where to look, where a few core concepts can be used to articulate systems of great complexity with great subtlety and flexibility. Its creators made mammoth efforts to anticipate all the situations they wanted to be able model with a diagrammatic (or semi-diagrammatic) language, and provided the ultimate multi-purpose tool for the job.

UML positioned itself throughout the “software life cycle” (another curious term) but particularly in the design phase. It was supposed to be the vocabulary in which you expressed the bulk of your design work. You crafted UML diagrams from a requirements specification, then, once the UML “model” was complete, it became a blueprint with which you could hammer out the code in trivial time.

There are probably quite a few ways to explain why (in many cases or even most cases) this doesn’t really work. UML has a role in SE, but not one quite as celebrated as its evangelists might have thought. It is a vocabulary, one used to communicate complex, abstract ideas quickly. But not completely.

UML serves a useful role as an informal language, not a specification language, and the difference is completeness. UML can be complete — that was the whole idea according to some people — but practically speaking you don’t usually want it to be so. At the day-to-day level of human communication, you don’t need to be complete – you merely say as much as you need to say before the other person “gets it”. We trade off completeness for efficiency. When you want someone to understand what you’re thinking, you estimate the differences between your understanding and their understanding, and you communicate only those differences, not the sum total of your thoughts. In UML, you would draw only those entities and relationships that are relevant to the immediate issue at hand. (We take a very different approach when writing code and specifications, in which all details must be carefully articulated.)

In the second half of 2012, 11 years after I took the UML unit as a student, I was asked to teach it. The unit had evolved slightly in the way that units do, but the approach was broadly the same. Over the years, it had occasionally attracted the nickname “Diagrams 252″. People knew that the emphasis of the unit was misplaced. Now that I was on the other side of the educational fence, I came to see the problem in our teaching approach — not just in what we were telling students about UML, but in what we were failing to tell them about software design more generally.

UML is a vocabulary, formal or informal, but so what? Software design isn’t about syntax. It’s about ideas. What should you actually do with all those notations? Where was the actual design? Where was the engineering?

In many an SE textbook, there is no shortage of advice on what you shouldn’t do in software engineering. There are rules about how not to use inheritance, what language constructs you should avoid at all costs, what kinds of coupling are unacceptable, etc. There is usually not a great deal of advice about what you should or even can do.

Exposing students only to a set of rules and notations, as we did previously, is really just fiddling around the edges of SE education. The knowledge that creates a competent software engineer is not UML or design checklists. Rather, a competent software engineer first and foremost needs a mental toolbox of design options — a large collection of adaptable solutions to small problems, stored in one’s brain. These are not memorised in the way that students often try to memorise bullet point lists. They are not catalogued in a neat little taxonomy as might appear in a traditional textbook. They are haphazard fragments of possible design approaches — the result of seeing how design could be done in various ways. The technical term from cognitive science, as I understand it, is “plan”. Plans are building blocks for the creative and investigative processes.

One can acquire such a mental toolbox through sheer brutal personal experience — that’s how they did it in the old days, of course. But education is supposed to short-circuit that, or else what’s the point?

In teaching the unit for a second time in 2013, I made some significant changes, one of which was to teach software design patterns1. It’s easy to make the argument for teaching patterns, because they have that aura of academic respectability that accompanies things Published by Reputable Authors. Patterns, of course, are broadly defined as reusable solutions to common problems. They are implemented independently by different engineers in different contexts, and later discovered for what they are. Familiar?

The logic here is more convoluted than it first appears. A pattern is not a plan — not exactly. Each pattern is a named phenomenon (the “Strategy Pattern”, “Observer Pattern”, “Composite Pattern”, etc.), analysed, documented with UML and catalogued. The widely-known seminal list of software patterns was laid down in a book by the “Gang of Four”. So, for educational purposes, patterns sound a lot like a giant list of bullet points that students would simply try to memorise.

But patterns are important for educational purposes because (unlike UML itself or the usual what-not-to-do list of SE design rules) they show you what you can do. Patterns are solutions known to work well, assuming you understand what each one is for. Moreover, it has been my hope that teaching patterns also reveals some of the more fundamental ideas about software design. That is, even if you can’t remember a single actual pattern after taking the unit, you might nonetheless remember some interesting things you can do with polymorphism. Hopefully some knowledge underlying those patterns will have rubbed off, and given you the beginnings of that mental toolbox.

  1. There had always been a single lecture on patterns anyway, but it didn’t cover much material. []