Thoughts and Ramblings

General things I find of interest.

Open Source Attitudes

With my recent work on Fire, Adium, Perian, and A52Codec, I have come to realize several misunderstandings concerning open source software.

Ask anyone involved in Open Source Software (OSS), whether it be the users or the developers, and you will find there is often a disconnect between the two groups. The users are upset with the elitist attitudes of the developers and the developer are upset with the whining of the users. Why does this happen? The answer is simple, people are greedy.


Perian Woes

Well, we had some fun with Perian today. First it started when macupdate decided that they were going to post a fake 1.0 of Perian. You can read the details if you like. Since this is clearly something we didn’t want, we had to figure out how it happened. My guess is that someone saw the new website design in development within the subversion repository, clicked the download link that was there, and noticed it download a version later than what we have on the website.


Nearing Release

Well, Perian is finally nearing a release. I wonder how much press we will get over this one, since it is finally hitting version 1.0. Chris (project manager) seems to think that Perian will be bigger than Adium (which he also manages). Considering how well version 0.5 has been received (over a quarter million downloads), I think I now believe him. Then we get to start work on version 1.1, which will include optimizations to what we did in 1.0.


AC3 and Passthrough on the AppleTV and Macs

A few days ago, I managed to get my AC3 codec to do AC3 passthrough on the AppleTV. It wasn’t that hard once I stopped making stupid mistakes. Now, if you have a video file with AC3 audio along with a dolby digital decoder, you can play it on your AppleTV and enjoy full 5.1 dolby digital surround.

David Conrad later sent me a patch to make it work on PPC based macs. It is annoying not having a decoder to test these things on. I suppose that just adds to the challenge.


Branchless Code

Apologies if this is technical, but since I learned something in this experiment, I thought I would write it up:

I remember going to a seminar a few weeks ago delivered by a faculty candidate which discussed the idea of how to get around the branch mis-prediction problem present in microprocessors. Anyway, her idea was to use predicated statements to make the instructions conditional on a comparison which may not have been completed yet. Essentially, when faced with a decision between two routes, the processor starts computation on both before it is even sure which it should take. Then, when the decision is known, it can proceed to throw out the results from the task it should not have started and only keep the results from the other. Her research mentioned using the processor’s internal register renaming system to prevent the results from the two colliding. There is a problem of both processor support as well as compiler support, as well as the fact that the active power in the processor is now increased. From the first two issues, I doubt we will ever see this come to light, especially when such things are already possible: