OSCON: Game of Life, Klingon, demons and perl?

   Print.Print
Email.Email weblog link
Blog this.Blog this

Robert Kaye
Jul. 27, 2004 11:26 PM
Permalink

Atom feed for this author. RSS 1.0 feed for this author. RSS 2.0 feed for this author.

I've never quite listened to such a presentation before. Ever! Educational, yet hilarious. Ludicrous, yet, erm... useful?

I'm not sure this will make sense -- listening to Damian give this presentation made me laugh so hard that I was convinced it was all nonsense. But in the end it was not -- I'll try and convey the basic gist of his talk.

Damian started out talking about the game of life -- the cute simulation that shows complex behaviour arising from simple rules that has fascinated us all at some point. He wrote a DFA (discrete finite automaton) class for perl that he used to show us the game of life. He then began changing the rules of the game and eventually showed us how to build a NOT gate using the game of life. He then proceeded to outline how one could implement a Turning Machine in the game of life.

Crazy stuff, for sure. Damian then turned his attention to Klingon. Yes, the ficitious language that arose from Star Trek. He proceeded to map Klingon words, complete with the proper pronounciation and enunciation, to the perl language. Describing it won't do it justice -- you had to be there to experience it. I was laughing almost the entire time and at points I had to stop and try and gather my thoughts so I could still follow this madness -- afterall Damian Conways always delivers in the end and I didn't want to miss the punchline. Seriously, laughing and paying attention to seeming nonsense is hard work -- especially late in the day.

After mapping Klingon to perl, he took a detour into the Second Law of Thermodynamics and James Clerk Maxwell's "Maxwell's Demon" thought experiment. Wikipedia explains this experiment as:

In 1871, the Scottish physicist James Clerk Maxwell proposed a thought experiment. A wall separates two compartments filled with gas. A little "demon" sits by a tiny trapdoor in the wall. It looks at oncoming gas molecules, and depending on their speeds it opens or closes the trapdoor. The object of the game is to eventually collect all the molecules faster than average on one side, and the slower ones on the other side.

We end up with a hot, high pressure gas on one side, and a cold, low pressure gas on the other. Conservation of energy is not violated, but we have managed to redistribute the random kinetic energy of the molecules (heat) in such a way that energy can now be extracted from the system (it can drive a gas turbine, say).

. . .

In Maxwell's thought experiment, the demon manages to decrease the entropy, in other words it increases the amount of energy available by increasing its knowledge about the motion of all the molecules.

Got that? Good. Damian didn't know what to make of it, so he decided to simulate the experiment. Now nearing the end of his talk, what else would he choose to simulate this experiment? The game of life, of course!

He proceeded to work up an appropriate simulation for Maxwell's Demon, and the simulation held true (contrary to what Wikipedia says)!! The gas molecules did in fact collect on the hotter side. However, he pointed out that the flaw in the simulation was the number of particles in the system. By increasing the number of particles, the Demon can't prevent hot molecules from escaping back to the cold side and thus the Second Law of Thermodynamics holds and Mr. Conway simulated that fact with the game of life.

But what about the Klingon? Well, it turns out that Damian wrote a Klingon module for perl, which allows programmers to write perl code in native klingon! And of course to wrap it all up, he showed us the code for the Maxwell's Demon simulation written in Klingon.

Wow. I'm blown away. And now that the tutorials are done, we're on to the conference portion of OSCON. I look forward to someone else blowing my mind in the next few days.

Robert Kaye is the Mayhem & Chaos Coordinator and creator of MusicBrainz, the music metadata commons.