Archive for August, 2005

Now I just need a name for this thing

Wednesday, August 31st, 2005

I was arguing (in a friendly way) with some people the other day and it got me thinking about an idea for a new website. Technically it is a kind of "conflict resolution" website, but in practical terms it is a forum for people to argue in without anybody getting angry or repeating themselves and without the argument devolving into what the definition of "is" is.

It occurs to me that this idea has been brewing in my head for some time - back when I was living at home, one of my brothers used to argue with my parents quite often all the time and I used to try to moderate the arguments. It was frustrating to try to get each party to actually listen to what the other was saying. Also, because the refutation of any given statement might involve several other statements (more than one of which might need to be refuted) it can get difficult to keep track and some threads of conversation might get forgotten.

Here is how the site would work. User A posts a controversial statement - say (for argument's sake):

  • Statement 1: "Abortion should be legal"

This statement becomes a page on the site. User B, happening upon this page, is given the option of expressing an opinion on this statement. The options are "I agree", "I disagree" and (the default) "I neither agree nor disagree". On each statement's page, the site would show the proportion of people who have expressed an opinion on the statement and the proportion of those who agree with it.

Suppose user B disagrees with statement 1. They then have the opportunity to make a set of arguments and statements in support their opinion. In this case, such statements might be:

  • Statement 2: "Abortion is murder"
  • Statement 3: "Murder should not be legal"
  • Statement 4: "Statements 2 and 3, when taken together, imply that statement 1 is false"

User A might agree with statements 3 and 4 (and can press buttons on the pages for those statements saying so) but disagree with statement 2. User A's arguments against statement 2 might take the form:

  • Statement 5: "Murder is the deliberate premeditated ending of a human life"
  • Statement 6: "An unborn fetus less than 24 weeks into the term of pregnancy is not a human life"
  • Statement 7: "Statements 5 and 6, when taken together, imply that statement 2 is false"

User A might also make another statement in support of statement 1:

  • Statement 8: "If abortion was illegal, it would create a black market for abortions which could be dangerous for women who are in desperate situations"
  • Statement 9: "Statement 8 implies statement 1"

User B might then agree with statements 5, 7 and 8 but disagree with statements 6 and 9 and give their reasoning. And so on.

There are two sorts of statements here - "monolithic" statements like statements 1, 2, 3, 5, 6 and 8 and "connecting" statements like statements 4, 7 and 9. The site uses connecting statements to create trees of deduction for a particular user - figuring out why people believe what they believe.

The site would keep track of unrefuted statements, track back through the deduction trees and show, for each statement, which side (if any) is "winning" the argument.

In the course of reading statements from other users, a user might change their mind about some statement. Suppose user C agrees with statements 3 and 4 but disagrees with statements 1 and 2, but is then persuaded to change their mind about statement 2. The site uses the trees of deduction to find contradictions in a user's opinions. The user will then be given the opportunity to choose which other statements they want to change their mind on to resolve the conflict. In this case, the site would say "Your opinions on statements 1, 2, 3 and 4 conflict. Which one(s) do you want to change your mind on?"

Another possibility is that two users might disagree on some experimentally verifiable fact. The site would keep track of such statements and, given a disagreement, would be able to propose an experiment which would resolve the disagreement one way or another. Once this experiment has been done, the result (with suitable references) can be posted in another statement and can be used to convince people of things or can be disagreed with (if people believe the experimental method used was flawed).

Yet another possibility is that two users agree to disagree on a particular statement, and make a connecting statement saying ("statement x is neither provable nor disprovable"). That is fine too - the site only records people's opinions on various statements, it does not pretend to be fount of universal knowledge.

Further refinements which could be made:

  • The site could keep track of definitions of particular words, so that users have a common vocabulary to communicate with (e.g. the word "murder" in statement 3 might be a hotlink leading to the page for statement 5). A statement about murder in a different context might link to a different definition.
  • Users could associate themselves with particular groups such as "liberal", "conservative", "libertarian" - this would not change any of the arguments but would allow the site to be able to generate interesting (although possibly obvious) statistics such as "90% of conservatives agree with statement 2". The site could even try to categorize users based on their opinions.

Of course, some users might disagree with the logic that the site uses to deduce things. For example, a user might disagree with "if A implies B and B implies C then A implies C" on finding some of their long-held beliefs in contradiction. Such users would be encouraged to set up their own site with their own system of logic (you can't even begin to have an argument if you don't agree on some basic axioms that you can use to deduce things). Of course, a similar website which uses a form of logic that isn't very useful won't be well-frequented!

Lyrics competition 2005

Tuesday, August 30th, 2005

Eleven extracts of the lyrics from eleven of my favourite songs are under the cut. Your mission (if you choose to accept it) is to identify as many of the songs as you can without using any sort of internet search engine. There will be a prize for whoever gets the most. Closing date is 11:59pm PDT on the 6th of September, 2005. One entry maximum per person. The judge's decision is final. No warranty, express or implied. Do not taunt the happy fun ball.

The lyrics are...
We may lose and we may win,
But we'll never be here again.

Unless the moon falls tonight,
Unless continents collide,
Nothing's gonna make me
Break from her side.

This whole damn world can fall apart.
You'll be OK, follow your heart.
You're in harm's way
I'm right behind -
Now say you're mine.

You got to cry without weeping,
Talk without speaking,
Scream without raising your voice.

But the truth is:
I never could stop dreaming,
Anymore than I could
Make them all come true.

The rocks may melt
And the seas may burn

I'm soaking through and through.
Then you handed me a towel
And all I see is you.
And even if my house falls down now,
I wouldn't have a clue
Because you're near me.

You'll never see the end of the road
When you're travelling with me.

You took off your coat, stood in the rain.
You were always crazy like that.

If it seems I'm floating in the darkness,
Well I can't believe
That I would keep you from flying.

You fill up my senses
Like a night in the forest,
Like the mountains in springtime,
Like a walk in the rain.

Spread the word.

I have a buffer

Monday, August 29th, 2005

I want to avoid any more long periods of not writing in my blog from now on - in fact I hope to post every day. In order to achieve this I have taken a leaf from the book of Raymond Chen (possibly one of the most famous, influential and respected Microsoft bloggers). Raymond posts at 7am every weekday without fail and can do this so consistently (even when he is on holiday) because he has a backlog of posts which currently reaches into late December. So, while some friends were visiting for tea yesterday, I created a buffer of my own.

Now that I have a backlog, when I think of something to write I can jot down a few notes and gradually refine it into a fully-fledged post during the time it's in the queue, instead of planning it and writing it - I longer have to make it into a fully polished post straight away. Maybe this kind of defies the point of blogging (which is supposed to be a raw, unpolished, up to the minute, stream of consciousness kind of thing) but it fits my perfectionist writing style better. I'm sure I'll still make posts about my day-to-day life from time to time, but for the most part I'll talk here about things which interest me and thoughts I've had.

In other news, things achieved today: hair is cut, car oil is replaced and media PC is (hopefully) fixed. I even went to work for a little bit.

Computer graphics of the future

Sunday, August 28th, 2005

Back in secondary school I was fascinated by the concept of ray tracing. At first I thought it was the ultimate rendering algorithm - that photographic-quality computer-generated pictures would be possible just as soon as we managed to accurately model the way light reflected or was refracted by the surfaces we wanted to visualize.

Then it occurred to me that maybe shooting rays from the eye back to the light source was not necessarily the best way to go about rendering objects. What if we shot rays from the light sources to the eye instead? The trouble with that approach, I quickly realized, was that most light rays are absorbed by other surfaces before reaching the eye, so you would have to shoot an awful lot of photons to get anything approximating an image.

The next step in this mental process was to imagine combining forward and reverse ray tracing - shoot rays from the light source and bounce them around a bit to figure out where the light ended up in the scene, and then shoot rays from the eye into the scene (using the normal ray-tracing algorithm) to actually render the image, using the first set of rays to figure out which parts were lit up, which were in shadow and so on. Unfortunately I never got around to implementing this idea.

Turns out that someone beat me to it anyway - Henrik Wann Jensen had already invented photon mapping some years before and rendered some beautiful images of Cornell boxes, caustics and architectural models. All the good ideas have already been thought of...

If computers continue to get more powerful at the rate they have been, in 10-20 years it should be possible to render photon mapped images and model the subsurface scattering needed to render translucent objects (like people) all in real time. By then we will all have high dynamic range displays (I saw one of the BrightSide displays at an MS research techfest earlier this year - it was awesome) and will have sophisticated procedural geometry algorithms for rendering all sorts of complex natural objects. These technologies (especially combined) will be able to generate some truly awesome images, increasingly difficult to distinguish from real life.

The future of computer graphics looks good!


Saturday, August 27th, 2005

After weeks of alternating between procrastinating about wedding things and worrying that there isn't enough time to do all the wedding things I have to do, I finally set to it and took care of all the things that needed taking care of. There is still lots to do, but various wheels have been set in motion and for the first time in a very long time I find myself with nothing that I urgently have to do, and the possibility that this wedding might actually happen!

So now I can try to resuscitate my long-neglected blog. I thought I'd start off by linking to this, a fascinating new input device new input device that Steve Gibson (no relation to my fiancee) linked to on a newsgroup post a while back. The second movie is particularly cool-looking. I'm looking forward to the day I can throw away my mice!