Saturday, March 28, 2009

Zakir Naik and evolution

This name must be alien to most of the people reading this blog but he is quite a popular in indo-sub continent. Recently a muslim friend of mine presented his arguments to me when we discussed evolution so I thought of watching one of his videos about the theory of evolution. The following are my notes on this video that I was supposed to send to my friend but then realized that it would be nice to 1. share it with others 2. have these available somewhere in public:

He starts his speech with the argument that in no book, it calls evolution a fact but theory. Now this only shows his ignorance about the very definition of a scientific theory and this alone should be enough to simply ignore anything such has to say about science. However I will not do that and listen to rest of his speech and address his arguments. Here is my notes on each of his arguments:

1. Quote from Darwin "I do not believe in natural selection, I do no believe in theory of evolution". First of all, could someone please provide me with a citation for this letter Darwin wrote? Although I have a gut feeling that he is just lying but putting that aside, he is talking about the very early days of Darwin when he was very young and hadn't yet really arrived at the theory of evolution so him not believing in it at that time should not be very surprising and have much (if any) weight as an argument.

2. He presented an argument about Darwin admitting missing links that I couldn't quite catch despite the fact I heard it again and again. If he is just talking about missing links themselves, he seems to be ignorant of an important fact that Darwin was able to correctly predict at least a few missing links to be found later that really where found later just like he predicted.

3. The *only* reason theory of evolution is taught everywhere now a days is that church has been against science and theory of evolution goes against the church. I am sorry but this is such a stupid thing to say. This might be able to explain why it's taught in western/Christian countries but how does this explain it being taught in China, Japan and India for example?

Also not all churches have always fought against theory of evolution. Some churches, like Lutheran got over it ages ago and they hadn't challenged the validity of evolution for a long time. In fact I personally know a Lutheran priest who recently wrote any article on how this theory doesn't go against the teaching of Bible.

Catholics have never really been against evolution and recently they've started to show signs of embracing it.

Notice the stress on *only*. This implicitly implies that he denies any evidence supporting it what so ever and that is something quite contrary to reality. If he had denied or challenged the validity of the big amount of evidence present, that would have been very different but simply denying it's existence is nothing but either utter ignorance or lie.

4. Then he describes the states of human evolution according to theory of evolution. He puts them in wrong order and he doesn't even seem to know that homo-sapiens is the name for the modern humans. Surprise surprise, he proves the theory of evolution wrong by criticizing these stages that he got wrong himself. This is just another example of his ignorance about this theory he is talking against so confidently.

5. He talks of 100s of scientists who are against theory of evolution including nobel prize winers but when he give examples, he is only able to mention one Nobel prize winning scientist. I tried to catch the name of that person but didn't quite catch his name or maybe (just maybe) this person doesn't actually exist?

All the other people who mentions, I have never heard of them and searching for their names on Internet doesn't bring-up much, unlike when you search for Albert Einstein, Richard Dawkins, Stephen Hawking and other big scientists in the recent times.

It could be just that I don't get to catch the names correctly and google isn't able to suggest anything better but I will appreciate if anyone could provide me this list of scientists.

6. He again come to "there is no proof whatsoever" and then he contradicts himself immediately after that saying "there is some proof on the microscopic level". If he had challenged the proof and/or evidence supporting evolution, that was another thing and I could think about that but simply denying the existence of any proof is simply making a loud noise about one's ignorance to me.

7. He then claims that evolution on microscopic level is not against the Quran so he simply accepts that as a fact. Thinking about this, I wonder where does Quran says that evolution can't happen on non-microscopic level? The only thing in evolution that really does conflict with Quran is evolution of man himself. So why make the difference between microscopic species and non-microscopic ones?

8. He then calculates the chances of evolution happening and comes up with a very small number. How does he do that? By completely keeping two very important facts from his calculation: 1. the incredibly huge amount of number of solar systems in this universe 2. The extremely long amount of time it took. I once saw a program on National Geographic in which they calculated the same probability with these importance facts in mind and they came up with a very big number.

9. He then goes on attacking the 'theory' that homosexuality is genetic, which he concludes by saying it is illogical. However I remember hearing the news 1-2 years ago about scientists finding the exact gene that causes a person to be homo-sexual. Not only that, they even found how it transfers from one generation to another. Anyway, this is off-topic and i don't have any reference so i'll let him win on this one. :)

10. At the end, he talks of the 'theory' that all man are descendants of one man. He says that it's just a theory so he doesn't quote it or anything but since it's in accordance with Quran, he predicts that in 100 years it will be proven. How exactly can he know that? What proof he has in support for this theory that he is comfortable with believing in that, even though it's just a 'theory'?

Looking at the history of all religions (including Islam), it's very easy to predict instead that they all will accept theory of evolution at some point, many in fact has already done so and some (Catholics) are showing signs of doing so in the near future. In fact, they will then claim that this theory was foretold in their religious books long time ago and present it as a big argument everywhere.

In the end, a very simple picture that shows one of the many evidence in favor of evolution (thanks Karl Lattimer for pointing it out):

Tuesday, March 24, 2009

Maemo community - Students Wanted

Just copy&paste from Valerio's blog to get this on planet GNOME:

The Maemo community is looking for talented students to join us in the Google Summer of Code initiative.

We already have a good pool of ideas, but we are also looking for students ideas in the mobile/embedded field, especially in the following areas:

* Location based apps;
* Context aware apps;
* Linux kernel advances, related to mobile/embedded;
* Social apps clients;
* Mobile/embedded apps in general that can benefit a wide range of platforms (maemo, openmoko, beagleboard, etc…).

More informations about Maemo @ GSoC can be found here.

Sunday, March 22, 2009

We have transcoding!

Since transcoding is one of the hottest feature almost every user expects from a decent modern MediaServer, I finally manged to put some time into implementing it. After two weeks of hacking, I finally have transcoding implemented in Rygel. Yay! The source format/codec could be anything that gstreamer's decodebin2 can handle. The target format/codec had to be specific and I currently support mp3, PCM and mp2 video + mp2 audio encapsulated in mpeg transport stream.

Before you ask, no! none of the above transcoding classes work against PS3 but PCM. So you can listen to your OGG vorbis file on your PS3, yes but no videos that are in format alien to PS3. With transcoding working with PCM, I don't think any PS3 user will miss transcoding to mp3 (especially keeping in mind the inevitable loss in quality because of transcoding from one lossy codec to another) but transcoding of videos is something users would want/need so I will look into why PS3 refuses the mpeg ts stream from Rygel, however I have a feeling that the problem is most probably not in my code but mpegtsmux gstreamer element. If that is the case, I might not be able to get to dig into this issue any time soon myself. However, anyone willing to contribute is welcome to look into this matter.

Saturday, March 7, 2009

Multiple networks and GUPnP

When GUPnP was first used at Maemo software, one of the first questions I was asked was: Can't GUPnP handle multiple network interfaces just like ClinkC (the now deprecated UPnP framework in Maemo)? The answer to that question was "yes but you have to take care of creating GUPnPContext objects for each network interface yourself" and that wasn't very convenient. This issue, accompanied by the fact that applications had to know when the interfaces go up and down to create and destroy the associated GUPnPContext object themselves, made the lives of application developers not so easy.

Recently when this issue was raised on the mailing-list and bugzilla by two different people, I started to think about how to solve this issue. Keeping in view Ross' advice I came-up with the following solution

A GUPnPContextManager class that basically just have two signals: "context-available" and "context-unavailable", that it uses to create/destroy and report GUPnPContext object for each network interface as it goes up/down. While the API was easy, the implemenation wasn't as there is no portable way of doing this. So what I did was that I wrote two different implementations that user (packager) can choose at configure time:
  1. GUPnPUnixContextManager: Unix-specific implementation of GUPnPContextManager that only checks for all the up interfaces and creates a GUPnPContext object for each one of them. It doesn't unfortunately have any way of knowing when the interfaces go down. One can monitor network interfaces using netlink but that will be linux-specific and therefore should go into a separate implementation. Such an implementation will also be something that will be feasable for maemo so in case you are interested in small tasks for maemo, this is yet another chance. :)
  2. GUPnPNetworkManager: Implementation of GUPnPContextManager based on NetworkManager. This is a full-features implementation and hence the default one.

Although I got this working last week, I realized that Jorn might have overlooked something in his great plan: Every GUPnPContext was joining and watching the multicast channel on the same (default) interface no matter which interface it was created for so the discovery/announcement part wasn't quite functional on each interface. Since this required some fundamental changes in GUPnP stack and the fact that it had been quite some time since I last touched unix socket APIs, it took me a week to get this right. Fortunately, GUPnP API/ABI didn't need to be broken for all this and all that changed in the API was the move of a property from one class in gupnp package to it's parent class in gssdp package (this implied deprecation of one getter and addition of another though).

So after two weeks of hard work, the world seems to be a better place now. The needed changes are yet to be reviewed and merged by Ross so for now if you are interested to try these out, you need to use my 'multinet' branches from gitorious repos:

http://gitorious.org/projects/gssdp/repos/mainline/logs/multinet
http://gitorious.org/projects/gssdp/repos/mainline/logs/multinet
http://gitorious.org/projects/gupnp-tools/repos/mainline/logs/multinet

Sunday, March 1, 2009

First time skied

So after 4 years in Finland, I finally got to ski for the first time ever in my life. It was so much fun but unfortunately also extremely tiring at least for a first timer like me who hadn't developed the needed muscles for it. Ansku took some pictures: