Thursday, May 29, 2008

Oooh - another package :)

I got another package from Google today. Its a credit/debit card which is how we will receive payment for our work - they load the appropriate amount onto it from their side, and then we get to use it in shops that take master card etc. I think it looks quite snazzy :)

The name on the bottom of the card is GSOC 2008 STUDENT - I wonder if I will have any problem when trying to use it.

Still going through code, looking at how things have been done, trying to identify the best place to actually get started - I think probably implementing the MSN codec stuff would be a good place to start -> Just get the video "recording" and "playing" from / to files, and then across the network. I think there has been a fair amount of code done relating to this, so hopefully it will be a good place to get some progress going.

Thursday, May 22, 2008

Beautiful Code

The awesome people at Google have decided to send a gift (a book entitled Beautiful Code) to the students of the GSoc 2008 program.

I'm currently out of non work related reading material, so it was very well timed. I have only read around 50 pages, but am enjoying it so far. It is comprised of many different chapters written by different authors, each discussing what he feels is a piece of beautiful code. The back of the book says "...today's leading programmers walk through elegant solutions to hard problems, and explain what makes those solutions so appealing."

One of the reasons it is appealing to me is that this year I have been doing a lot of coding under time constrains, and pushing for some sort of visual signs of progress that I can demonstrate - hence hacking together a lot of code that is not very beautiful, but just works. Hopefully I'll be able to learn a couple of new tricks from this book.

Here are a couple of quotes from the end of a chapter on reducing code - Entitled "The Most Beautiful Code I Never Wrote"

  • If I had more time, I would have written you a shorter letter. (Pascal)
  • Simplicity does not preced complexity, but follows it. (Perlis)
  • Less is more. (Browning)
  • Make everything as simple as possible, but no simpler. (Einstein)
  • The cheapest, fastest, and most reliable components of a computer system are those that aren't there. (Bell)

Inaugural Post

Whew - things have been hectic this year so far. I have just finished co-lecturing a course at my university, so hopefully things will calm down - just the exam on the third of June to invigilate and mark.

I have created this blog in order to share my progress made in my Google Summer of Code project, but first I will give my readers a bit of background information.

I'm currently studying a Masters of Science Engineering at the University of Cape Town (in the beautiful land of South Africa :). I finished my B.Sc. Electrical and Computer Engineering last year, and decided to carry on studying.

I'm currently conducting research in the IP Multimedia Subsystem (IMS) for Next Generation Networks. It is a telecommunications framework designed to allow rapid development and deployment of new services. For my undergraduate thesis I worked on a simple IPTV broadcasting system over the IMS framework, and currently I am researching different ways of conducting video conferencing utilising the specific control signalling that the IMS supports (an extended version of SIP).

These two projects lead me to becoming involved with the GStreamer community as I used the GStreamer Multimedia framework to handle all my audio / visual needs for my IPTV system. More recently, I have begun to incorporate the Farsight 2 work into my research, and have been using it extensively to create a video conferencing system.

This collaboration (or rather, me asking questions and getting answers) has lead me try and contribute to the GStreamer/Farsight cause, which has resulted in my acceptance to the Google Summer of Code Project.

My GSoc 2008 project aims to take the old unmaintained plugin for the MSN webcam protocol and recode it for the Farsight2 API, as well as integrating it with a Telepathy connection manager. The end result of this project will consist of a plugin developed for Farsight2 (written in C) together with the necessary documentation and several examples in order to enable other developers to utilise it easily and successfully.

Well, thats the goal - I hope I can complete it successfully. I'll try to update this blog with my progress - we will have to see how that works out :)