Friday, December 18, 2009

Climate Change and Scale

One thing that always annoys me about the climate change argument is that proponents of human driven climate change tend to focuse on the last few hundred years or at most thousand of years. This stikes me as odd considering that there has been life on earth for hundreds of millions of years.

This is why I find the graph on this page very interesting.Firstly for most of the history of life on earth the atmosperic carbon level has been well over 1000 parts per million, and we are talking about levels between 400 -500 as dangerous irreversible climate change. The other thing that the graph seems to show is that the earths stable average temperature iis about 22 degrees.

SO on a geologival tiemscale the current averages of 16 degrees is markedly below average, it is then little wonder that the world is trying to get warmer. There is strong evidence that higher carbon levels lead cause photosynthesis and plant growth to accelerate.

Granted that our evolutionary history has occured during an ice age (while there are icecaps we are essentially in an ice age). So all in all while I support moves to reduce human pollution of the environment I remain strongly skeptical of the Climate change claims and associated agenda. Especially as this position is increasingly becoming a doctrine held by its proponent with religious zeel, this includes deliberate steps to sideline or suppress any and all contrary options.

Thursday, December 10, 2009

The Death of Science

The following article "Climategate: Science Is Dying" caught my eye recently. I hate to break it to Mr Henninger but the fact that scientists are human and that academia is rife with internal politics has been an open secret for many many years. At least for anyone involved in science or academia in any case. Seriously anyone who has gone to University and paid even a little bit of attention should be aware of this.

The whole topic was covered back in the Sixties by THomas Kuhn in The Structure of Scientific Revolutions. In a nutshell new ideas tend to get taken up by young scientists just getting started. To a large extent the peer review process favors older established theories, especially in highly specialized publications where reviewers are likely to have a conflict of interest against publishing things that will invalidate their own past works. So what you tend to get is generational change. The old theory only dies when most of its proponents have retired.

These days we as a society have far outgrown the romantic notion of Science as the great savior that can do no wrong. That is why research has to be screened through ethics committees. In Psychology many of the pivotal experiments conducted in the first half of the 20th century frequently involved inflicting potentially serious mental trauma on unsuspecting volunteers such as the Milgram study.

But then again Kuhn didn't really reach that wide of a general audience. So maybe Climategate will have an impact on the perception of science in the general community. Far from being a bad thing it will help the general public to see science for the man made institution that it is. And in my opinion this is a good thing as accepting anything blindly and absolutly is demonstrably a bad thing.

Tuesday, November 17, 2009

Sports Funding

So the Australian Federal government got back its report on sports funding. In a nutshell it says stop spending big bugs on a handful of professional athletes and put the money where it will have an impact on the general health of the population. Personally I could not agree more.

There are 22 Million people in Australia. I don't see any reason why we should be more capable at sport then Americans of whom there are 300 million. so It stands to reason that they will produce ten times as many world class athletes as we will. It should be noted that we also have no chance of outspending the country that is still the worlds largest economy.

The Dummy spit by the head of our Olympic Committee was to be expected. But then again I have little respect for an organization which globally almost sees its self as above the law. Heck they have managed to pressure government to make special laws for them at several Olympic games recently. Then again the AOC position seems to be based on the tricle down economics. That seeing Australians win gold will make Obese kids want to get out and play sport. No it dosn't work, instead they'll send a hero TXT. WHile waithing for their high sugar high fat food items to be put into a brown paper bag (produced by a proud sponsor of the Australian Olympic team naturally).

The Sydney Morning Herald has a number of articles exploring both sides of this issue, though none of them allow you to leave comments. Personally, as a tax payer I agree with the report. I'd rather see my tax dollars go into local sporting facilities then into the chase for Olympic gold.

Monday, November 16, 2009

Why Go is a good thing

I've seen quite a few posts and comments on blogs along the lines of go is just a crap version of X I can't understand why google is wasting time on it, instead of (just using | improving) X. There are several answers to this.

Firstly Go is probably different from X and does not have the same stated goals as X. Especialy where X turns out to be a high level programming language that has a very large runtime, or runs in a VM or is interpreted.

Secondly Diversity is good. Think of Go as just another mutation of C, which has some new and useful features. Having written a few tiny programs I can see two so far. The first is that even though we are statically typed it is amazing how rarely a type actually appears outside of a method signature. The implicit typing that occurs when you set variables to initial values gets things correct an awful lot of the time. And the big one is concurrency. Everyone knows that programming concurrent software is hard. As the trend these days seems to be to multi core CPU's it is also becoming a very important area. Big thing is that Every program I have written so far has included gorouteens. they are a great way to generate data (if any place you would be inclined to use a generator in Python you'll be creating a go routine.

It occurs to be that a list comprehension style syntax for defining generators would by handy here. But thats just sugar as it where and I can definitely live without it, much as I have been able to live without anonymous functions in python.

I think that Go is a worth while addition to the programming language ecosystem. And this is true weather it survives or becomes extinct.

Generics or Bust

I have to add my voice to the choir calling for generics to be added to Go. As others have noted Go contains no fewer than four parametrized types: arrays, slices, maps and channels. Such types are so mandatory that it seems impossible to build a programming language without them.

And it is an annoying asymmetry that I as a programmer can't define an equally parametrized linked list or binary tree type. I expect that these will come eventually. My hope is that it will be sooner rather than later though.

Saturday, November 14, 2009

The Go Language

So there is a new language in town. Having gone through all of the docs I have to say it looks interesting. The need to destinguish between new and make is a little messy, the language FAQ agnoledge this however.

I like the type system, with the implicitly implemented interfaces. It does look like Go programs will involve quite frequent casting. Ditto for the built in concurrency primitives, and I expect that most programs will make quite frequent use of them. Where in Pthon I might use a generator I could well see myself using a goroutine in Go, and getting my generated items from a channel.

A lot of effort has been made to make the language terse, which is a nice feature for a low level language to have. And yes making switch statements default to breaking at the end of each case unless told otherwise. Thank you finally a language that reflects how switch is actually used!

Personally i don't see why they didn't just call the looping construct loop, rather then for. seeing as it is a general purpose looping construct that can be invoked in several ways that look nothing like a traditional for loop. Still this is a minor thing.

What does look certain is that Go programs aren't going to look much like C or java, once enough people learn how to use the language natively. The basic constructs are just different.

Now that I've gotten this far its time to try some actual programming in Go. To this end I've retrieved the list of 99 Lisp problems and I'll see how I go in solving them using Go. Step one will be to build a linked list typo work with. It will be interesting to see how much mindshare Go can capture. And when we can expect a Windows version, lets face it lack of Windows support is glaring omission at present, even if I don't use Windows I still recognise its importance in the marketplace. (Now there's a scary thought ... its only a matter of time i suspect.)

Wednesday, November 11, 2009

Lost in a Sea of Ideas

The following is a repost as the original got spammed with junk comments and Blogger dosn't have an easy way to remove large numbers of comments in one hit without dropping the entire post.

I have found myself lost in a sea of new concepts lately. Firstly I read Andrew Poltkin's presentation on Rule based systems in Interactive Fiction. I have to say it was discouraging in terms of the RPG I was writing. Short point being that This is harder then you think it is.

Then I came across the following article (PDF). Which is an interesting read. And raises a point that I missed the last time I saw it. Namely stop treating JavaScript as it it was a class based language with awkward syntax.

The thing is that It is a prototype based language with two kinds of links, and a couple of missing functions. The big problem with learning to write JavaScript properly is that most tutorials make this mistake, And their is a lot of truly awful JavaScript code samples out their.

I don't really have any new insights on prototype based inheritance (yet), so if your interested have a look at Douglas Crockford's JavaScript site. I won't pretend that I get everything Douglas is getting at but I'm convinced that he understands it and that this is a good place to start hacking.

So where does this leave my project?

Up in the air a little. As I'm determined to do it right as it where. And need to teach myself how to operate effectively in a prototype based language. I'm pretty well sold that a rule based approach might be the best thing I can do. I encountered this when I tried to add conditional logic to my RPG, My conditional tests required inimate knowledge of how the engine stores its data, which seemed way to coupled. What I seemed to need was a simpler data organisation. I can't think of anything simpler then a flat database of facts, and that sounds pretty rule based. So Murphy's law is in full swing and I'm going back to the drawing board. Just as soon as I've learnt some new tricks

Monday, November 02, 2009

To misquote a classic

A long, long time ago...
I can still remember
How that code used to make me smile.
And I knew if I had my chance
That I could make those servers dance
And, clients, they'd be happy for a while.

But XML made me shiver
With every page I'd deliver.
Bad news in the log-file;
I couldn't take one more crash.

Monday, October 05, 2009

Obama Snubs the Dalai Lama

I read this morning that President Obama has avoided meeting the Dalai Lama. I can't help thinking that he has done the correct thing here. Like many Westerns I have for a long time tacitly supported the notion that China invaded and is a hostile occupying power in Tibet.

However this may have been very much a case of I don't like Communism as a form of government and therefore the enemy of my enemy is my friend. The thing to ask is what the office of the Dalai Lama actually represented. The answer is that the office represents a brutal feudal theocracy.

As this article details up until the communist takeover Tibet was a feudal society which still practiced serfdom and mutilation as criminal punishment. Now the Chinese propaganda machine clearly has an agenda in perpetuating this view of history. I have no doubt that the do everything they can to exaggerate it. However I'm also certain that this position does have a factual base and should not be swept under the rug for convince. After all the west has an established history in supporting Dictatorships as a means of slowing the spread of communism.

Now here lies an interesting conundrum. If you accept the official of Tibetan Buddhism then the current Dalai Lama is the reincarnation of his predecessors, which would make him directly responsible for all of the actions of the regime through the ages. If this is true then no matter how benign and peaceful an individual he appears to be he does not deserve any support form modern democracies.

I just found this related story. Personally The position of the independce spokesperson sounds rather stupid to me. It was only the ruling class in Tibet, which was not elected, that lost its ability to determine Tibet's future. I doubt that without an extrnal push the regime would have changed significantly.

Friday, September 18, 2009

A Bill of Rights for Australia

A while ago former Priminister John Howard wrote a very persuasive article about why Australia should not have a Bill of Rights. I have to say that after reading it I was convinced. He presented what seemed to be an excellent argument for how a Bill of Rights would reduce democracy.

He argued that a Bill of Rights would shift power from the Legislature to the Judiciary. While he is right about that I find that I don't agree with his conclusion. And it all has to do with the concept of the two freedoms. A concept I first encountered in the dystopian novel 'The Handmaids Tale' by Margaret Atwood.

The two freedoms are freedom to and freedom from. And the thing is that they frequently clash. In the so called war on Terror we all have lost some of our freedom to, in the name of freedom from. Mostly this has happened in the guise of special anti terror laws that reduce some individual rights in order to protect society from harm.

More recently in Australia there has been the Internet censorship debate and the argument that to protect society from pedophilia we will have to restrict every ones Internet access. But we promise not to misuse this new censorship tool for any other purpose. Senator Conroy has argued vehemently that anyone who opposes him is supporting paedophilia and hence is morally corrupt. Not Senator I'm not supporting paedophilia I'm supporting my right to access information that the government of the day does not like. Promises that the blacklist will be limited to refused classification, with no public oversight, rings hollow to me. And are something you cannot promise in perpetuity. Instead I am certain that once the tool is there the government will come under immense pressure from lobbyists to use it against all sorts of information that some vocal minority find objectionable.

Would freedom of information enshrined in a bill of rights prevent this? Maybe maybe not. John Howard wants to argue that its not a choice that should be left to judges. The thing is that the worst the high court could do is agree with the government that such a filter was not against the bill of rights. What they couldn't do is mandate one, that power would remain with the Legislature.

What I have realised is that a Bill of right protects freedom to. But cares nothing about freedom from. In effect it says that some freedoms
are so important to maintaining democracy that we are willing to sacrifice freedom from, to protect them. A Bill of rights gives the judiciary the power to say no this law can't stand as it would reduce the freedom to do X which is protected by the Bill of rights. Now the Judiciary can already do this for anything that is covered by the constitution, so this isn't really a new power.

It seems to me to be a very good division of powers. Let the Judiciary protect freedom to and the Legislature protect freedom from. Because
when it comes down to it a free and open society cannot exist without freedom to.

So a bill of rights does, as Mr Howard claims, extend the power of the judiciary, but it does not give them new powers. The extension is very tightly focused and will in the end serve to strengthen democracy, just in case we ever make the mistake of electing a wannabe dictator into the highest office in the land.

Sunday, August 09, 2009

Social Networking

I read recently that use of facebook by teenagers has declined for the first time ever. Some time earlier I also read accounts of what happens when the first facebook high wears off and you start realising. Oh so anything I put on Facebook will be seen by my boss, and my parents and my mother in law and ... what have I created. Fortunately for me I don't believe that any one of the above individuals in my life actually have a Facebook profile.

My Partner, has expressed similer annoyance with Facebook, where she has several groups of frends from different periods of her life. Very often something she wants to post is particularly relevant to one group and not the others. However having one networking sites all will see it, leaving some to scratch their heads and wonder what she is going on about.

Recently I have joined site dedicated to a particular subject of interest. What I found inside was an entire social networking site (blog included). I've been thinking about this for a while and I think it makes sense. The Facebook Idea of one network site to rule them all is a bad one. Why, because we all have segments to our lives. Places where we don't want to expose to everyone we know for one reason or another.

Interestingly this is one place where I don't even want interoperability. And their are certainly things I have posted in special interest sites that I don't want on my Facebook Page at the present moment.

But why not just use the entire internet as your social networking site? well that comes down to the problem of finding other people with similar interests. Take this blog. Its on a general blogging site, and all things considered I don't know that anyone actually reads it. Often I feel its I get more of an audience by posting my thoughts to Facebook, then to recording them here. Ditto for special interest sites where my posts are guaranteed to be on topic and delivered to an audience who will be interested in some of what I have to say on the matter at hand.

So it is natural that their will be an array of special interest social networking sites. Each with a target demographic of sorts, and many fostering particular special interests, whatever they may be.

Thursday, April 23, 2009

An RPG in JavaScript

I've spent my train time for the last two weeks working on an wrting an JavaScript RPG (Thats Role Playing Game) system. The end result is intended to be a cross between the system used by Kingdom of Loathing and a traditional text adventure.

So far I've been boged down with a lot of low level mechanics, and ensuring that all my objects can round trip between JavaScript and XML. E4X makes this far less painful then it would otherwise be. The plan is to have a JavaScript game engine that executes XML based adventure files. Why XML? because JavaScript can allready parse it and it will be less cryptic then JSON. I'm musing that an adventure creator would also be nice, and would give me an excuse to play with XUL.

E4X means that at the moment my engine will only run in Firefox. But then this is a hobby project and I have better things to do then deal with the Pandora's Box of cross browser issues. Especially as Firefox 3 already implements so many goodies from HTML5 and ECMAScript 5th Edition.

Though I can't wait for the next beta of Firefox 3.5 and the @font-face CSS property. That and border images Should really come in handy when I get around to putting an interface page together.

Monday, March 09, 2009


I've been playing with a javascript library, which works as both a command line, and server-side execution Environment. Its called JSEXT and is a rather interesting beast. plus you can call your server side functions from script that executes in the browser, and JSEXT will generate the boilerplate needed for the AJAX call automatically.

For one thing it provides an incredible amount of auto loading magic, which sees it find not only functions in other javascript files but also in C header files. Any C library will effectively be usable form javascript. That got me thinking Cairo is a C library

Getting the helloworld example from the Cairo FAQ going was reletivly simple. But JSEXT provides something better, an OO wrapper for the Cairo library. Granted I did have to check the source out from SVN and compile it to get them, and then sort out a couple of minor bugs in the wrapper.

Anyway the following code is a slight modification of the basic example. This script is intended to be accessed from a web browser as title.jsx?"Insert your text here" and yes it works perfectly fine if you set the src attribute of an img tag.

this.responseHeaders.contentType = "image/png";

var surf = new JSEXT1.Cairo.Surface.image("ARGB32", 800, 80);
var cr = surf.context();

selectFontFace("serif", "normal", "bold");
fontSize = 32;
source = [0, 0, 1];
moveTo(10, 50);


Yes this is a file containing one anonymous function. This is one of the more curious features of JSEXT. You can give it a directory tree and it will walk it and build a set of Javascript objects based on what it finds. This does requie one method per file, which is somewhat unusual. But seems to work alright in practice. It is also uses lazy loading so only the methods you actually use get loaded into the runtime.

Thursday, February 26, 2009

Javascript Solution

I've been doing two things recently. Messing with CORBA and adding a small JavaScript effect to a web page. Working with CORBA is technical and challenging, and you would think interesting. To tell the truth CORBA has a somewhat unjustified bad reputation round the office. It dosn't fit perfectly to python, that is true, but it is still a very fast and reasonably secure way to do RPC.

The little JavaScript solution was suprisingly more enjoyable. Now I don't do much fornt end work so I had to look up essentially everything, and had one approach not work, for no obvious reason that I could see. But on the whole it was more enjoyable. I suspect that the immediate visible feedback provided by making a change, reloading the page and seeing what would happen, had a lot to do with it.

I'm think I can see more web design work in my near future. And more javascript. wxJavascript or GLUEScript as it is to be know from the next version onwards is worth a look. Especially as I like the wxWidget toolkit. Don't know if I'll be sufficently motivated to build it myself though.

Tuesday, February 10, 2009

Divine Retribution

I have to say that hearing anyone talk about divine retribution after a natural disaster makes my blood boil. Like this Individual.

Honestly their should be an ethical exam before anyone is allowed into a position of religious authority. This is the 21st century people. The lunacy of it is, as always, that the people hurt the most by the bushfire played no direct part in writing the laws Mr Nalliah is critical of.

Mr Nalliah, I put it to you that if you dream of fire and brimstone it might be a premonition of your own fate. I trust, and hope, that your congregation does not hold with your absurd statements and will seek to remove you from office as expediently as possible. And let me finish by saying shut up you self deluded religious zealot.

It turns out that Mr Nalliah is no stranger to controversy. And has previously been found guilty of religious vilification. He also published a brochures that listed the religious buildings of other religions (along with Casinos and Brothels) as Satan's strongholds.

This reinforces my decision at the last few elections to always list the Family First Party last. I see them as far more sinister then some overtly Christian political parties as they make some attempt to conceal their affiliation with fundamentalist Christian groups.

Wednesday, January 21, 2009

Read First. Then work out what to do

Even though I have relatively poor pitch perception, an equally poor sense of rhythm, I still like the idea of playing a musical instument. More precisely for I'm attracted to the woodwind family. I also have mild asthma so the deck is really stacked against me in terms of playing a woodwind.

Most recently I've taken to playing the Alto recorder, this is slightly larger and lower pitched then the more common soprano records that tend to be used by school music programs. Knowing for past experience that it is quite easy to play out of tune even on woodwind I got myself a cromatic tuner, so as to give me some of the feedback that my ear doesn't quite provide.

Their are two reasons I've shifted from Saxaphone to recorder:
* I live in a unit and an Alto recorder is much softer then an Alto Saxaphone.
* getting a recorder setup at the beginning of practice, and cleaned at the end takes much less time. It's smaller and their is no reed to mess about with.

Reading part of the way through a book on Musical Scales and Temprement has really blown that theory out of the water. THe point is that my cormatic tuner is giving me methamatically precise Just Temperament. Which is essentially a set of compromises need to get keyboard instuments tuned into something usable.

Now a Record does not have fixed intonation, if it did I would never have gone down the path of getting a tuner in the first place. WHat this means is that I should be aiming to play the real intervals, not the tempered intervals (especially when playing solo).

Now the chromatic tuner wasn't a total loss, but it means how I use it will have to change. Rather than trying to get the tone exactly on the note the correct thing to do is to sharpen or flatten it based on the melodic progression.

This will however require me to get my head around what the real intervals actually are. So far I know their names but don't quite follow how they relate to the notes of the scale. How sharps and flats actually work is particularly confusing me at the moment. Though I do know that they don't really coinside so that A sharp is slightly flatter then B flat, etc.

This will take quite a lot of thinking an experimenting. I was planning to write myself some ear training programs relying on midi playback. However I may have to rethink my strategy here as I suspect MIDI uses Just Temperament. So it will be a case of learning how to control the sound hardware to generate particular pitches including overtones. And then generating the correct intervals from their.