June 2011 Archives

Google+: A Review

So, I got an invite to Google+ so I logged in and had a look around. I do like the rotary phone style addition of people to a “Circle”. Overall, it has the normal Googlely look and feel, which I like. However, there are problems, mostly due to lack of integration with the rest of Google. It is as if the team had no clue about any of the other piecemeal attempts at social networking that Google has tried.

  1. Goolge Buzz: does not appear in your “Status” list. This is mildly frustrating. You must go all the way to your profile page to see this. They should just appear in your status list as per facebook.

  2. Google Reader Sharing: If you share something via Reader, it does not appear as a link in your Status list. Again, this means that if you want to share something cool in your RSS feed, you would have to do it twice.

  3. Google Reader Like: What is the difference between Google Reader Like and Google +1? Don’t know? Me either. Again integration and semantic fail.

  4. Lack of People: It seems like they are dibbling this out (a la gmail) which means that there is currently only one friend currently on there even if I have a huge “Circle” of friends. This is boring.

  5. Do I really need another one: This is just getting ridiculous. I don’t want to waste any more time. I tried it because it was Google but I don’t want to sign up for another damn one of these.

Anyway, these are my first impressions. Maybe it will get better but it is leaving me a bit flat.

Mutually Recursive Types

Unlike C/C++, Ocaml does not allow you to have “forward declarations” of types. In other words, if you have a record type A that has an entry that of type B and type B has an entry of type A, you cannot forward declare B so that it is in scope for record type A. In code:

type A = { foo : B }

type B = Bar of A

To get around this limitation, Ocaml has “mutually recursive types” with the keyword “and”. Now, “and” is overloaded to work with mutually recursive functions as well. So, if you want to do this you can use “and” thusly:

type A = { foo : B }
and
B = Bar of A

There is one thing to notice here: B does not have a “type” keyword in front of it. This isn’t necessary because the idea of “type” crosses the “and” boundary. Sometimes, you get long chains of this which can look slightly odd but isn’t too much of a problem most times.

Bitcoin: Money is a sign of poverty

Some of you may have heard of Bitcoin before. This would be true if you have been following the lulsec hack of the NHS. Lulsec accept bitcoin as a donation method. There have also been some concern from the US Senate about bitcoin.

So, please read the wikipedia article above for a quick intro to bitcoin before you read any further.

I am interested in bitcoin because I like the anonymous and p2p nature of the service. While I would describe myself as a “socialist”, I still believe that there are some things that are not the government’s business and sometimes I just want to be left alone to do what I want without interference in the form of government. Another incentive for me is the cryptographic nerd in me loves the idea that you can have a completely anonymous currency using computers to do it.

For my analysis below please understand that I will be using “normal” logic rather than “economic” logic (also known as “voodo logic”). I am not an economist and I do not trust them very much given their past track record in the prediction business.

So, what gives a bitcoin value? This is a rather fraught question to start with and really should be the heart of economic philosophy. In Neo-classical economics, something has value because someone will put a price on a good or service. This neatly dodges the question. Marx goes into the question in the first chapter of Capital. His theory is that value is created when a raw material is turned into something useful by labour. This makes sense even if Marx’s prose style is as dense as lead. In terms of bitcoins, because they are generated by CPU/GPU mining, a bitcoin has value in the electricity spent in generating the bitcoin. In other words, it is based on carbon emissions (unless your computer is run using renewable or non-carbon electricity generation).

Now, I just want to inject here another idea. All currencies are valueless. To mangle Nietzsche, “if you stare into money (the abyss), money (the abyss) will stare back into you”. Currencies only have value because you are required to pay your taxes in them. Otherwise, they are nice colorful bits of paper with dead white guys on them. They don’t mean anything and will never have extrinsic meaning. Bitcoin is the same.

With the theory of a bitcoin’s value out of the way very neatly using Marx (thanks dude). We can now turn to the criticisms of bitcoin. The first of which is bitcoin’s deflationary nature. There are only 26 million bitcoins that can be found. This gives an upper boundary on the size of the market. However, since you can divide a bitcoin up to eight decimal points, the correct upper boundary is 26,000,000 x 10^8 number of units. This is still a hard limit.

Now, why would this be a problem? First, we must think about inflation. Inflation is where a nominal currency becomes less valuable over time due to the entrance into the market of more of that currency. Most central banks try to keep inflation at about 2%. Why is inflation useful? What happens when you know that your £1 will be worth slightly less tomorrow than it is worth today? You will be encouraged to either invest that to beat inflation (and if you don’t beat inflation, you will be losing money in the long run) or spend that money. This keeps the economy going because then you will have what economists call the “velocity of money” (Thanks again to Marx). If the “velocity of money” ever reaches 0, it is like hitting 0 kelvin, we don’t know what will happen but your economy will not work.

Now, deflation is the exact opposite of inflation. This means that my £1 will be worth more tomorrow than it is today. This will discourage you from investing or purchasing anything other than necessities. This also impacts debt but that is a thorny subject that I will avoid for this post. Therefore, that bitcoin is deflationary is a sight problem because the market will never expand enough to cover what a normal currency would as it has hard limits to the number of bitcoins in existence.

A way of thinking around the deflation of bitcoin is to understand that this is a niche currency thus the market will never reach a stage where the deflationary aspects of the currency overtake the inflationary needs of huge advanced economies.

I have a few minor suggestions that might make bitcoin scale indefinitely but they may have their own problems. First, build in a 2% inflation rate into the mining aspect of the currency. This means that people will be encouraged to spend/invest/lend bitcoins. 2% is a modest number for an advanced system. It means that hyperinflation will never happen but you can still do useful work and “get ahead” of inflation. Second, the anonymous nature of the currency causes many in power to fear it because they cannot control it. In the end, are we not free to do what we please with ourselves? I know it is a trite idea these days but the government needs to quit fearing and causing fear. We are adults, as long as we are not doing harm to others or ourselves, what is the problem? If bitcoin is to survive we need to have a reasoned debate about the usefulness of alternative currencies. I doubt that this will happen in the current political climate.

I think bitcoin is cool and neat and a way of building up a store of value that has nothing to do government. It is also a neat implementation of cryptography.

Also, this is not investment advise. This is all at your own risk.

About cyocum

user-pic Celticist, Computer Scientist, Nerd, sometimes a poet…