links for 2007-03-14

OpenID

You may have realised from my technical type posts that I’m a big fan of decentralisation, at least when it comes to all things internettery. In that vein, I now have an openID thanks to phpMyID. It was very easy to install and get working, took me less than 5 minutes. https://kybernetikos.com/openid is now my openid end point, and I’ve so far successfully logged on to a bunch of openId services including ficlets.com a social fiction writing site and jyte (if you enjoyed anything on this site and want to pop over there to give me some cred for it, that’d be nice). If you don’t know how/want to set one up yourself on your own server, you can use a service like myopenid.com. You already have one if you have a yahoo account, or a wordpress.com blog.

I’d love to see this kind of single sign on succeed since single sign on is needed and the alternatives are MS passport style things. If you haven’t already got an OpenID, let me encourage you to get one, and start using it.

links for 2007-03-10

Singularity of Great Britishness

I’ve written a bit recently about the technological singularity, the idea that paradigm shifts have been increasing in frequency logarithmically, so that soon there won’t be time to do anything except paradigm shift and that will be so tiring for us that all bets are off about what we will do or become next.

Anyway, the proof of this is all here in this lovely graphic on wikipedia, collecting data from many esteemed sources (click for the big version).

Someone once pointed out to me that people tend to overvalue recent changes, because they mean more to them, and they forget or undervalue older stuff. I’ll call this the Dewhurst effect.

So my question is, are these paradigm shift graphs simply artefacts of the Dewhurst effect?

It’s very difficult to tell, but I thought one thing we could do is to generate a similar graph for something we know to be true, and see if the Dewhurst effect has had a distorting influence on that.

Everyone knows that the British are getting better and better as time goes on. There is no question that we are heading towards a singularity of greatness, when eventually so many great Britons are being born every minute that the Oxford English dictionary has to redefine greatness. Since this is a given, is there any data that I can plot to see if the Dewhurst effect has distorted the evidence for this?

Fortunately, there is. The Great British Broadcasting Corporation a few years ago ran a survey to determine the greatest britons of all time. You can read the full list on Wikipedia. I had to clean up the data a little, removing those whose names could be associated with paradigm shifts and technological discoveries to remove the influence of the technological singularity. Eventually, I got a list of musicians, politicians and humanitarians.

Here’s the graph (click for the full image).

Great People

Result. Well, obviously we don’t have as many data points as all those different think tanks, (I chose 1987, because I figure it takes about 20 years for greatness to manifest, so we wouldn’t have data for the last 20 years) which means that the graph isn’t as nice, and they have data going back more than 10000 years, but there looks to be a definite straight line there to me. In fact, I think if you just consider the last 10000 years our line is actually straighter than theirs. The fact that we are producing great Britons exponentially faster as time goes on is supported by the graph, with no sign of distortion from the Dewhurst effect. Perhaps we could also use the graph predictively. According to my calculations, there was a great briton living about 600 years before Boudica, or in 560 BC, that history has forgotten. This date corresponds neatly to the start of the iron age in Britain, so I would hazard a guess that he was the one who kicked it all off.

links for 2007-03-09

RIAA Math

01. Amount the RIAA asks for per song in damages when they file suit in the US = $750
source

02. Price of song on iTunes = $1
source

03. (01 / 02) Number of lost sales they implicitly claim you caused by downloading rather than buying that song (although note, they’re claiming more than that, since they can’t sue for damages sustained by Apple) = 750 lost sales

04. Number of times Nellys “Over and Over” was downloaded in the US (to Jan 2005) = 5,827,833
source (using figures from bigchampagne.com)

05. Number of simultaneous P2P users worldwide = 9,670,552
source

06. Number of US simultaneous P2P users = 6,980,000
source

07. (06 / 05) Proportion of P2P file sharing done in the US = 72%

08. (04 / 07) Probable number of times “Over and Over” was downloaded worldwide = 8,094,212

09. (08 * 03) Number of lost sales for “Over and Over” by the RIAA reckoning of 750 per song = 6,070,659,000

10. Population of the world = 6,525,170,264
source

11. (1 – (10-09) / 10) Proportion of the world who didn’t buy “Over and Over” but would have if there had been no file sharing = 93%

That’s right, 93% of the entire population of the earth, (man, woman, child and baby), wanted to pay money for “Over and Over”, and would have too, if it weren’t for those pesky file sharers. Presumably the remaining 7% were people who actually did buy “Over and Over”.

Domino Computation

I try to explain this so that someone with no technical background can understand it, but I go pretty quick in an effort not to bore those who already know this stuff. I hope I found the right balance for you, if not, jump to the pictures and videos. This describes how I worked out how to make a computer (well, calculator) with dominos. If such a thing doesn’t interest you, you better not read any further.

Introduction

I’ve been interested in primitive and alternative computation since I learnt that computers were made of pretty much nothing but switches. 10 years ago, I was thinking of pneumatic computers, when I first met roo we had a discussion about computers made of wood and elastic bands or cockroaches, and chatting to woodly got me thinking about computers made of dominos.

Theory

To really make a complete computer, I’d need a NOT gate, which sadly is pretty complicated with dominos – I figure you’d need a clock and a mechanism to stand dominoes back up again – I’m imagining a piece of string tied to the pendulum of a grandfather clock, something like that anyway…

Luckily though, you can make some useful computation circuits without the NOT gate. To make things as simple as possible, we restrict ourselves to binary numbers (poor old Babbage, doing everything in base 10). Binary numbers are just another way of writing numbers, any whole number can be easily represented as a binary number – it works just like decimal, except that the individual places never go above 1, and each position doubles the value of the digit instead of increasing by 10 times. 101 in decimal is a hundred and one (1×100 + 0x10 + 1×1), whereas 101 in binary is five (1×4 + 0x2 + 1×1). Adding two numbers together is the same as in base 10 as well, except instead of carying 10, we have to carry 2.

Here’s the longhand calculation for the decimal sum 574 + 927 = 1501

4 + 7               = 1 (carry 1)
7 + 2 + 1 (carried) = 0 (carry 1)
5 + 9 + 1 (carried) = 5 (carry 1)
0 + 0 + 1 (carried) = 1

And now the longhand for the binary sum 101 + 11 = 1000 (in decimal, that would be 5 + 3 = 8)

1 + 1               = 0 (carry 1)
0 + 1 + 1 (carried) = 0 (carry 1)
1 + 0 + 1 (carried) = 0 (carry 1)
0 + 0 + 1 (carried) = 1

You can see that in binary you’d need loads more digits to represent the same number, but that it simplifies things because you only ever have to deal with 0 and 1 (if only the Nintendo Brain Training game only gave me sums with 0 and 1 in them). Looking at the steps we took, you can see that in order to add two numbers together of any size (in decimal or binary), you need to do many steps of adding together 3 numbers of only one digit. We take a digit from one, a digit from the other, and the carry from the previous calculation, and produce a digit for the answer, and the carry for the next step.

When working with binary there are relatively few possibilities so it can be nice to see these things in a table. On the left are all the possible inputs, and on the right are the outputs we want. This is called a truth table, and this is the truth table for what’s known as a Full Adder.

a b c
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
sum carry
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1

In dominos, it makes sense to represent a 1 as the dominos being knocked down, so, this table tells us that if we could create a series of dominos that had 3 input lines of dominos that resulted in two output lines, where the first was knocked down if one or all three of the input lines were knocked down, and the second was knocked down if two or more of the input lines are knocked down, then we can build a sequence of dominos to add any number together.

Actually coming up with a domino chain to do that is pretty complicated, so I simplified the problem again. Rather than adding three numbers, you can create something simpler that only adds two numbers, and chain two of them together so that it ends up adding 3 numbers. This simpler component is called a half adder, and the truth table looks like this.

a b
0 0
0 1
1 0
1 1
Sum Carry
0 0
1 0
1 0
0 1

If you can make a half adder, then you can stick two of them together to make a full adder. If we can make a half adder in dominos, this means that we could stick a bunch of them together and if we had enough of them, add any two numbers together, simply by flipping some dominos and reading out the result.


Practice


So can I make a half adder in dominos? Here’s the planning for the sum part.

Planning for the sum part of the half adder.

My sum design used two “Inhibit pass through” gates and an Or gate. The inhibit pass through gate is a domino gate I invented that only lets one of the two input lines continue. The truth table looks like this

a b
0 0
0 1
1 0
1 1
output1 output2
0 0
1 0
0 1
0 1

In domino terms, we have two lines of dominos going in, and two coming out. There’s a middle domino that twists depending on which hits it first, and so only allows one of the lines to continue. An OR gate is really easy in dominos, just have two lines merge, and the resulting line will fall when either of it’s input lines falls. With that I was able to create the sum part.

The complete SUM domino circuit.

The final part of the half adder is the carry. This only falls if both of the inputs fall, it’s also called an AND gate. I stuck a few dominos together to make a large domino that would fall if hit, but only if a blocking domino placed side on to it also fell. Here’s a close up of it being blocked by the side-on domino.

Close up of the AND gate.

Result

So, with everything together, does it work?

Domino Half Adder, Input 00, result 00
Domino Half Adder, complete

Domino Half Adder, Input 10, result 10

Domino Half Adder, Input 01, result 10

Domino Half Adder, Input 11 result 01

Yes. Given enough time and dominos I could build a domino chain to add numbers of arbitrary size.

Thanks to Sarah who helped with the filming, and Woodly who discussed the idea with me, and encouraged me to build it.

Update: Bonerici has constructed a domino computer using his own domino logic gate, an XOR constructed in quite a cunning way. I haven’t tried building one yet, but it looks good, and enables a domino computer more palatable to the purists (who were never happy with me sticking dominoes to each other).

Update: A lego half adder.