Friday, December 18, 2009
Climate Change and Scale
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 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
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
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
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
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 Go.net ... 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
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
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
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
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
JSEXT
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.
function(str){
this.responseHeaders.contentType = "image/png";
var surf = new JSEXT1.Cairo.Surface.image("ARGB32", 800, 80);
var cr = surf.context();
with(cr){
selectFontFace("serif", "normal", "bold");
fontSize = 32;
source = [0, 0, 1];
moveTo(10, 50);
showText(str);
}
surf.writeToPNG(stdout);
}
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
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
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
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.