The Dictator’s Handbook is Self Falsifying

I’ve been reading “The Dictator’s Handbook” this week, a recommendation from CGP-Grey (youtube) and a damn good one. It’s a description of how people who want power, get power and how they keep it once they have it. I won’t go into the nitty gritty, but suffice to say that it has a lot of good things to say about murdering people to get what you want.

The idea I want to explore in this blog post is using understanding, and “Life the Universe and Everything”. For those of you who have not had the pleasure of listening to The Hitchhiker’s Guide to the Galaxy; in the story we are told:

There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable.

There is another theory mentioned, which states that this has already happened.

This is why in the story the answer to the question of Life the Universe and Everything is “42”, but that the question itself was unknown. Knowing both question and answer would cause the above self destruction/recreation and it’s imperative that the characters never find out both.

The nature of understanding in that universe is thus that it is not just non-understandable, but deliberately evasive. The rules of the game will change as soon as you know the rules of the game. Not in some god like way of keeping you in the dark deliberately, as if the universe had agency, but because somehow what you know is tied to how things work.

So how does this relate to Dictators?

Well the book is so good at explaining the mechanics of the interpersonal relationships in ruling a country or business that it may change the behaviour of people who have read the book. It may change their behaviour enough to actually make the book’s premise false. Not that it’s false when you haven’t read the book, only that it’s false when you have.

But, this make one giant Saturn sized assumption. That it is possible to change how you act in a certain circumstance given this knowledge. If it’s not changeable, then knowing it doesn’t matter and no amount of self-help or ingenious insights into the human condition will change our society. But the book’s preface is that knowing the rules that rulers rule by can help improve society, so it expects behaviour to be changeable and if is then someone somewhere will figure out how to exploit this new behaviour.

Once you have the sort of second order exploit, you get a very complicated dance between people who understand, people who do not understand and people who want to exploit either group.

Hence the mechanism described in the book will “instantly disappear and be replaced by something even more bizarre and inexplicable”. Thanks Douglas Adams.

To drive this idea a bit further. This in my mind creates two quantifiably different types of truth. That which is understandable but unchangeable is solid or foundational truth. Like Mathematics, knowing 2 + 2 = 5 and why doesn’t allow you to change it’s truthfulness. Then there is mutable truth, where knowing how and why something is true allows you to manipulate it into falsity. This is especially true in biological and social sciences where adversarial mechanisms are in constant flux.

What do you think?

If it sounds mad

I’ve just been reading Glyn Moody’s article on the defence of hackers and open source. And no doubt I fully disagree with any notion that Free and Open Source is as relatable to some mass anarchistic insensible process.

I thought to myself that there probably is a quick test to see if what someone is saying about open source makes sense. A quick and dirty litmus test for checking if the author understands open source in principle and in practice.

If you replace “Open Source” with the word “Science” and set the date of the article or book back to 1650, does it sound like it’s totally mad?1 If you replace “Open Content” with “Free Speech”, does it sound like the author is grasping for a way to put people back in their nice Aristotelian place?

What I see when I read articles and books that attack free culture, is a mind on the other end of the text trying to work a messy and human process into an authoritarian view of the world (nice, ordered, predicable systems). I actually boil this down to a lack of trust in humanity and messiness. Which is a shame, because biological evolution is a messy system with lots of “waste”2 and human dialectics is a messy system with a lot of “waste” (what some call a long tail of content quality) and yet they’ve both produced amazing results3.

This is why it’s right that new ideas in Ubuntu should be tried, but at the same time a critical eye be placed over the results. Because it’s only through trying things out that we learn if they work at all. Even in design, where most designers would claim to be self supporting machines of innovation, I believe it’s natural to have a certain amount of trial and error. Of course having the space and energy to carry out the chaotic research is important, something we work on to improve in the open source design world.

But trying things does take a lot of energy and this is where the efficiency gains of open source are most important. We don’t know which of the thousands of programs are going to be the best, but we do know that at every stage there is the opportunity to share gains and pick up where others have left off. Truly standing on the shoulders of giants that came before us allows us to be usefully “wasteful”.

Far from Free and Open Source being a constraint on innovation, I find more and more that it is the source of innovation and what we really need more of is a way to execute on good ideas rather than the old tired thinking that we just don’t have any good ideas.

What are your thoughts?

1 I admit that this does require some association of the method of creating practical mechanical designs (software) with the methods of creating testable theoretical models as in science. I’ve had very long emails in this discussion, but I’m still fairly confident that it’s equatable in it’s requirement for open sharing of ideas and designs.
2 The waste is not waste in my view, it’s navigation.
3 I’m a big fan of the idea that the classic view of innovation is rubbish and the only truly new ideas are just convenient mistakes. All other ideas are dialectic compositions and so “innovation” in my view is more about mixing existing ideas and good innovators are good mixers.

Software as a Science

Or to put it more clearly: Peer reviewed software design knowledge accumulation using statefull mechanical embodiment as formal proofs as a basis of mechanical understanding of Turing-space.

I think design engineering is a science by virtue of requiring a hypothesis of the mind which needs to be tested to fail mechanically, modifying the model as tests fail. Then your implementation engineering is making both tests the pure engineering for utility which produces a written documentation of the result.

I’d even put product design, architecture (at least with models) into the same mix which of course is contraversal because traditionally half the steps have been done entirely in the mind. The finally built product is probably not science, but the rest of the process?

I admit that none of these fields have great track records of recording their research in published journals or even formalising their testing in automated suites. And although software mathematics does publish a great deal of interesting things, are we not considering a lot of published code as potentially rough drafts of interesting mechanics in code?

Your thoughts?

Learn in Fractal

If you’ve ever been involved with teaching then you’ll know that you teach the small stuff first, little lies, small over simplifications that get the students off in the right direction. Sometimes this is characterised as getting students on the first rung of the ladder of learning.

Then there is the fear that our modern world is too complex, it’s pushing our children to think, process and work out their mental faculties more and more. Some say you can see the result of this in the ever upwardly reassessed median IQ. Others say you can see it in the stress levels, the increase in trivialities and the reduction of curious pursuits.

But what I see is something different. There are and always will be a range of people with a range of mental facilities and abilities, that not everyone understands computers doesn’t mean that everyone is expected to grapple everything. We worry about the lowest common denominator focus of society, but the common don’t.

When you see the world looking a little simple, basic, too well understood, not progressive enough, I recommend looking a little deeper because it’s fractals all the way down. You used to learn how to farm wheat, now you learn how to drive a tractor, one day you’ll learn how to press a tractor robot activation button, but there will always be more to it and deeper understandings to have for those that seek them.

Don’t refrain from making things simple, the simpler they are the more you can zoom in to greater complexities. The simpler the big stuff is the more you can get on with making progress.

Don’t worry about the apparent deficit of mental alacrity in the general population, it’s always been like that, if anything things are getting slightly better though the shaping and presentation of learning to even the unenthusiastic student. Some are saying that we shouldn’t teach children facts and figures, who cares who the third US president was (Tom) as soon we’ll all have mobile computers with permanent access to wikipedia where all our fixed knowledge can be stored.

Is that progress? do facts help us think up new idea, or do ideas and concepts only matter? Do we need new narratives and tales to pass on these concepts to our children?

Your cognations?

Pirates and Control

There have been a number of articles recently about pirates and using Free and Open Source software and it’s certainly an interesting consideration. In my opinion the problem is that people shouldn’t be fleeing a life with pirated software that’s being removed from their use (I’d say control, but users of software that is possible to pirate never really had control) by fleeing towards FOSS substitutes and I’m reminded of a quote today:

“It’s easier to understand what your running from than what your running into”

But that’s the other problem isn’t it, lots of people _still_ think Free Software is freeware. That price and immediate satisfaction are the only worthy considerations in software. Will attracting people who don’t have FOSS education into the community with the promise of free (as in water) software really help understanding why it was dumb to invest in proprietary software in the first place? Won’t they just go back to their chains with the first new gizmo *iphone* that comes along to dazzle them?

“That’s the problem with freeing people. Once you’ve freed the people they tend to do things you think are a bad idea, including making themselves slaves again.”

Shouldn’t we be trying to teach users _why_ they should support FOSS principles that:

  • Scientifically peer reviewed engineering is better.
  • Group collaboration is more efficient.
  • User participation is more effective.
  • Transparency is more trustworthy.
  • Openness is more educationally valuable.
  • Freedom means greater self control.
  • Multiple rights holders reduces artificial restrictions.
  • Enlightened self interest funds development and progress.
  • And that this ownership means a choice between self reliance and support.

I’d be happier about us going out there into the world helping people with piracy problems to use Ubuntu, “Linux” or other Free and Open Source Software is along with these technical marvels we could explain why and how they exist in the first place instead of just pretending that the magic community did it.

Your Thoughts?

Deactivate your Brain

If you’ve not seen Rebecca Saxe’s TEDTalk about how we are really very good at reading other people’s minds. I recommend it:

The interesting part is the disquiet in the audience that the idea of deactivating a person’s morales provoke. As Rebecca says, right now we can only interrupt certain regions in a very imprecise way. But a lot of the reasons not to worry about this mind altering technology are simply technical limitations.

I think it’s fascinating to watch a well educated audience grasp the magnitude of this kind of science and what it can teach us about ourselves as human animals. I think quite a fair few of them were also thinking about misuses that would be harmful.


Professor Mike Hulme at the University of East Anglia wrote a very interesting opinion piece in New Scientist last month. It was all about climate change and how fighting climate change isn’t just about the practical, natural phenomenon, but also about the social narrative phenomenon.

He says:

…the idea of climate change carries quite different meanings and seems to imply different courses of action. The IPCC has constructed a powerful scientific consensus about the physical transformation of the world’s climate. This is a reality that I believe in. But there is no comparable consensus about what the idea of climate change actually means. If we are to use the idea constructively, we first need new ways of looking at the phenomenon and making sense of it.

One way I do this is to rethink our discourses about climate change in terms of four enduring myths. I use “myths” not to imply falsehoods but in the anthropological sense – stories we tell that embody deeper assumptions about the world around us.

He then goes into explaining four classical myths and different ways we convince ourselves to dot he right thing. These stories are familiar to me, and not just to climate change. These are the kind of stories we use in social settings to convince ourselves of all kinds of things, from not murdering your neighbour, to using Free Software.


Working at Gaming Failure

I was just thinking how I sometimes take games (computer, card or any other kind) far too seriously and I really perform better when I can try my best and at the same time not care so much about defeat.

Interestingly the research going on behind the motivation for playful behaviour seems to suggest that failure is the whole purpose for games. It’s a safe environment where losing doesn’t endanger the animal, where challengers don’t risk life to competitors and where happiness about achievement can reinforce good tactics and strategy even after losing.

This actually makes a lot of sense for community based animals where young are taken care of by a parent or group of adults; think of how long human children spend learning. Most of the learning I did successfully came from play, even so far as my social skills improving as soon as I was allowed to fail and not be too critically rebuffed from those mistakes. In fact I’ve heard it many times that people learned far more once they left typical educational settings than they did while attending.

Perhaps something I should be more attentive to as I write these lesson plans and other materials. So my current thoughts are: Description, Demonstration, Playful Attempts, Homework Challenges.

This makes the first two teacher driven, the third student driven with teacher supervision and support and the fourth a student only activity. What are your thoughts?

P.S. Aesop: So remember kids, play to win but accept losing victoriously. There is always next time.

Mathamatics: Working it Out

I’ve finally figured out a mathematical problem, this is no small achievement for me since I’ve never studied mathematics beyond algebra and what extra I’ve learned has been strictly to do with the practical problems when programming computers.

Here is the problem: List out all positive integers that all contain a x number of bits and do not go over a given length. It’s a combinatorics problem at heart, since your asking for combinations of two kinds of things (1 and 0) in a pre-set number of spaces.

You can produce the number of expected results using a factorial: C = N! / [r! × (N-r)!] where N is length (number of slots) and r is the number of bits. This is useful for checking and gives us some clues into the problem, but doesn’t produce a list of combinations.

This is easy if you want to slog it out and you know some basic programming, just loop from 1 to 2 ^ length, convert the number to a binary string and print if the number of ‘1’ strings is equal to the number of bits required. This is also incredibly slow (download code).

I used the slow method as a check and as raw data and piled through it trying to see if I could find some patterns. The first thing I found was that all even numbers in the set could be generated from a list of odd numbers in the set by simply multiplying them by 2:


I created a program using the slog method mentioned above to separate out the two sets and produce the output shown above, the second even set produces a steped output where each steps size is the C factorial method mentioned above and inputting the difference between the First set bit and the last set bit (always bit 1 with an odd number).

All the numbers in the first column are odd and I count as my odd set. You’ll also notice that all the odd numbers in the following step are always between the odd and last even value of the last line of the previous step.

The first odd number is always ( 2 ^ N ) – 1 and gives us a starting point in the odd set.

This part took a week on and off to think about, but I worked around the idea that there is a relationship between each of the odd numbers in a given step and then numbers in the next step. The relationship is N = (S * 2) – 1 / N is next value and S is this value. This doesn’t catch all numbers though and it doesn’t explain the factorial like nature.

Not until today did I figure it out, first I drew a tree view of all the numbers and their relationships on my whiteboard board (very useful):

As you can see, each Blue relationship produces a single child in the next step, each Green relationship produces 2 children in the next step and each Red relationship produces 3 children in the next step in a very consistent manner.

So long as you know the factor by which this number was generated from the previous, you could generate all children from it. The start factor is just n – 1 and each factor after can be done as x when looping from 1 to current factor. Add this odd number generation to the even number generation and you have the making of the solution.

Taking all this together I encoded and tested some perl code to generate all integers that only contain a set number of bits, I then checked this against my slog logic above and got it all working:

Download Code Here