Saturday, September 29, 2007

Vanilla Coke Discontinued in SA

This is sad, sad news. I have become so attached to Vanilla Coke over the past few years. This week, after a couple of times of seeing the lack of stock in the noodles place at UCT I asked what was up? Apparently both Vanilla Coke and Lemon Light have been discontinued in South Africa!

I'm happy enough drinking standard Coke, but I started really enjoying that aftertaste you got from Vanilla Coke. I haven't searched for any answers as I'm not that mad about it, but if anyone has any further information I'd love to hear what you have to say.

Thursday, September 27, 2007

Riddle: Sink the Sub

A friend was asked the following riddle in a Google interview yesterday. I found it quite interesting. If you have the right background it is trivial, however, if you do not then it can be rather tricky. Feel free to post a solution.

An enemy submarine is somewhere on the number line (consider only integers for this problem). It is moving at some rate (again, integral units per minute). You know neither its position nor its velocity.

You can launch a torpedo each minute at any integer on the number line. If the the submarine is there, you hit it and it sinks. You have all the time and torpedoes you want. You must sink this enemy sub - devise a strategy that is guaranteed to eventually hit the enemy sub.

Note: This was copied from here. That page contains at least one other questions I was asked in my interviews with Google.

Wednesday, September 26, 2007

Email Parking

Typos in domain names are common tricks used by phishers as well as advertisers to take advantage of users misspelling popular domain names. It's often referred to as domain parking. There's a lot being done to tackle this, from new laws to anti-phishing techniques and the lot.

Something occurred to me recently that made me wonder whether this happens with email addresses at all? Email addresses are often a lot more complicated than domain names. Just think about how often people's names are misspelled. What if someone took a popular email address and registered a common misspelling? What if the contents of an email sent to that incorrect address were confidential? The consequences could be devastating!

This might appear cumbersome, but let me first describe what occurred to me. My Gmail address includes my surname, Gallotta, which is often often misspelled (Galotta, Gallota, etc.). So a few months ago I signed up for various misspellings and set them up to forward to the correct address. By chance I recognised that a recent, very important email was sent to one of these addresses. After noticing, I did a quick search and discovered that a fair number were sent to these misspelled addresses! So this was certainly not a once-off occasion. Even people I communicate with regularly made this mistake.

If I had not set signed up for those accounts it could well have caused a few problems! It wasn't confidential (my response was though!), but what if it was and someone else knew that I was receiving confidential information they wanted to get hold of? What if he had registered the misspelled address himself? Disaster!!

Are their any solutions? Ignoring the case of free email services such as Gmail for a moment, the domain name is the most critical. If the users section of the address is misspelled (the part before the @) then it will stay within the domain and in most cases the damage caused will be negligible. So if the control over registering domains similar to major domains then a large part of the problem will be solved.

For free email services such as Gmail, you could do what I did and register the addresses with possible typos. You won't catch everything and if the address is already taken by someone else there is nothing you can do about it. You might say people shouldn't be sending confidential information over free email services. While this is true to some extent, there are varying levels of confidentiality. Even personal emails can be considered confidential and we don't want to restrict everyone from using such wonderful services. Someone might even do it as a joke and it could end up providing him with emails you would absolutely not want to let him read.

I think this is an issue that deserves further attention. If it has received attention then it sure hasn't been enough as I've never heard of any solutions to this before.

Sunday, September 23, 2007

Slashdot vs Digg vs * Effect

It's been three weeks since I posted about Google Earth Flight Simulator. That post made the front page of digg, slashdot and even La Repubblica. It basically spread far and wide across the web. Just look at the number of incoming links Technorati has discovered.

Now I hope this doesn't creep any of you out such that you no longer visit my blog, but I've had Google Analytics installed here since I started blogging. Without it, I would not be able to provide such glorious statistics for you about where all my traffic is coming from and how much I'm getting. Anyway, the graph below is what the spike looks like at the time I made the post. 76,131 visits on day one, which continued with a gradual drop over the four days, giving a total of about 250,000 in four days. Remember that this is visits and not page views, meaning that page refreshes are not included.

What always fascinates me is the location of my visitors. Before this mass attack on my blog, almost all my visitors were from South Africa. I know have received hits from 188 different countries recognised by Google Analytics (only 15 without any hits!). The map below indicates the cities where the traffic comes from. Of course some visits cannot be traced to a city and so they are not labeled by Analytics.

Onto the stuff that matters. What contributed most to this flood? Simple answer: Digg. I've had 57,964 visits from Digg and 25,144 from Slashdot. Surprisingly enough, I've had a whopping 35,354 visits from a site I never even knew about before this - i am bored. La Repubblica sent in 14,188 visits and then the rest all fall below 10,000. Reddit also might be worth a mention at 7,313 visits.

So, what's up with our good old /. then? Losing to Digg, eh? I'm not so sure about that. If we look at the number of comments we have 251 at Digg and 181 over at Slashdot. That alone tells us things are tighter than the referral numbers indicate. Slashdot also provides a much longer summary than Digg does, meaning less need for users to follow the link to my blog. How many times have you heard Slashdot users say RTFA? Certainly far more than over at Digg.

Then there's Reddit. Many people say it's dying, but with 7,000 visitors I don't think we can discard it just yet. And the link didn't stay on the front page for nearly as long as it did on Digg/Slashdot. Something to consider, however, is that Reddit provides no summary whatsoever. So if the title is attractive the users will mostly be converted into visits for me.

The other interesting topic is that of votes. Slashdot doesn't have a voting system like the rest so I'll leave it out of this one. I got 3,884 diggs on Digg and 316 up votes and 30 down votes on Reddit. If we count referrals to my blog as total number of users, then 15% on Digg and 23% on Reddit. Considering that not all users are registered, I'm fairly surprised at such a large percentage. Ok, it doesn't require much effort to vote, but it still isn't really beneficial to users to vote. Taking into account my assumption that more Reddit users with follow through to my blog then Digg users (due to the lack of summary) I think we can say these two numbers will be roughly the same.

I'm still getting a stable 4-5,000 visitors daily, almost all hitting this flight simulator page. Altogether I've had 385,673 visits from 3,954 different referring sites in the past month. Statistics can be quite amazing, yet very beautiful if you look deep enough. If only Digg, Slashdot and other sites made their traffic data available I'd be able to investigate this further. But hey, it's interesting enough.

I'd love to find out how many pages actually posted about this. Googling "google earth flight simulator" with the quotes yields an amazing 417,000 pages. Now I made that search before posting and I could swear that number was negligible. Only thing is that many of those results could well be copies by bots. I guess I'll never know the true level of impact I made. It certainly spread like mad though.

Friday, September 21, 2007

New SACO Forums

Us organisers of the SACO have been very busy discussing ways to expand our training program beyond the top six. Up until now we have taken the six medalists, trained them and selected four from the squad to form the IOI team. A lot about what I'm about to discuss is still a work in progress and may well change. I'm also leaving out plenty details to prevent this from backfiring.

As a first step, we now have a new forum board which we hope will gather together a community of SACO participants, be they future, past or present. We will use this as a means to expand our knowledge from the current squad of six, out to anyone who's eager to learn more.

Although we're still working on polishing up the forums, you can start registering here:

It's open to anyone, but the people we're looking to attract are those wanting to learn more about computer science than what's offered at school. If your school doesn't teach programming, come join! If you're too young to start learning programming, but you want to learn to program early, come join! If you find what you learn in computer classes at school too easy, please come join! If you're a school teacher and are involved in the SACO or want to get involved (by this I mean getting your students participating), please join!

We're working towards an event pretty much like the UCT Maths Circle, where top school students get invited to one of two groups. There will be a Programming Circle where Python will be taught to those either learning to program or wanting to further their programming skills. Then there will be an Algorithm Circle for those who are ready to learn about all the algorithm goodness. Want to learn about search techniques, graph theory, dynamic programming and much more?

This year we ran the SACO as an online contest open to everyone. We got such positive feedback and we've realised that it doesn't require much additional effort. We are therefore strongly considering making all our training camps and future SACO's available to everyone online. Hopefully this will attract some locals as well and better prepare them for the SACO, eventually giving us a better IOI team.

There's plenty more we're discussing, but that should keep your mouths watering if you're interested in getting involved. :-P

Thursday, September 20, 2007

F1 Debacle

Thanks to Alapan for pointing out that the full transcripts from the two hearings have been released. I still cannot get over how often the mistake is made where they redact the confidential parts, but still leave the text in the document in such a way that one can simply do a copy-paste and view all the confidential information. Yes, they this!!

You can get the transcripts here:

Some quotes from the redacted bits:
The whole philosophy of our car was to move the weight forward. We had managed to take some weight from the gearbox.

“They have a double-rear master cylinder with a spring, which initially delays rear braking, then increases it gradually”

He was paid around 300 000 to 400 000 pounds per annum. Is that correct?
Since I didn't get a real opportunity to discuss the ruling I'll use this post to do so.

The driver's got with no direct punishment. They will still be allowed to race in the same McLaren's for the remainder of the season and they won't be docked any points. Now I'm not 100% clued up on the situation, but the cars haven't gone through a thorough inspection and could be making use of Ferrari's IP this whole debacle is about. They will only be inspected just before the 2008 season begins. Yes, they were told they would get off free if they provided evidence, and they did, but I still feel strong against this part of the ruling since they could be driving essentially illegal cars.

The banning of McLaren from the 2007 season is going to be a massive impact to them. Not only is it an embarrassment, but I've heard the sponsors have already started backfiring. The constructors' championship is very often considered more important to the team as a whole than the drivers' and now McLaren won't even be placed. The $100 million fine is enormous! The previous record was $5 million to the Turkish organisers for doing something wrong on the podium. While you may say they have a massive budget, this is going to make a huge impact on their development next year.

I think they should never have offered the drivers full indemnity in exchange for evidence. I'm not in the position to comment on the possibility of getting hold of sufficient evidence to prove their guilt without such an offer, but just think about how much they are getting away with. I'm a Ferrari fan so I will be biased, but I think this is unacceptable. Everyone has the opportunity to cast judgment and that is mine - agree with it or not.

Monday, September 17, 2007

Rondebosch Owning SACO

Rondebosch Boys' High School just rocks! When they do well at something, they really do well at it. The SACO is one of those things they are getting better and better at. Just like UCT are getting better and better at the ACM ICPC and the likes.

The results were announced tonight at the awards ceremony and I don't think many people foresaw such a dominance from Bosch. Mark Danoher came first, but that was kind of expected since he was the only member of this year's IOI team that got another chance. The next four places where swiped by the four Bosch contestants! The last medal went to a grade 10 who's the youngest medalist we've had for a while - possibly even since Bruce!

The top six and the training team for next year's IOI in Egypt:

  1. Mark Danoher
  2. Saadiq Moolla
  3. Haroon Moolla
  4. Raeez Lorgat
  5. Robert Ketteringham
  6. Schalk-Willem Kr├╝ger
Left to right: Schalk, Robert, Raeez, Mark, Saadiq, Haroon.

The way things are looking now, we only need Mark to fall ill and we're on target for an all-Bosch team. :-P It's strange looking back and thinking that just four years ago I was the very first finalist from Bosch and that since then they(we)'ve had such a strong showing with this Charles and now this bunch. Brock also tells me there are some grade 10's who could make an appearance next year, so this isn't just a once-off fluke.

What really excites me is that we Haroon and Robert are grade 11 and Schalk is grade 10. So we could have some continuity with them making the team more than once (or at least training), which is seldom the case.

Over the past seven-eight years Bruce and Carl have pretty much been the reason for SACO's vast improvements. They brought the SACO from manual evaluation to fully automated evaluation, much like the IOI runs now. To do this they put in one hell of a lot of work into an evaluation system that now runs so smoothly and is so effective that it's difficult thinking what it must have been like back in the dark ages (before I was around). It's difficult summarising all their contributions.

To put it bluntly, Bruce has already submitted his PhD thesis and Carl is almost done and both with be leaving us come the end of the year. Along with Donald (see below), we will only realise the full impact of the loss come their departure. I've been creeping into their roles over the past four months or so and I was the "chief whipper" for the SACO this year, with Bruce and Carl taking more of a onlooker role so that I would be prepared for when they leave.

It's a tough role to fill and I've therefore been recruiting some new helpers. Next year, however, I've heard we will be getting a number of this year's SACO finalists into UCT next year so we should manage just fine. If you're one of the finalists and considering where to go - just remember what I told you about UCT dominating in the college contests. :-D

I can't wait to get cracking with the training of our new youngsters! Who will be going to Egypt next year? Right now, no-one is guaranteed a place. Who? WHO? Nothing's confirmed yet, but we might be inviting one or two additional finalists to the training. They won't be eligible for the team though - thank the blinking rules for that. :-(

And now for something completely different:

The behind-the-scene men! Left to right: Donald, Carl, Migael, Max, Keegan, Bruce, Marco (and there are many more!)

Scientific committee and medalists:

The set is incomplete without a photo of our winner on his own. Congrats Mark!

Donald Cook. The more I think about it, the more I realise how much we're going to miss him. He retires to Bredarsdorp at the end of the year.

I've uploaded all my photos here.

Sunday, September 16, 2007

SACO is...Over!

The SACO just ended this afternoon and while the results are still secret I can tell you this year's bunch is looking good! We had 22 participate in the open round and three in the future stars. It was also our first attempt at an online contest with the same problems which drew in over 100 registrations.

The questions (available here) were really nasty this year. As if we didn't clobber them enough last year, a fair number of the contestants were returnees from last year. Gwylim Ashley did so well in the first day of competition in the future stars (beating several seniors even when only considering his mark for the single problem overlap between the two categories) that we did a first by offering him the possibility to move to the open category for the second day.

My old school, Rondebosch Boys' High School, had four contestants in the open round and one in the future stars. While I can't tell the results they did astoundingly well. Go BOSCH!! It does help when you have three Moollas to encourage the guys. :D

The awards ceremony is tomorrow evening, after which I'll be posting results. The top six get medals (one gold, two silver, three bronze) and some prize money for themselves and their schools. The top six Python contestants get a super wad of money ranging from R30,000 for 1st place to R10,000 for 6th place, all thanks to Mark Shuttleworth.

A couple shots from the first round of competition:

And the obligatory pizza stack:

The interest in Open Arena is growing exponentially year-on-year, with more than half of the contestants and coaches playing in a single flag capture:

And finally, the frantic discussions to find out how the $%#& to solve my problem. :-P

For more pictures, go here.

Saturday, September 15, 2007

WMSC Judgment

Since my post on the rumour that McLaren had been disqualified, the true sanctions have been confirmed. In short, McLaren will be stripped of all constructors' points from the 2007 season and fined $100 million. While they will still continue to participate in the remainder of the 2007 season, they will not score any constructors' points nor will they attend any podium celebrations. The drivers, however, will remain completely unaffected - they will keep all remaining points.

The full report is available here. It contains some very intriguing information that has come out of the hearings. Some extracts:

3.5 On 21 March 2007 at 09.57 Mr. de la Rosa wrote to Coughlan in the following terms:
“Hi Mike, do you know the Red Car’s Weight Distribution? It would be important for us to know so that we could try it in the simulator. Thanks in advance, Pedro.
p.s. I will be in the simulator tomorrow.”

3.6 In his evidence given to the WMSC, Mr. de la Rosa confirmed that Coughlan replied by text message with precise details of Ferrari’s weight distribution.

3.9 Mr. de la Rosa replied on 25 March 2007 13.02 stating the following:
“All the information from Ferrari is very reliable. It comes from Nigel Stepney, their former chief mechanic – I don’t know what post he holds now. He’s the same person who told us in Australia that Kimi was stopping in lap 18. He’s very friendly with Mike Coughlan, our Chief Designer, and he told him that.”

3.12 In the same e-mail exchange of 25 March 2007, Mr. de la Rosa states that tests had been carried out on a flexible rear wing which Mr. de la Rosa says is “a copy of the system we think Ferrari uses”. The Ferrari car’s precise aero balance at 250 kph is also identified.

3.13 Mr de la Rosa’s e-mail to Mr. Alonso on 25 March 2007 at 01.43 identified a gas that Ferrari uses to inflate its tyres to reduce the internal temperature and blistering. The e-mail concludes with a statement (in relation to the gas) that “we’ll have to try it, it’s easy!”.

3.14 Mr Alonso replied at 12.31 that it is “very important” that McLaren test the gas that Ferrari uses in its tyres as “they have something different from the rest”, and “not only this year. there is something else and this may be the key; let’s hope we can test it during this test, and that we can make it a priority!”.

3.15 Mr. de la Rosa replied on 25 March 2007 13.02 stating the following: I agree 100% that we must test the [tyre gas] thing very soon.

3.18 On 12 April 2007 at 12.25 Mr. de la Rosa wrote to Mr. Coughlan and asked “ can you explain me as much as you can, Ferrari’s braking system with the [reference to detailed technical information]? Are they adjusting from inside the cockpit...?”
Having read the report I feel Ferrari had every reason to push for the investigation. I'm actually a little surprised at just how light they got off on this knowing all this newly released information. I'm glad the WMSC released it though as it (hopefully) shows all those Ferrari haters out there that McLaren were justly punished.

I can go on for ages, but I'm tired and the SACO tomorrow morning means early morning, but stay posted for my rant on this debacle if you're interested. :-P

Thursday, September 13, 2007

McLaren Disqualified!!

UPDATE below!

This has yet to be confirmed, but if true may turn out to be an historic moment in the history of Formula One for years to come. This brief report indicates that McLaren have been disqualified from the 2007 and 2008 world championships.

In case you haven't been following the story, McLaren somehow got hold of some of Ferrari's IP earlier this year. This has bloomed into one massive case against McLaren. In July the FIA found them guilty, but they handed out no punishment since there was insufficient evidence that they had used that IP. At the time I was rather shocked that the FIA failed to punish McLaren in any way since this was a serious charge that they were proved guilty for.

Then there was another hearing in Paris today and this is where the unconfirmed reports of McLaren's disqualification are coming from. I am now shocked even more so, since I was in no way expecting such a massive punishment. However, when one sits down and thinks about it for a moment and considers what they did, perhaps it was the only decision the FIA could have made.

This is going to have an enormous impact on F1. McLaren were, until now, holding healthy leads in both the driver's and constructor's championships. Now it seems that while the drivers may well be allowed to migrate to another team, they will be docked all current points. That is, not to mention the negative impact due to the loss of the top team will be to the sport.

I'll be waiting for the official report before I start having my heart attack, but this sure came unexpected to me!

UPDATE: It appears the punishment that has been confirmed is that McLaren will be stripped of their constructors' championship points and fined a record $100m, but that the drivers will keep their points. Read here.

SACO: All Ready To Go!

A group of twelve of us have been preparing the problems for the final round of the South African Computer Olympiad over the past month. We've spent many hours proof-reading the problems and writing over 100 check solutions to make the problems as polished as we possibly can. We are finally ready for to hit the big red button, getting the show underway.

If you're a contestant this year, best of luck to you and I'll see you tomorrow! If you're not, however, you can still compete. I announced our first ever online contest here, but this deserves a reminder. Registration is open and full details can be found here. The problems in the main event are very challenging, so if you're not used to this level of competition I recommend trying the junior contest.

Last I heard the registration numbers are fairly good, although we'd love to see you join in as well. The probability of us repeating this in future years is directly proportional to the numbers and hence its success. If anything, our Monty Python theme (with Python being a key language thanks to Mark Shuttleworth) is alone a reason good enough to participate in the fun!

Tuesday, September 11, 2007

What Happened With Google Code Jam?

When I visited the Google Zurich offices in June, there was a bit of discussion about the Google Code Jam. We were told that since they had so many regional code jams last year, the organisers were exhausted to the point where they decided to take a break this year. Hence the talk was that there would be no code jams this year.

Today, however, I came across a blog post on the official Google blog. This post brings back hope that the Code Jam will return soon. Quite interesting was the following line:

now we're excited to join that community in our own right, by producing a Google Code Jam of our own!
In previous years they've made use of the TopCoder platform and the contest has therefore been very TopCoder-like. Hopefully this means that they will get more involved in running things themselves and therefore moving away from the TopCoder style, which I personally dislike due to the short duration. The second practice problem the post links has a Google theme, which further suggests they will be moving away from TopCoder.

I sure hope that it returns, although I would be far more impressed if they can put together a marathon contest lasting about 24-72 hours. With marathon contests you get to work in a team and rack your brains together for much longer and it can be great fun.

Friday, September 7, 2007

Under vs Oversegmentation

I've started getting my first segmentation results for my honours project. To sum it up in a few words, image segmentation is about breaking an image up into regions. This has many applications and is often the first step in image processing, with the end results heavily relying on the segmentation quality.

The problem is that it's very difficult to define what a good segmentation is. It depends a lot on, amongst other things, the nature of the image. Lighting conditions, noise, texture - these can all have a large impact on the results. A key problem in segmentation is that of splitting up into too few (undersegmentation) or too many regions (oversegmentation). This is easily demonstrated by my first results as shown below.

The first image is the original we're trying to segment. It's the famous Lenna image used throughout image processing as the standard test image. Notice the noise in the background, texture in the hair and hat, smooth texture of the skin and many other features that one aims to handle well in image processing.

These next three images are segmentation results I obtained from my implementation of the Watershed algorithm. The first result comes out of the Watershed algorithm with no improvements to the original algorithm besides some linear filtering to reduce noise. A region is displayed by averaging out the colours in that region and assigning a single colour to the entire region. As you can see there isn't much difference between this and the original. Click on the image for a larger view and you should notice the small regions.

This is an example of severe oversegmentation. It was the major problem with the Watershed algorithm when it was first developed. Since then there have been several improvements, one of which you'll see in my subsequent results.

These next two results make use of a very simple smoothing technique to reduce the oversegmentation problem. Gradients form a key role in the algorithm and here I threshold the gradient to reduce the effect of minor differences. The two results below use different threshold values and you should easily be able to spot the differences.

The first is more ideal, with the second being undersegmented. Look at how a large chunk of the hat is grouped together with the background region. Both, however, oversegment the hair and this is where the problem with textures comes in.

There's still a very long way to go here and this is just the beginning of the results. I haven't even tried running with a different image. My eventual goal is to try produce a single segmentation algorithm to cover a wide variety of images. That's where genetic algorithms will come into play to help with the uncertainty of the image.

I must say it's nice to be able to show visual results that probably explain things better than words can explain.

UPDATE: Applying a median filter to the gradient image produces much better results. See the results in the image below. The textured areas are segmented into far fewer regions. The boundary of the hat is fully in tact. The finer details such as the eyes and mouth have less impact on the segmentation. Also, the number of tiny regions resulting from noise is greatly reduced. This shows how how much of an impact such a small change can make.

Thursday, September 6, 2007

Computer Science Honours at UCT: Part 2

This is part 2 in my review of the CS honours modules at UCT. Read after reading part 1.

Introduction to Image Processing and Computer Vision (IPCV):

I've always had a small interest in image processing, so I might be a bit biased towards this module. IPCV is lectured by Patrick and I think he does an excellent job of it. He covers topics such as image transformations, feature detection and segmentation. This was also the first of many modules in which genetic algorithms were touched on. It requires a moderate amount of mathematical background, especially linear algebra. If you're into your maths in any way I'd strongly recommend it, but if you're not I'd be cautious, but still consider it. Six of the lectures are used as paper reviews in which you read a paper before the lecture and then discuss it in class.

The assignment is all about using the Hough Transform for circle detection. For those doing the module or any other image-related programming I strongly suggest the CImg library as it has a gentle learning curve and is well documented. The assignment is a simplified version of my second year project and I plenty test data available here.

Parallel Computing (PC):

This is another module I might be a bit biased towards due to personal interest in the subject. I really enjoyed it, even though it was perhaps a little lacking in detail. PC is lectured by Michelle and covers parallel architectures and parallel programming. This year there was a big emphasis on parallel genetic algorithms.

The assignment this year (it changes every year) was to program a parallel genetic algorithm without a library. Parallel programming can be tricky, especially to debug. Added together with genetic algorithms, which can be touchy, made it a not-so trivial task.

I would strongly encourage almost anyone to take PC. It's a nice thing to know how to do parallel programming, especially with the ever increasing number of cores going onto PC processors.


I was very excited about taking the Agents module. This was the first time we covered anything related to artificial intelligence and it was lectured by Anet who's research area is agents. It is another one of those modules that has been affected by the introduction of the gaming stream. The Intelligent Systems (IS) module was moved into the gaming stream and we lost the opportunity to take it. So for us, and hopefully the impact will be lessened next year, we had both modules squeezed into one. This resulted in a broad overview of the many AI topics without much depth. Topics covered included neural networks, genetic programming (GP) and several topics related to agents ending off with complex adaptive systems.

The assignment was to program a GP to produce a strategy for predators whose goal it was to capture a single prey. This was one of the more time-consuming assignments, however it was very enjoyable. We had to produce a report on our implementation, which you can read here. The exam is apparently the most difficult of the year and take-home exam. It is often said by ex-honours students and I agree: be scared of open book exams, be very scared of take-home exams!

Genetic Algorithms (GA):

Audrey is one of the newest lecturers in our department and with all senior lecturers required to take an honours module, she started a new one on Genetic Algorithms. I don't want to harp on this too much for her sake, but she wasn't very well prepared and the module ended up having very little content. Most of the lectures were taken by the class, including all the examinable content. Hopefully Audrey will learn from her rough ride this year.

Putting the negatives aside, the module does have a lot of potential. GA's is one of Audrey's main research areas and there's a lot to learn about them. I think some of the GA content covered by other modules needs to be removed in order for this one to become a success. This year we covered the basics of GA's, applications of GA's and GA toolkits.

We each gave a 45 minute lecture in groups of up to three, with each group covering a paper. While it was not for marks, the exam covers a selection of these papers and nothing else. The assignment was to experiment with a genetic algorithm using a GA toolkit and write a report about it. I took advantage of the similarities between this and the Agents assignment and combined them. You can read my report here.

Internet Interoperability (II):

This module is taken by Hussein and that's one of the main reasons I took the module. The other reason is our assignment was all about programming a Facebook application, with the idea being to deal with interoperability issues first hand. I wrote a whole separate post one the assignment here. The module covered several topics around interoperability such as protocols, data/metadata, repositories and web services. It was an interesting module if you're interested in the web at all, but I would give it second thoughts given the choice again.

Intra-Domain Traffic Engineering (ITE):

Of all the modules I took, but not for credit, this was my favourite. Another of our newest lecturers, Antoine, started this as a new module this year. Traffic engineering is all about how to route traffic from source to destination. While this might sound simple at first, just consider what happens when links start failing. There are some fairly complex graph theory problems introduced, such as the K-shortest path problem which tries to get K disjoint shortest paths.

Antoine covers the module at a good pace, allowing for plenty discussion. So many lecturers take their lectures in such a way that almost prevents discussion, which is a real pity when you're in a smallish class. I didn't do the assignments, but there were three of them using NS. The exam is a brief oral exam covering mainly covering the assignments.

Still one more post to come and the module reviews will be done!

Part 3

Tuesday, September 4, 2007

Migrating to Google Apps

I've been considering a move to Google Apps for some time now. This week I finally took the step. Along with many others, I really like the gmail interface for several reasons. I've been using gmail since early 2005.

I registered the domain [redacted], which costs R150 a year, and now our whole family has name@[redacted] addresses. Setup was fairly straight forward, considering that the complexity of editing CNAME and MX records is out of Google's hands. And need I mention Google Apps is a free service!

The one thing I found to be lacking was migration tools. I'm slowly migrating completely from my current gmail address to this new one. They're both essentially gmail and Google are trying to promote Google Apps, so what better thing to do than ease the migration between the two? Once they've come to realise that's crucial in converting users then easing the migration from other mail services would be awesome. They offer partial migration help as mentioned here, however, as the comments state transferring from gmail to apps isn't supported so I haven't explored it that much.

I then came across a wonderful 3rd party gadget, gXFER, that does as much as is probably possible using the gmail API. It migrates mail, labels, filter, contacts and calendars and also applies the filters to migrated mail. Mail migration is done by using the recent POP3 mail download feature, which takes a very long time if your mailbox is full. My mail is busy being transferred and it doesn't appear as though it's going to copy sent mail across, which would be a pity. It also doesn't maintain labels for emails that were manually labeled, which I suppose only Google can implement.

So far I'm happy with Google Apps. There's not much noticeable difference to a normal gmail account, but I feel it's nice having a more personalised email address while still making using of the wondrous free gmail service. I've also confused several people when they received a gtalk invite from a non-gmail address. :P

Monday, September 3, 2007

South African Computer Olympiad Online Contest

In the words of Bruce Merry:

For the first time, we will be running an online version of the South African Computer Olympiad, similar to the way this year's IOI was run as an online contest, and we would like to invite anyone who is interested to take part. The SACO is an IOI-style contest run over two
days. The online contest will run

Saturday 15 September 13:30-18:30 SAST (11:30-16:30 GMT)
Sunday 16 September 10:00-15:00 SAST ( 8:00-13:00 GMT)

More information is available at
We have not yet set up the registration system. I will make another announcement when this is ready, but I wanted to provide advance notice.

In my words:

If you participate in the 2nd round of the SACO (past/present), this is a great opportunity to see how you would have fared in the 3rd round (assuming you haven't progressed of course). If you've done any other programming contest and enjoyed it, if you've even just considered taking part or wanted to, but couldn't for any reason, it's worth a shot.

The online contest is open to everyone, including college students, people already out working in the real world and professors. It's not limited to South Africans, but open to the world. Basically, the only people that cannot compete are those involved in the organisation and those participating in the real contest.

The problems will be identical to those in the real contest. So besides competing off-site and not being eligible for the prizes, it's identical. It would be great to get a good turnout for the first run!

Languages supported are Java, C/C++, Python and Pascal.

UPDATE: Registration is now open. More details here.

Saturday, September 1, 2007

Google Sky

My discovery of a flight simulator hidden in Google Earth has drawn lots of attention. I'm glad that this hasn't gone by unnoticed since I think it's a great new feature and has plenty potential to become a full-blown flight simulator.

Before revealing the flight simulator, however, I briefly touched on Google Sky. I didn't elaborate much since I thought everyone who would read my blog would either have already come across it or wouldn't be too interested in it. And I don't like the idea of posting about something that's had it's fair share in the news. However, it appears that Google Sky hasn't been covered as much as I'd thought as a number of people said they hadn't heard of it. So, I'll take this opportunity to comment on it.

This video covers how to use Sky much better than I'd be able to cover with screenshots, so I'll let you watch it before reading my comments:

To switch to sky mode, click View -> Switch to Sky. You should be taken to a view that looks like that in the next screenshot. As you can see you have a basic view of the sky above the position you were in when in earth mode, which in my case was my home town of Cape Town. The star signs are filled in and labeled so you're not completely lost. In the shot below we have Pisces and Aquarius.

The first thing I rushed to look for was full views of galaxies. I'm used to searching for everything so I tried searching for "Milky Way", but no results. Not looking good! However, a search for "galaxy" returns several results (although I was hoping for more). Below is a shot of Google Sky's view of the Whirlpool Galaxy. While arguably better images can be found with a simple image search, it's useful having all this information in one tool (combined with other great tools may I add!).

There's nothing specific to Sky in the places menu, which while disappointing, I guess they will get to adding to it at a later stage. As an alternative, their are some interesting layers. While I haven't explored them in much detail I have noticed that they provide quick jumps to some interesting sites. Below is a shot of what they label "Massive Black Hole". This is somewhere I think this could prove useful as I'm not sure the average person has seen such images.

With the fun aspect of Google Earth and what could be considered educational views at a stretch (they include some details of the sites, more of which I'm sure will come with time). You can also view the planets rotation around the sun (video has a short scene).

While not stunned by Google Sky, I do find it a nice addition to Google Earth. I'd like to see it when they allow for exploration of the planets as is now done for Earth. It doesn't have to be detailed imagery. Then imagine if they grouped this together with the flight simulator and allowed for space travel within a shuttle! Wouldn't that be amazing? The other side of course is Google Ocean. It's been said many times before that we put more effort into space exploration than the bottom of the ocean.

There's so much scope for Google Earth when you start thinking about it. It's nice to see that Google haven't stopped adding to it after it became popular. I just hope they don't overwhelm us with advertising when they realise they need to start profiting, although they've become so good at that that I'd doubt they'd make the wrong move.