loge.hixie.ch

Hixie's Natural Log

2004-12-31 02:04 UTC End of year weekend

There are 25 spaces available for the next round of Voidwars, so if you want to play a Web-based graphical real-time long-term strategy game, then go and sign up!

Spaces are limited, the game will start when the game is full (probably on the first of January 2005).

For my birthday I received various cat-related things (yay!) and also the game Tantrix. GwieF, Xiven, and Kam are here for the new year and we played Tantrix. Great game! We also played Bohnanza of course. Another great game. And we played Donkey Konga (with the bongo controller) on Kam's GameCube. Good lord.

(GwieF should get a Web log.)

Earlier we ate raclette (a Swiss dish consisting of melted cheese on potatoes with pickled condiments. Originally we tried eating it with a special (several years old) raclette heating machine, but that blew the fuses repeatedly, so we ended up just melting the cheese in a frying plan with the Aga. It worked well!

Yesterday I saw The Incredibles (for the third time) with Narley and my sis (amongst others) which was fun.

Now we must go back to playing games!

2004-12-20 02:02 UTC What's wrong with the term "Open Source"

In the Free software world there are two philosophical camps, the "Free Software" camp (nominally led by RMS) and the "Open Source" camp (nominally led by ESR). By and large both camps care about the same thing, I think, but there are differences.

One of the principle differences is that the Free Software camp think that the term "Open Source" dilutes the entire point of the exercise — increase in freedom — while the Open Source side thinks that the term "Free Software" is too easily confused with "Gratis Software".

The latter point is clearly demonstrated by the fact that at least one person I know (my dad) always understands "Gratis Software" when I say "Free Software", even if I explain the term.

The former point, though, is apparently just as true. Evidence: a recent Web log post by Robert Scoble:

Open source has become a metaphor for things done in public view with public input. Actually, [Microsoft is] a leader here. Check out Channel 9. It's the first step along the road to open source marketing.

Doing things in the open? Who cares. What I want is the freedom to run the program however I please, study it to see how it works, share it with my friends, and help improve it.

I really wish we could come up with a term that didn't have the ambiguity of "Free Software" and of "Open Source". In the meantime, though, I'm sticking with "Free Software (as in free will)".

2004-12-15 23:05 UTC Evolution is a fact

I occasionally run into people who say things like "evolution is only a theory, it might not be true!".

Imagine you are in a normal room, on Earth, and you have two identical drinking glasses, both full of water. You pour the contents of one glass into the other glass.

I'm sure everyone agrees that the result will be a lot of water all over the table and floor!

Nobody disagrees that this would happen, because you can try it, and guess what, every time you try it, the same mess results. Same with concepts like "fire gives off heat": You can quite easily walk up to any fire and sure enough, you heat up.

I imagine that people's problem with evolution is that they don't have first-hand experience with it, and therefore don't believe it happens in the same way that they believe in over-filling a glass or fire being hot.

I wrote a program when I was a kid that simulated evolution to make little characters on the screen walk from one side of the screen to the other. Each character had a short DNA consisting of random instructions moving it up, down, left or right, and for each "generation" I used the two most successful characters' DNAs to randomly generate new DNAs, with a little mutation thrown in.

It worked very well, and with a few tweaks I was even able to make the characters evolve into walking particular paths, etc. So I have no doubt that evolution is a fact.

Writing a program to do this is not everyone's cup of tea, though, so here's a simpler way to model evolution that everyone can do, and which shows just how effective it is.

To do this, you'll need 20 coins (or anything with two well-defined sides which can be made to randomly pick one).

Each coin represents an organism. In our little model, organisms have just one "gene", whose value is determined by whether they are face-up or face-down. (In reality, organisms have hundreds or thousands of genes, but let's stay simple here.) Initially, the gene has no effect on whether the organisms live or die.

For simplicity, we're going to say that the life-cycle of a coin is as follows: They are born, they grow up and possibly die, the survivors randomly separate into breeding pairs, each breeding pair has two or more children (as many as can fit the environment), then the parents die and the cycle continues with the children of the new generation.

If the parents are both heads-up, then the children will all be heads-up, if the parents are both tails-up, then the children will all be tails-up, if the parents are mixed then the children will be randomly mixed as well. Occasionally, a mutation occurs, and a child of a heads-heads pair is tails-up, or a child of a tails-tails pair is heads-up.

This is a very simple version of what happens in real life, but like I said, we're going for simple here.

Ok. Throw the twenty coins into the air and let them land randomly on a table. This represents the first generation.

This generation, they all live. Pair up your coins randomly, and let them all have two children according to the rules listed above (which basically means leaving the pairs as is). This is your second generation.

If you feel like it, randomly flip some of the children over to represent mutations. Separate out the coins again so that you don't breed the children with each other for the next generation (it doesn't matter all that much if you do, but it gives you a better feeling for what is going on if you don't).

If you did it right, then you should have twenty coins, some heads-up, some tails-up. You can repeat this process several times, nothing particularly interesting should happen. The fraction of coins that are heads-up vs tails-up will stay roughly the same throughout.

Now we introduce a change to the environment. For the next generation, any coins that are heads-up will die. This is equivalent to saying that there is a genetic aspect that has suddenly become important to survival. For instance, maybe there is now a new predator in the environment that eats heads-up coins but leaves tails-up coins alone. (Something similar happens with moths and their colour.)

Look at the children — er, coins! — that are on the table now, and push any that are showing heads to the side. This represents the coins that died while growing up.

Now, pair up the remaining coins.

Make the pairs breed. Since you have a few spare coins now, some of the breeding pairs can have three or four (or more!) children instead of two. Use up all the "dead" coins in this way. Breeding pairs that are both heads-up would get a heads-up child, breeding pairs that are mixed would get a randomly flipped coin, etc. To represent mutations, flip a few coins over.

Separate the coins out again. Look at your coins, comparing it to what you had just one generation ago.

That's evolution.

For extra credit, you can repeat the process the other way around. Have a few generations where heads-up coins die, then have a few generations where the side doesn't matter, then have a few generations where tails-up will die.

You can also try to change the environment violently from tails-up-dies to heads-up-dies and seeing what happens. If you're doing mutations with each generation, then your coins will probably scrape through (and then begin to thrive again), but without mutations, you'll just wipe out your entire coin population.

Pingbacks: 1

2004-12-15 05:05 UTC Nocturnal

I accidentally set off the flat's smoke alarm at 05:20 today. I didn't even know we had one. Usual story — a little smoke from heating an oven that contained a little cooking oil at the bottom of a tray that I hadn't noticed, which the cooker's overhead fan wasn't strong enough to pump out.

Blimey that thing was loud. I nearly had a heart-attack. Unsuprisingly, it woke at least one of my flatmates. I guess that's a good thing, in a way, since it is designed to do that. But still. Suggestion: There could be a way to pre-emptively turn off a smoke alarm situated near a kitchen for a limited time when you know that you're about to let out a lot of innocuous smoke.

Ironically the whole event quite put me off my food.

Earlier I finally finished Neal Stephenson's Quicksilver, which I've been reading for a while. Usually I just zip through books but this one was some pretty heavy (though rewarding) reading. Now I'm starting on The Confusion, which is the next one in the series.

2004-12-14 23:53 UTC Finished as well

I got to see the San Andreas end credits today, so theoretically that means I finished it. I'm actually at 62% completion.