Wednesday, December 19, 2007

Stanford vs Berkeley

About two weeks ago all the NVIDIA interns were invited to watch a game of American football. It was the last game of the season with the two big bay area teams, Stanford and Berkeley, up against one another. Apparently it was virtually impossible to get tickets and we were extremely lucky with someone at NVIDIA having connections otherwise we would have never got tickets.

Apart from the odd glimpse from flipping through the channels I had never really watched American football. So this was my first time and I was rather excited since everyone was calling it a great game. I overestimated the similarities to rugby, but luckily there was a large group of interns with us, some of which were very enthusiastic about the sport and explained the basics to me. I won't go into the details, but it was rather enjoyable. I still prefer rugby, but that doesn't mean I'd never like football. In the end Stanford pimped Berkeley 20-13, with the last quarter being the most exciting as Berkeley tried to claw their way back.

Then this past weekend we spent visiting the two campuses. Stanford is fairly close to Santa Clara so we went there first. It's a massive campus, apparently considered to occupy the largest area at over 8,000 acres. At least I can say that by sticking to the sciences it doesn't appear all that bad as the science buildings are all nearby, although I think a bike would be useful. We biked around the campus and covered a fair amount of the main section of the campus. It was a very beautiful campus with lots of open land and although we didn't get to go inside any of the buildings and therefore couldn't talk to any professors due to it being the weekend, I think I'd have a hard time turning down an offer from them.

They also have their very own Stanford Shopping Center, complete with Macy's and Bloomingdales! The city of Palo Alto which is virtually right next door to the campus is also a wonderful addition to the beauty of the campus itself.

On Sunday we then went a little further out to the University of California, Berkeley. An immediate distinction was that while Stanford was completely flat, Berkeley was situated on a hill. Thankfully it was not nearly as large as walking up and down hills can get very exhausting. So we got to walk around almost the entire main campus, excluding the section way up on the top of the hill which was just a little too far for us to want to climb.

The surrounding area wasn't nearly as impressive as Stanford, although that was kind of expected. There are apparently a number of cheap Asian restaurants, although we only heard about them afterwards.

Overall, the Stanford campus was definitely more impressive, although I certainly wouldn't say no to Berkeley either. Seeing all this that they have here in America makes me so jealous and torn between leaving SA for more of this and enjoying the more natural wonders of SA...

Tuesday, December 18, 2007

Is South Africa Doomed?

If you haven't heard yet, Jacob Zuma has just been elected to run as leader of the ANC in the upcoming South African presidential elections in 2009. That means that for all intense and purposes he will be our third president out of Apartheid.

If you know this man's history of corruption charges that have been filed against him you'll understand why this news is making a lot of us in South Africa rather nervous as to the country's future. Mandela was and still is an inspiration not only to South Africans, but the entire world. Mbeki, while having his low moments, couldn't have been a better replacement for Mandela. Now we have Zuma...Will all that effort over the past 15 years be neglected? I can only say I hope not.

I think I know who I won't be voting for come 2009!

Saturday, December 15, 2007

SACO Online Camp

This is rather (very) late notice, but starting at 11:00 GMT (13:00 SA time) tomorrow (Saturday 15 December) we will be hosting the first of several training camps to select the South African IOI team.

We're continuing on from the SACO and opening it up to the public in the form of an online contest, so you're all welcome to join. We'll be accepting submissions in any of Java, C/C++, Pascal, Python and Haskell. Haskell is an unusual one on the list -- this is the first time we'll be making it available so we'd love to see some FP gurus show us what they got! The contest will consist of three problems and you'll have five hours to solve them, followed by an online discussion via IRC.

Registration and further details is available here:

On a related matter, we recently expanded the size of our training squad from six to twelve. The training has always been limited in the past to the six medallists from the SACO. This year we've invited the top six non-matrics outside the medals. Unfortunately they are not eligible to make the IOI team, but we will be trying to change that for next year. The goal is to catch the good ones at a younger age, which is what the Mathematics Olympiad is already good at doing. It's also another reason why we're opening up these contests to the public.

Saturday, December 1, 2007

Google Africa Forum

Google seems to be reaching out to Africa of late and yesterday was a step in the right direction. Yesterday evening I attended the first of hopefully many Google Africa Forums. I was rather lucky to have moved to the Bay Area just in time for this event, which caught my attention when I first heard of it. I've been involved in discussions with Google earlier this year about making a move in South Africa in particular.

The event was held at the Google HQ in Mountain View. As you can imagine, just visiting the campus excited. Having worked in the Zurich office last year I kept hearing all kinds stories about the campus and so finally getting to see t first hand was amazing. Although I didn't get to see much of it from the inside I can tell you that it sure is massive! 10,000 people working there may sound like a big number, but that campus is huge even for that number of people. We have about 4,000 employees at the NVIDIA campus and the Google campus is more than just triple the size.

I couldn't really take any pictures since it was dark and I'll hopefully get another opportunity to get a real tour of the campus some time soon (my ex-manager is flying here in a few weeks). Here's a picture of one of the signs though, just for some satisfaction:

So, what was this event all about? This was the first time Google were hosting such an event so they didn't have much of an idea of what to expect. They therefore left the topic rather open. All they said in the invitation was:

Come help us understand your perspective on:
  • the needs of engineers from Africa (why did you leave and what may make you go back)
  • the high-tech landscape and user needs in the region
  • how we can best support the region, as Google, and as individuals
One thing that is often underestimated about Africa is its multicultural diversity. Even I can't fully grasp it, but I do know that it is impossible to work with Africa as a unit. That was my primary criticism of this event and how Google deals with Africa in general. South Africa for one is in a very unique situation, although at least that is understood by most. Take South Africa away though and you are still left with a wide range in the levels of technology in Africa. Kenya is the most advanced technologically after South Africa, but the rest I myself am not too aware of where they lie.

At this event there were about 100 or so people from about 20 African countries. Most of them have been working in the Bay Area for many years. Surprisingly I was the only one from South Africa, besides one other South African Google engineer who's also from UCT. There were those from Uganda, Kenya, Zimbabwe, Nigeria, Senegal, Egypt and many more.

They had a panel of eight up front. All of them were from different countries in Africa, besides a professor from UC Berkeley who has lived in Africa for 13 years though. The forum was hosted by someone who knew little about Africa and so he got rather overwhelmed by the enthusiasm at some stages. During the first 90 minutes the panel answered a number of specific questions after which the discussion was opened to the floor.

The panellists started by telling how they were helping trying to improve the situation in their home countries. Each one was taking very different action, yet they were all passionate about helping their country. The one was trying to get more content from Africa on the web, another was helping to introduce systems such as number plate identification to identify stolen cars.

Then they answered the question of why they left. Almost everyone responded by saying that education was the main and sometimes only reason for leaving Africa. The woman on the left even said that as a woman wanting to study Mathematics she was told that Mathematicians make bad housewives, and so she left to study in the US. Several other women agreed with her as they had similar experiences. The matter of education doesn't apply much to South Africa as we have a high quality education system. I would say that only by graduate school does it become beneficial to study elsewhere as our undergraduate programs are sometimes even considered better.

The next question was what would make them go back. This is a difficult question to answer, at least I feel, since often you can only really decide once the change has happened. Some people answered by saying that they simply can't go back since they would end up with a useless job as job allocations are very poor. Others said they would return if they could be guaranteed a decent job -- a similar response, but subtly different. Then came the issue of governments that made it difficult for people to do what they wanted. The best answer in my opinion though was that some people felt they could make a greater impact on their home country from the US. If that is true, then that is excellent!

What about technology in Africa? The answer here varied greatly from country to country. The general feeling, however, was that it is of no use introducing technology into a developing country without educating the people how to use it. There were a couple situations brought up where computers were donated to schools and after a few years it was discovered they were sitting there unused. Many people brought up the topic of Computer Science degrees in which the students never touched a computer. That the degrees are highly theoretical and that, related to the question of why people leave Africa, going to the US they find that they can finally get a practical application of what they studied. Without these practical experiences, however, people cannot develop the technologies in the country.

Finally, the question of what can Google do to help the situation arose. Here again, the answers were drastically different. In countries where the government was a brick wall the situation is very difficult. Many African countries have constant power cuts and those that are better off are seriously lacking Internet connectivity. As bad as the situation is in South Africa, as much as we complain, the other countries in Africa can only dream of what we have. This problem of poor infrastructure needs to be solved before anything can be done about brining technology into the rest of Africa. For those that do have the infrastructure such as Kenya, the people need to be educated. Introducing a bit of new technology is great and all, but teaching the local people how to bring technology to their own country will have a much greater impact. All of these different scenarios Google is capable of helping out. It is only a question of how far they are willing to go with this.

When the discussion was opened to the floor there was an overwhelming number of people that wanted to give their input. There were so many different points of views that I simply cannot remember all of them. A couple people said that perhaps we could learn from the way India has developed, although there were several arguments against that since Africa is facing a different situation. Many people reiterated what had been said by some of the panellists, while some questioned their views. Some people questioned how interested Google really were in Africa, whether this sort of event was just a once off to please some people.

As much as I wanted to have my say, so much of the discussion was about the poorer, less developed countries in Africa and coming from South Africa we face an extremely different situation. We have a good infrastructure, a good education system and a good level of technology in South Africa. However, what we lack is large software companies or anything Computer Science related that we can go to after graduating. There are a few, such as the Amazon office that opened recently in Cape Town, Black Ginger, SKA project and a few more. However, the options are very limited and all the bright people are leaving. Who says I won't be leaving? If a company such as Google were to open an office in South Africa I wouldn't think twice before working there. I love South Africa and would dearly love to continue to live there, but with the current lack of opportunities there's little choice. If you remain behind you get left behind.

This event was definitely very worthwhile. However, it was too short and needed more control over the order of proceedings. They said then and there that they would have more follow-ups. I just hope they stick to their word as this is a great attempt to get Africans to speak up and discuss the problems back home. These people have seen what the US has and so they are in the best position to discuss how things can be improved back home.

Monday, November 26, 2007


Each and every country has something special about it. I've travelled a lot and can tell you that this is very true. As a tourist it can be difficult to judge, but when you move in you notice the differences. This post is about haste in two different regards, something we are lacking in South Africa.

I still remember when our McDonald's opened up in Tygervalley about 12 or so years ago. Since then a number of them have opened up and you can't get away from that honking yellow M. The problem we have though is that our fast food stores are, well, not fast! We took the concept from America and completely screwed it up. What it is that caused this I have no idea, but we just cannot seem to get it right. Even when the place is empty, they take their time. When it's busy you can easily wait 30 minutes or more.

Here in the US, however, they stick to the phrase! As much as I have come to hate McDonald's, I convinced myself to give them a try here. First of all let me say their food is just as plasticy here as they are back home. However, they are fast! In SA the cashier takes your order, you pay her and she gets your meal. Here, they have a separate person fetching the meal. This way people can order much, much faster. Some places even have a separate "queue" to pick up your meal. I put it in quotes cause it's so short it's not really a queue. I haven't timed it, but it seems like you're out of there in under three minutes. As I said earlier, McDonald's here is terrible, but Burger King for a little more serve much better burgers -- it actually tastes close to real meat.

The second thing I'd like to touch on is high-speed Internet. I've already made some people want to kill me each time I mention it, but I thought I'd mention it again. For those readers outside of South Africa, we are one one of the worst countries as Internet connectivity goes.

We're far away from America, Europe and Asia -- all the major hubs. So immediately we get crappy latencies and there's little that can be done to rectify that. By crappy I mean easily 500+ ms latencies to Europe. But it gets worse. Our telecommunications sector is a monopoly -- a single company that calls itself Telkom that is hated by 99% of the people I know that have used their "services". Just have a look here to see how bad the situation is -- in summary, about $100 for 2GB a month at 384kbps.

So you can imagine how wonderful it is for me to come over here in the US and make use of their first world services. At NVIDIA they have a 10gbps line. Compare that to our 19mbps line at UCT for five times as many people. I also got cable from Comcast at my apartment on Friday morning. Advertised at 6mbps, but I tell you that is just the guaranteed minimum as I get about 20-25 on a speed test. Compare that to SA where the advertised speed is a theoretical maximum. Also, the service is excellent. I ordered on Wednesday, Thursday was a holiday and they came on Friday morning. Compare that to SA where it can take a month for them to install it.

These are just two signs of haste in this country. There are many more I've noticed and I'm sure many others will pop up. Some of this has been brought on by the age of the Internet as a lot of what used to be done on paper is now done online.

Sunday, November 25, 2007

San Francisco

Thursday was Thanksgiving. We don't celebrate it at all in South Africa, but over here in the US some say it is celebrated more than Christmas. The day after, yesterday, was Black Friday. It's one of the biggest shopping days in the US and marks the unofficial start of the Christmas season.

So we got both days off work. It's a little awkward having just a three day week to start with and to be frank it's actually annoying too. Three days doesn't get you anywhere and already we have a four day weekend. Almost everyone that celebrates Thanksgiving had plans to go out of town and meet up with family and those that stayed didn't do anything really (there are obviously several non-Americans working at NVIDIA). And since everything, absolutely everything, was closed (which is not the case in South Africa even on Christmas) there was little to do.

Come Friday, however, I zooted on up to San Francisco. It's about a 60-90 minute train so it's well within reach. I did a mostly unplanned trip yesterday just to get accustomed to the city as I will be returning several times. I tell you, the city is big. Big like any other major American city. There's enough stores to satisfy most shopping appetites. I walked into the first electronics store I saw, although it was a little disappointing. Then I took my time at Macys where they have separate buildings for men and women it's so large! Westfield Shopping Center, where they had a five story Bloomingdales as well as many major brand stores. After a few hours my feet starting aching so I went back.

Today I returned with a plan. I looked up info on the major shopping areas and some sights. I also went in with my camera so I have some pretty pictures. The first one is above is the Macys mens building -- yes, it is huge! And it's only the mens building, the females building is even bigger. Macys is part of Union Square (photo below), which is the main shopping square in San Francisco. Tiffany's is the not-so-huge building on the left, but it is full of amazing jewellery. Then there are all those other places -- Gucis, Armani, Levis, you name it.

It doesn't come out as well in the picture (as always), but if you look at this next one you'll see the rather steep road which is right in the middle of the city. It's a rathe runusual feature for such a major city but it is only right in the center. Go a couple avenues either way and there is no hill.

Chinatown! There are so many Chinese living in the US that they give them their own personal space. They had one of these in New York as well -- I think they're in most major cities. This one is a decent size actually. It's full of Chinese stores selling very traditional Chinese stuff. It's mostly Chinese shopping there so one looks a little out of place if you're not Chinese like me. It's interesting seeing what they sell though. Most of the stuff is really cheap -- I have a photo of a special of 5 t-shirts for $10.99!

Alcatraz is an island that at one stage served as a military prison. It has lots of history (read here) and is now an historic site and a major tourist attraction. They have ferries taking visitors to the island. I didn't actually go to the island, although I might at some point, but below is a photo of it from the coast.

I would hope that most readers will have heard of the Golden Gate Bridge. Well, I saw it today from a bit of a distance as you can see below. I will be sure to get much closer, if not on the bridge itself. It's the eighth longest bridge in the world and was the longest when it was completed in 1937. Pretty impressive!

And to finish off, a couple of night shots of part of the San Francisco skyline. I've always loved seeing cities of this size in the dark with all the lights.

I've posted all the photos I've taken so far (including the ones in this blog) over here:

I will be adding to that collection as time goes by so be sure to check it every so often if you're interested.

Tomorrow is the last day of this insane four day weekend. I'll stick to Santa Clara, unless anything else comes up. Try suss out the some new shopping areas here as well as get some small things done.

Friday, November 23, 2007

Back to Windows

There's a group of five other South Africans on the Direct3D team at NVIDIA. Bruce, Carl, Chris, Ashley and Nick have all interned in the team. So it was a kind of obvious choice to make when I had to decide which team to join.

The only thing that made me hesitate was a rather big factor. Direct3D is for Windows. That means development is also done on Windows. Those of you that know me well enough will understand just how anti-Windows I have become of late. I only switched to Linux for good little over two years ago, but since then I have only used Windows when absolutely forced to. For browsing the web I'm ok with it, so even though our honours labs used Windows I still used them when I had to. For anything else though, I used my own laptop.

Bruce, Carl and Chris are also Linux gurus so I took their advice when they said it was worth going Direct3D. If they managed, surely I would be ok. Well, I can't say I'm heading back to Windows as my OS of choice. No, certainly not. If anything my three days on XP have made me even less wanting to use it.

Thank goodness Firefox and Pidgin run on Windows. At least two applications I heavily use on Linux. What would I do without Cygwin? At least I have my Vim, Wget and all those other wonders. It isn't a Linux terminal, but it does knock some sense into Windows.

Some things that I've hit again that made me switch. No virtual desktops. While I've tried a few applications that provide this it simply doesn't work the same. I haven't found one that provdes a fast method of moving a window between desktops. Having so many applications open clutters the screen very easily and the lack of organisation is terrible. Luckily I have a good 1600x1200 monitor, which provides some compensation. Then there's the space bug. Ever put something in "C:\Documents and Settings\..." and had major issues? Yes, some applications can't handle the spaces in a path. Why then does such a major directory have spaces? Why? And the last one for now, XPs multitasking is hopeless. When one application hangs it takes the whole PC along with it. At least my dual core saves me there most of the time. One very last one -- those "Send error report" dialogs...I hate them with a passion!

Thankfully I have been able to stay away from Vista for now. Although speaking to Ilan yesterday it seems that might not be the case for very long. I'll manage, but I still far prefer Linux. At least I have my laptop to return to so I still get my dose of Linux.

Thursday, November 22, 2007

Greenpoint Apartments

As promised, some pictures of my apartment. It seems as though nearly every intern at NVIDIA is staying here! I'm renting a two bedroom apartment for $1550, although the rate varies slighty depending on number of free apartments.

First thing you do when you arrive is to go to the leasing office. That's this small building right here:

This is the road it's on, Warburton Avenue, with the apartments to the right. It's a quiet road with not many cars driving by since there's a major avenue just one down.

They have a tennis court and a pool. The tennis court isn't used that much so it's not that difficult to get some time on it. The pool is rather useless now with winter pretty much upon us already.

This is what one of the apartment blocks look like from the outside. They're pretty much all the same design. My apartment is the one with the balcony on the second floor in this picture.

This is what the lounge/dining room area looks like. It's a fair size and some interns get a third person sleep here. None of the furniture comes with the apartment -- I got it all from Chris.

This is the kitchen. Everything but the microwave comes with the apartment. Yes, that is a dishwasher on the right -- lazy Americans!

This is my bedroom. Once again, the matress is from Chris. Although he failed to tell me that there was no linen, so I was a tad cold the first night. The other bedroom is identical -- Migael will be joining me in 10 days and will take up that room. Nick will probably be joining us some time in January and take the lounge.

And finally, the bathroom. There's one to share in this apartment.

So as you can see it's decent for the price you pay, bearing in mind that rent in the US is far more than in SA. It's 1.4 miles from NVIDIA. I've been walking there this week, which takes about 20-30 minutes. Yesterday I got Chris' bike so the time should be reduced to about 5-10 minutes.

Monday, November 19, 2007

Orientation at NVIDIA

I am officially an NVIDIAan!! Yes, first day at the new office went well. Now I know what it feels like to work on a huge campus. Although not as big as Googleplex its size is rather impressive.

Can't tell you much more unfortunately. They ask us not to blog about anything, be it good or bad. I can understand where they coming from, but it is a little dissapointing. Things went well though and I'm looking forward to the next three months with the company.

I must say I'm impressed with the number of South Africans on the Direct3D team, which is the one I'm working on. Whoever it was that acted as the magnet has done a really good job.

Now to sort out that bank account, cell phone, Internet and everything else! The not-so-nice part of moving to a new country.

Sunday, November 18, 2007

Santa Clara, CA

35 hours after leaving home in Cape Town I arrived at Greenpoint Apartments in Santa Clara, the place where I will be staying for the next three months.

This was my first time flying Lufthansa. I was immediately put off by the lack of personal TVs for the on-board entertainment. We ended up having a measly two movies shown and they were both shown in the second half of both flights, when I was hoping to get in some sleep. Nevertheless, they were the first airline I've been on that hasn't been stingy with drinks. They go around several times and are easy about people asking for drinks at any time.

Thankfully I had only one stop-over, although it was at my least favourite airport. Frankfurt's airport has the worst signage of any airport I have been to and the shopping is terrible -- at least in terminal 1 which I was in. At least they had a small number of these wonderful reclined chairs (simple ones with no mechanical parts) and I was lucky to find a single free one, which helped ease the 4 hour wait for the next plane. During the second flight (both were about 11-12 hours each) I had a nice New Zealand couple sitting next to me and they were very chatty.

The immigration process went fairly quickly, which I found surprising due to the large size of San Francisco airport. This is my third time in the US -- for my first flight to New York the immigration queue was very long and we had to wait over an hour. There was a 10 minute and an hour long train I had to catch. The second one runs hourly, so I was lucky to arrive at the platform not so long before the train arrived. I ended up getting to the apartment just before 16:00.

Checking in required a fair amount of paper work -- something I have gotten unfortunately used to over the past two weeks! When I eventually got through all that I finally got to see my apartment. I'll post pictures shortly, but in brief it's reasonable and has everything I need from it. By coincidence or what I do not know, a friend Chris de Kadt who was doing a six month internship finished up just last week. So he passed on all his furniture, his bike and some other stuff.

I had to go out and buy a few things for the apartment. I only went out and bought the essentials and I'll get the rest of the stuff later when I know where the places are and have more time. I skipped supper as I wasn't all that hungry.

So, tomorrow I start my second real job. Will Nvidia meet, will it pass the coolness of Google? I'll soon find out!

Thursday, November 15, 2007

nc8430 Integrated Mic on Ubuntu

I have had an HP Compaq nc8430 laptop for almost exactly a year now. There are two components I have struggled to get working. The fingerprint reader (Authentec AES2501) is rather pointless so I haven't bothered much. However, the integrated microphone can be useful at times. Since I'm heading over to the states and Skype is always useful, I gave it another bash.

Linux has always been poor with unusual hardware and a mic falls under that category. I have tried many things to get it working. There are many different solutions that people have posted. I went through many of them. Strangely enough though, there wasn't much help for this laptop.

The solution that finally worked for me was simply to build the latest version of ALSA. I am not sure what the default version is with Gutsy, but upgrading to version 1.0.15 solved my problems. It also required manually configuring the sound card model in the ALSA configuration, however, that alone did not solve the problem. For something so simple really I can't understand why this does not work by default. I hope they can solve this for Hardy.

A good HOWTO on the steps required:

So now I will be enjoying the use of free calls from the states with Skype. While I'm at it, let me take this moment to mention the true high-speed 6mbps Internet connection I am planning on getting up there. While it doesn't quite match the gbit lines we had in Croatia, I'll take this over our crappy 512K capped at 3GB lines any day! I love this:

And now with PowerBoost™, our fast connection gets even faster, with an extra burst of speed up to 12 Mbps when you’re downloading large files like videos and games.

The Honours Year

Today I completed my honours degree. Four years at UCT, completed! Provided nothing goes ridiculously pear shaped I will be awarded my second degree next month.

It's a strange feeling, partly due to the uncertainty over what I will be doing next year. I have applied to study further in the U.S., however, I will only find out if I'm accepted some time in March. If I get accepted into one of the places I have applied to I will be starting a MSc/PhD there in September. If I get rejected (oh no!), however, my plans are to start an MSc at UCT and then push hard to get into a PhD overseas. Even if I do get accepted what I'm doing between February and September isn't finalised, although I do have some potential plans. So I might return to UCT for some time, I might not return at all!

Honours has been the first real year of studying in my opinion. Computer Science undergrad is way too easy, especially when you enter it already having a good background in programming. This has been the first year we have really gotten to know the lecturers. It is the first year we have had our own personal lab. It is the first year we have had the choice of modules It is the first year we had a major project. All these things add up to a most enjoyable year. Most importantly though is the size of the class. With only 37 of us, all having made it through undergrad and remained, this has been the first year I have really gotten to know the entire class. Knowing that most of the class will not be returning next year and that some of them I will never see again makes it a rather sad time.

It has been an exciting time. I truly believe that the honours year is worth more than the three years of undergrad combined. I would strongly recommend it to anyone wondering whether they should continue after graduating with their BSc. An honours is what distinguishes you from the masses.

So that is it. It is over. No more. Done.

Next up -- Nvidia! I finally had my appointment at the US Embassy yesterday and received my H-3 visa this afternoon. I have my flights booked -- 29 hours each way! I have sorted out accommodation at Greenpoint Apartments. Chris de Kadt has just finished his own internship there this week and so he has offered me his furniture and other stuff which has helped a lot! Apparently they pass on furniture between interns there. So I am all ready to leave on Saturday evening and start working Monday morning!

Sorry Janis, but I have to share what you said me as it was classic! This is what she (management person at Greenpoint) sent me this morning:

I had to call my husband who was in the marines to find out what the heck 16:00-17:00 was. Welcome to California we deal in the "o'clock version".

Honours is Over!

Today has been a day to remember. A wonderful year has ended today. Yes, today was the final day of my honours degree. It is over!! Some will consider it a happy moment, but I consider it a sad one.

Lots to do though. Going for pancakes for my farewell since I leave on Saturday. More about this later!

Friday, November 9, 2007

US Visas

I have done something immensely stupid. I found this out last night from Carl. Yes, I underestimated the time required to apply for a US visa.

Nvidia got some attorneys to put together the application for my visa. The process started all the way back in July when they first contacted me and I finally received a thick wad of documents on the 25th October. The cover letter stated:

You will be required to present the enclosed original approval notice at a U.S. Consulate in order to apply for a visa stamp to enter the U.S. in H-3 status. Please be advised that you will only be able to apply for the H-3 visa stamp up to 10 days prior to the validity date as indicated on the enclosed approval notice.
So I wait until 10 days before, which happens to be today. Bad idea! Turns out I was supposed to book an appointment for 10 days before and that an appointment has to be booked at least two weeks in advance. So I anxiously call the US embassy this morning, which by the way entails purchasing credit from Pick 'n Pay first, and they inform me that the first opening is on 28 November. Yikes! But I'm leaving on the 17th! Double yikes!

Fortunately they allow for emergency applications under special conditions. That required me to send a lengthy email to the embassy explaining why, when, how and more. I was just a tad nervous while doing this as thoughts went through my mind about what would happen if I didn't get accepted for an emergency application. My flights are booked, my start date set and everything. Would have been a nightmare!

About an hour ago I get this wonderful email:
Your request for an emergency visa appointment has been approved for the 14th of November at 8am at the Cape Town Consulate General. Please print this email and bring it with you to your appointment. Please adhere to the requirements for the visa application process listed in the attached file.
What's more, the "attached file" outlines what to bring better than any other page on the embassy's website. To read it click here.

Gmail Updates

I was busy adding a comment to Tim's post on the latest Gmail updates, however, it started getting lengthy so I decided to swipe it as a dedicated post and add more ramble while I'm at it.

If you haven't heard about it, Gmail has recently gone some updates which may at first be unnoticeable to the average user, but when you delve deeper are actually pretty major. Definitely the most visually noticeable update is the completely redesigned contacts manager (screenshot below). Tim was one of the first to receive the updates (Google love doing gradually pushing out their Gmail updates).

It seems there was a big push on Wednesday as most people I know got the updates. Unfortunately my Google Apps account has not been updated, so I'm not fully experiencing it yet although I have fiddled with it on my old Gmail account. I haven't heard any news about what's happening with Google Apps as we usually get updates at randomly different times.

If you pay close attention you can see (even without viewing the source) that this is a major overhaul of the core of Gmail. Notice how the URL is dependant on the page you are viewing, unlike the old version where every page was "". This allows for the back/forward buttons to work as well as bookmarking of pages, which I can only imagine was quite a feat considering the use of AJAX. Also, notice how the list of emails is displayed as the page loads as opposed to the old version where you had to wait for the full page to load. The pre-fetching of mail is also a dream, especially for us in South Africa with terrible latencies. All we need now is the faster rendering in Firefox 3 and Gmail will become superb.

One thing I'm confused by is why they chose to redesign the "More actions..." drop-down list. It almost looks out of place now. The same is evident in the contacts manager (see above) where the form elements are all of a design unique to Gmail. What about the latest push in Firefox 3 to use native form elements? The new style mixed amongst the native style could look rather odd using certain native styles.

To finish up, let me just add something that I've known for quite some time, but that a friend asked me to mention due to him only recently discovering this. When you register a username with Gmail a typical choice is ., e.g. joe.bloggs. So you tell everyone your email address is However, if someone sends to (without the .) you will also receive the email. This holds true for any number of .'s added or removed as Gmail strips all .'s before sending it off. So I could send an email to and Joe Bloggs will still receive it. Additionally, anything after a + is also ignored, including the the + itself. This is useful for automatic filtering -- you sign-up to the ABC mailing list with the address and you can easily create a filter based on the to: address.

In closing, a question. Are these updates the new version Garett Rogers was referring to in this post? Or was this a dupe by Google to kill the rumours? I certainly find it odd that the translation phase that started the rumour was "Newer Version" and that they chose to add the option to switch between the new and old version. Although they are thorough changes and they may have offered this in the event of the new version being buggy, although I would have thought they would rather offer this for more visual changes that some people might not prefer.

Tuesday, November 6, 2007

UCT Deputy Registrar's Dark Past Uncovered

A little over than two months ago, Dr Paul Ngobeni was appointed deputy registrar at UCT. Now usually I'd be completely disinterested with changes in UCT staff, let alone the legal positions. However, two weeks ago news that he had been previously suspended from practising law in the US 18 months ago was revealed.

Two weeks ago this article was published, which appears to be what broke the news to the public. The whole thing goes back to December 2005 when he was indefinitely suspended from the practice of law in Connecticut after he failed to appear for a presentment hearing. The list of offences goes on and on and are outlined in that article in greater detail.

It was this article that got me to post about this though. He apparently claimed that the whole thing was a "smear campaign by some whites," because "news of his difficulties emerged only after he jumped to the defence of embattled Cape Judge President John Hlophe." The article where he defends Hlophe can be read here. Notice that that article was published on October 17 and that the article revealing his suspension was published on October 23. So it's not impossible that this had some impact.

Lets take a step back for a moment. How was it that UCT employed Ngobeni before doing a thorough background check? Any reasonable check should have resulted in at least some of this background of his being discovered. When will be the day when one at least does a simple two minute Google search? If you haven't clicked on that link I suggest you do. The rankings may well have changed over the past couple weeks, however, I can guarantee you that this one was right on top. That was in fact the very page that was the first lead that resulted in the search for more information on Ngobeni.

How do I know this? That would be due to me knowing the people that dug up Ngobeni's past -- Ben Steenhuisen and
Laing Lourens. The thing that I wanted to point out, however, is that it was identified before Ngobeni's article on Hlophe on October 17. This flat-out nullifies Ngobeni's pathetic decision to stand behind such a weak attack that, even if it was true that it spurred the interest to search for incriminating evidence then so what? Once you've voiced such a strong opinion then you're only attracting attention that will always result in at least some people wanting to find out more about you!

And then there is this:

Ngobeni said he did not have to inform UCT of the charges and convictions before his appointment, as it was public knowledge, and had been published on the internet.
No, seriously man? That's all I can take of this.


Saturday, November 3, 2007

Non-Turing Computers are the New Non-Euclidean Geometries

Did the title confuse the hell out of you? Well then good, keep on reading.

The first International Conference on Infinity in Logic & Computation started today at UCT. Being on campus and with a recent interest in the theoretical side of Computer Science (I took two courses this year) I decided it would be worth attending. I won't lie, a lot of the talks went way over me as they were deeply theoretical. A lot of the talks today were on automata and infinite games -- something I have little background in. They were interesting nonetheless.

Tomorrows talks should be more what I'm into though with the computability and complexity talks. Although titles can be somewhat misleading if you're not rather clued up on the topic. This holds for the title of this post, which only starts to make sense after a little thinking.

Two of today's speakers didn't pitch and they both happened to be in the last session, leaving extra time for the last speaker. And boy did he need it! He starts off by presenting himself as a philosopher of physics. Now is a good a time as any to inform you that the title of this post was the title of has talk. So what does it mean? Well, this is non-Euclidean geometry. The important part is that it's not the standard geometry that we're all used to, but it works. Turing machines are computing devices that can solve any problem any other computer can solve (I shall ignore black holes in this post). So non-Turing computers refers to non-standard computing devices.

So what does all that mean? Here's the abstract of his talk:

It is argued that recent work on non-Turing computability suggests a picture of computability analogous to that of modern geometry, and that in this picture there is no fundamental (absolute) boundary between the computable and the uncomputable. If correct, a conjecture about this fictional boundary's precise location would merely reflect a misunderstanding. The Church-Turing thesis is just such a conjecture.
After his introduction he went onto define SAD computers. It uses some whacked spacetime theories or something (I'm no Physicist!). You take a different spacetime path to the modified Turning machine such that even if the Turing machine takes a billion years to compute an answer, you can take just a second to reach the point in spacetime where it finishes the computation. This is then extended to the idea of infinite computation to solve problems that are uncomputable on an ordinary Turing machine.

As a Computer Scientist that works on mostly practical problems this really pushed the boundaries of what I thought people studied on the theoretical side of things. I guess it gets far worse, but half of us seriously stared at the speaker with pale faces. With a little thought I can see why people study such topics, but it came as a bit of a shock to me when he first started.

To finish up, an interesting paradox he mentioned right at the end of his talk. You have a box. At time 0 you put ten balls numbered 1-10 into the box and then immediately remove the ball numbered 1. At time (1/2)t you add to the box balls numbered 11-20 and at the same time remove the ball numbered 2. At time (3/4)t add 21-30 and remove 3. At time (7/8)t add 31-40 and remove 4. And so on, and so on... How many balls in the box at time t?

Friday, November 2, 2007

GB vs GiB

Did you purchase a Seagate HDD between 22 March 2001 and 26 September 2007? Did you purchase it in America? Did you purchase it separately, i.e. not bundled with a PC? If you answer "yes" to all of the above then you are eligible to "free backup and recovery software, or a cash payment equivalent to five percent of the net amount you paid for the hard drive."

If you are as lost and confused as to why, that's understandable. Read this article and that should clear things up for you. Basically it boils down to the following:

Cho alleged that Seagate's use of the decimal definition of the storage capacity term "gigabyte" (GB) whereby 1GB equals 1 billion bytes, was misleading to consumers because computer operating systems instead report hard drive capacity using a binary definition of GB, whereby 1GB equals 1, 073, 741, 824 bytes -- a difference of approximately 7% from Seagate's figures.
The first thing to do is head over to the definition of the SI units. The definition of a GB (or KB, MB or whatever!) has always had it's split between what the SI units call a GB and GiB (take note of the i). According to the SI units, a GB, which is what HDD manufacturers use when stating HDD specs, is 109 bytes and not 230 bytes as Cho claims.

Cho claims, however, that operating systems define a GB as 230 bytes. While true, why aren't Microsoft, Apple and other OS companies being sued? Aren't they the ones that have gone against the standard? Most storage mediums are in fact sold by the GB so it should be a lot easier for the OS to budge.

Taking a step back, the GB vs GiB divide dates back many, many years. It's been going on for so long, that really anyone that would notice the difference should be technically minded enough to know about what uses what measurement. There's an easy fix though -- all things using a 109 byte GB should use the GiB unit instead. The standard is out there, it just needs to be properly adopted. There is, however, one reason for HDD manufacturers to budge -- RAM will always be measured in GiB due to its construction, whereas HDDs are not restricted in any way.

On the other side of things, why are there so many restrictions on who can claim? I can understand why this only applies to purchases in America since this case was in American court. However, why does this only apply to HDDs purchased separately? Does this mean we're going to see a spurt of new allegations coming from those purchasing PCs with built-in HDDs? What will happen to DVD/HD DVD/Bluray manufacturers who also use a GB of 109 bytes?

And yes, I have made a purchase that meets the restrictions. And no, I will not be going through the mission of getting what will amount to some measly $10 or something pathetic.

Wednesday, October 31, 2007

England vs SA: Classic Front Page!

The rugby world cup final is history now, but I found a copy of the front page of The Independent from the morning of that match. It's just classic! Makes you wonder why we put so much pressure to apply racial quotas to our sports.

Yes, England has it's fair share of many of the things we, and more importantly the rest of the world, make such a fuss about. I find this article so great coming from the English themselves! I don't think there's much more I can add -- it's all in that article.

Monday, October 29, 2007

Google Maps Improves

Boy, I hate seeing everyone else getting these wonderful new toys to play with while we in South Africa have to sit back and be patient. Google, just open that SA office already so we can get to experience more of your wonderful products once and for all!

I doubt very many people heard of Google Transit, but that's because it was in Labs. This month all that changes as Transit has graduated! It's now fully incorporated into Google Maps. So, what does it do? In the past, when querying directions on Maps you got driving (or swimming!) directions such as these. If you go to that page you'll notice a new option to "Take Public Transit". Click and it and you should get this view as shown below.

If you view the full page you will see that it gives you step-by-step directions, providing departure and arrival times as well as alternate routes. It even gives you the fare of the journey and compares it to the estimated driving cost to compare to.

Coverage is still very limited, but remember this is still a new product and requires a lot of data. I see though that Google have made available a Google Transit Feed Specification. Now I know Google are known for their open APIs as well as getting others to do their work for them, but I find this amazing and would be excellent if it works! They're basically telling agencies that run public transportation that if they want their schedules included into the Transit system, then they have to transform their data into the format specified by Google. You gotta love these guys for their courage!

One thing they could really improve on is their walking directions. Currently they just plonk straight lines, however, this could result in a longer route if the walking line goes across a river, for example. They even mention this in one of their help answers, so they might end up adding this eventually. I imagine that most maps data defines pedestrian roads, so I don't foresee it being too difficult to add.

I love how they fail to update their FAQ! Just look at the following answer from here:

6. Why isn't this product a part of Google Maps?

Google Transit Trip Planner is currently a Google Labs product. We haven't integrated it with Google Maps because we wanted to develop the product further by learning, through user feedback, how people really use public transportation data, and thus how Google Transit can be improved to be as useful as possible.

Saturday, October 27, 2007

Computer Science Honours at UCT: Part 3

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

Distributed Computing (DC):

There's confusion over the name of this module. It is often referred to as Distributed Components -- the notes say Components, but the official name is Computing. It's lectured by Ken and well, yes, it's not the most thrilling lectures you will attend. I just attended lectures, but never took it for credits so I skipped the assignment and exam. There is so much theory that is covered in this module. It's all thrown at you in huge chunks and it's not easy to consume. Most of the class take DC, but I'd be hesitant to recommend it. It's too much of this RPC stuff such as Corba and DCOM and then stuff on COM+, .Net and EJBs.

The assignment was on EJBs and I remember everyone scrambling to figure out how to get JBoss and EJBs to work! For those of you doing it next year, Sean posted some HOWTOs which seemed to be very useful. Ken, as in the past, kept pushing the deadline back and the demos were only done last month (for a first quarter module)!! Now this may sound cool, but it's not when you consider that it ends up interfering with the other assignments. Last year he never marked it -- everyone who handed in got 100%. The exam was apparently rather hand-wavy. So, up to you, but I don't recommend taking it.

Interaction Design (ID):

What is CS at UCT without lectures by Gary? He's simply the best at lecturing in the department, no doubt about it. I would usually be completely deterred from an HCI course as I find it mostly fud, but I could never miss a Gary lecture. He goes into all sorts of things to consider when designing an interface and shows cool video clips that keep you interested and add to the lectures.

This is another course I only took the lectures for and nothing else, and I think it was a good decision. Most of the class take this module, but unless you're good with design (and I'm not!) the assignment and exam are finicky. The assignment was about building a paper prototype for an RFID tag reader for a cell phone. You then had to implement a prototype that just simulated the interface without requiring functionality and write a report on it. The exam was apparently fairly decent and it's usually based on case studies, which means lots of writing.

Effective Virtual Environments (EVE):

EVE was an interesting module and I'm disappointed I had to drop it after two weeks. All the really good modules were run concurrently, which was a pity. EVE lectures are more like discussions on beliefs than lecturers -- the content covered is very much dependent on what the class finds interesting. It's taken by Edwin, who actually does a good job of the course. I was very surprised at the low numbers that took this module as I'd recommend it above other modules such as DC and NIS.

The course changes drastically year-on-year. Edwin tries to remove the need for an exam by pumping up the practical workload, although if the class prefers an exam he is willing to sway. This year there was one big assignment split into three and a essay on some papers. The assignment was about using Erlicht, a 3D games engine, to design a putt-putt course. The first part was a design document, which was fairly lengthy. Then you had to code it up using Erlicht and you were marked based on how closely your end product tied in with your design document. The final part was to test a hypothesis such as "Do textures increase presence?" You're told to get six test subjects, although you will never get a significant result with such a small number, so please get more people next year. It's not that difficult!

Databases (DB):

DB is lectured by Sonia and it is the only module for which I never attended a single lecture. That should sum up my interest in databases at such a level. The content is rather boring, although it's easy marks, mostly covering object relational databases such as Oracle. The class is usually fairly large, although I can't stand taking a module just for easy marks. Half the lectures were paper reviews presented in groups for marks. The exam is fairly easy apparently.

Can't say much more here, best speak to someone who did the module.

Computability and Complexity (CC):

Computer Science courses are very practical in nature, that's not going to change. However, I feel that it's necessary to break away a little. That's where the Mathematics of Computer Science modules come in. They're highly theoretical and have little practical application. You need a strong Mathematics background to get through these modules as not only is the content pretty tough, the pace is insane. Ever had a Maths lecture with slides? With CC, every lecture is based on slides - even the nasty proofs!

The module is lectured by Vasco Brattka, the best Maths lecturer I have ever had! He has a list of the course contents available here. He also has the course slides and tutorials there, but they are password protected. If you're considering the module then I can give you the password, although I'll have to do so privately. All the Maths modules are four credits, so they cover a lot of work. You get one period a week dedicated to discussing the tutorial questions before you have to attempt them. They can be tricky, although the help in lectures is decent.

The class is mixed with Computer Scientists and Mathematics honours students. This year only three of us CS students took the Maths modules along with two Maths students. The computability stuff can be scary for a Computer Scientists, especially when the Maths guys catch on fairly well. The module is packed with proofs, including some that were open standing problems for decades. The proofs in the complexity section are more algorithmic and so it switches around to the CS students understanding better. The module culminates in showing why the P-NP problem is so hard and that under certain assumptions is provable to be unprovable either way!

The exam is slightly easier than the tutorials, although it is closed book and therefore rather challenging. However, if your Maths background is strong it's not so bad. I would definitely recommend the module to anyone that majored in Maths. Since it's a four credit course it gives you more choice with what CS modules to pick from and lets you get away without doing the crappy assignments. I still attended many of the lectures for the other CS modules, although it's nice having the comfort of dropping out of the ugly ones.

Cryptography and Complexity (Crypto):

Vasco used to offer a Quantum Computing (QC) module, which expanded on the work from CC. However, he went on sabbatical for the second half of this year and so it was replaced by a new course. If QC returns next year, and it most likely will, it might replace this course. Although I never got to do QC, I've heard from previous years that it is very good and if CC is anything to go by I can believe it.

The new Crypto module was split in two parts covered by different lecturers. Christine Swart took the first half, covering topics on public key cryptography. There's a lot of number theory involved, so don't expect it to be like a CS module. It's fairly practical compared to the rest of the CS of Maths modules. You learn all about factorising very large numbers efficiently and showing that cracking the RSA algorithm is equivalent to factorising such numbers. The Diffie-Hellman key exchange is also covered and it's shown that cracking it is equivalent to the discrete logarithm problem.

Holger Spakowski takes the second half, covering topics related to complexity of cryptography. This section goes back to where Vasco left off in CC. It's all about probabilistic algorithms that can be proved to produce the correct answer with a given probability. From this the concept of probabilistic Turing machines are developed and this leads into a whole new area of complexity classes. This then leads into proving various classes equivalent to one another and a number of inclusion relations. It gets highly theoretical, although it's a great module for those interested in Mathematics and Statistics.

Christine was very bad with the tutorials and we only had one that was marked in the end. Holger gave us three, which were fairly challenging as a Computer Scientist. The exam is next month and since it's a new course I can't comment on it. Overall I would recommend the course. The cryptography section should appeal to a larger number of CS students than CC. The major problem with this course is that the second half continues into the project time. So while the rest of the CS class is enjoying no lectures to work on their projects you have to worry about tutorial hand-ins and so on.


So I've summarised my experiences of the honours modules and given my comments for you. Make sure you've also read
part 1 and part 2. Remember that this is just my thoughts on the modules and that I have very different interests to many people. If you're going into honours I expect you to take what I said with some common sense.

Take a look at the Graduate Handbook, especially the section on the modules as they provide module descriptions. Bear in mind that the modules on offer are likely to change next year, so don't go out of your way to settle on a selection. If you want to decide early try find out from Anet who will be the honours course convener next year and ask that person what the module list is looking like. You may also find that looking through my exam archive might help ease the decision.

Something that no-one mentioned to us last year and that I found critical was that your choice depends largely on the timetable. You can get our timetable here (with ITE added in at the same time as Agents, GA and II). As you'll see, many of the content-heavy courses such as DC, DB and ID are all grouped together at the same time, which makes it difficult to skip them all. I think the basic timetable remains the same each year, but make sure by asking the course convener.

The way I personally tackled the decision was just to attend all the lectures. For each module I attended at least a quarter of the lectures and by that time we usually got through enough to understand what the assignment involved. If the assignment looked icky, I dropped the course, otherwise I continued with it. It might sound like a lot of extra effort, but you're there for some lectures so you might as well just check the other maybes out. I found it worked really well as I got to choose given first hand experience of what the lectures were like. After four lecturers you generally get a gut feeling. You just have to make a rough selection at the beginning of the year, which can easily be changed any time by notifying your course convener.

So that's that! If anyone wants to chat further, I'm only around until mid-November. I'd be happy to have to discuss it though as it's a crucial decision. Very little word goes around about what the modules are like since most people ask so late. I might add another post on the honours project, but I need to know who would be interested? If you want to hear my thoughts on the project or anything else please let me know.


So, next month I head on over to Santa Clara to work for the big green machine. I'm there for three months for an internship. I start on 19 November and work there through their winter until 15 February when I'll hopefully be sad to leave.

There have been so many of us going there from UCT over the past few years, ever since Shaun Nirenstein started out there. Bruce, Carl, Nick, Chris, Ashley...and plenty others have all had their stint. From what they've told me it's a lot of fun, although I'll soon be able to compare to my experiences at Google. It's only nine miles to Google HQ in Mountain View, so I'll finally get a chance to check them out.

I've started my search for accommodation and the likes a tad late, as usual. So I'm without a roommate at the moment. I might have to settle for the exorbitant rates of a single room apartment if I don't find someone soon, so take this as a call for help if you know anyone out there. ;-)

Friday, October 26, 2007

South African ACM ICPC Regionals 2007

This past Saturday was an amazing day for more reasons than one. Not only did the Bokke claim their second set of hands on the William Webb Ellis trophy, but UCT simply extended their domination of the South African ACM ICPC regional contest.

For many of us coaches it was our last year running the contest and so we wanted to leave with a bang. So we went in search of some sponsors that would help us do something special, something we couldn't achieve on our own. That sponsor quickly turned out to be the one and only Google! Our intention was to use their involvement in the contest to make the single improvement that has the greatest impact - more contestants!

Last year we had ten teams participate from UCT. There was an obvious split between a few teams that were very successful and the rest that were in it just for the fun. This year we wanted to get more top teams, while filling in that middle gap. The gathering of contestants turned out to be very successful, with Google proving to be a crucial factor. We started reaching numbers such that we started becoming concerned that we would have insufficient space in the competition lab. After some discussion between us we settled on cutting the numbers at 22, with 5 teams from each of Stellenbosch and UWC.

For the past three years, we had been running training for the teams. For these three years we were fine tuning the training every year, making changes from the experiences from the previous year. However, there was a wide diversity of teams attending the training. The strongest teams would typically get together for their own training, while the teams that had lots of potential, but lack of enthusiasm, would just pitch up for the contest without practice.

This year we made some serious changes to the structure of our training. First of all, as silly as it may sound, providing free pizza during the training has a huge impact on turnout. Thanks to our success in swiping all the R325,000 prize money from the Standard Bank IT Challenge we were able to do this, although in future it would be interesting to see what can be done about obtaining sponsorship for this as well. We then ran full mock contests, using full problem sets from past contests and the Abacus contest system used in our regional contest.

Providing full rankings as in the actual contest seemed to attract the stronger teams along. They couldn't resist showing off and seeing who was better, although in the one session that Harry and I participated for fun we beat the lot. One thing that this contest requires to succeed is exceptional team work. This is one reason I find the teams that remain together for several contests are the ones that win. Without practicing together as a team, you cannot achieve the level of team work required to win this contest. This is where the new form of training adopted this year proved very successful, attracting many more people than ever before. The improved training also appeared to have some effect on the turnout for the contest itself.

With more than a week to go before the official registration closed, we hit our limit of 22 teams from UCT. We were forced to close down registration early, turning several teams away. It was unfortunate that we had to do this and next year we will try our best to accommodate the larger numbers. It was, however, already cramped with some rows of four PCs allocated two teams.

Yesterday, Saturday 20 October. This was the big day. The day we had been building up for for so long. The day before Bruce and Carl did the final preparations. They pre-allocated all the t-shirts, name badges and all sorts of other goodies into paper bags for each team. With a total of 30 teams (22 UCT, 3 Stellenbosch and 5 UWC) arriving in the morning we had to prepare ourselves for a speedy registration process. There were a host of other preparations they had to do, all to make the contest day run as smooth as we could possibly make it.

We told everyone to start arriving at 07:30, so we arrived at 07:00 to for final preparations. With the sponsorship from Google, we were able to use the budget from Pretoria to provide breakfast before and snacks during the contest. Unfortunately we underestimated the consumption rate, so we understocked. Before anyone got a chance to invade the breakfast supplies they had to register and pick up their team bags full of goodies. There was a steady flow of people, which is always better than a massive flood.

As people were still arriving at 08:15, we hung around the registration area a little longer until eventually moving down at 08:30. Everyone found their seats quickly as we had maps outside the lab. By the time everyone was seated and logged into the PCs, the practice contest had started. The practice contest was a poor start. There were several errors in the problem statements, some of which wasted several teams a lot of time which should have been used in testing the environment and not the problems. I hate laying the blame, but Pretoria ran the contest and they didn't get things off to a good start in this regard.

We were scheduled for a 09:00 start, however, I don't think we have ever started on time. There were four locations across South Africa where teams were participating from. Each site had to give the ready signal and any last minute technical difficulties needed to be sorted out. To make matters worse, they had a brief power failure in Pretoria! We finally got going at 09:45.

We were very anxious to see the problems. Since we don't run the contest, the first time we get to see the selected problems is when the contest starts. We submitted five problems to Pretoria, which was much larger than our typical number of one or two problems. This was in part due to part due to the increased preparation we were doing for the contest this year on our end and that there were four of us interested in submitting problems. With our experience in running the SACO we were used to working together on checking each others problems thoroughly.

This is where we got a little disappointed. After having submitted five problems, only one of them was accepted. Happily for me, it was one of mine, but it was still a disappointment. Especially when we consider the reduced difficulty level in this years problem set compared to previous years. While this might have been done purposefully, I tend to disagree for reasons that should become apparent later in this post. I'd be interested to discover where the selected problems usually come from.

I will probably provide solutions to the problems in a later post. However, a quick analysis for now. The problems should be made available here shortly. Problems A (blue) and F (yellow) were both trivial - there was nothing algorithmically difficult about them. Problem E (red) was also algorithmically trivial, although the coding was slightly more complicated. Problem C (pink) wasn't very tricky either, but the Maths could prove problematic for some. Problem B (green) was tough on constraints, requiring a linear solution. Lots of teams timed out by using a quadratic solution, or even if they had the correct algorithm got an "abnormal termination" due to too much memory usage. Problem D (purple) was the evil one, and to make you all hate me let me be the one to inform you that I set it. :-P

The gang got off to a quick start with UCT team ʇ|nɐɟƃ3s claiming the first problem in 16 minutes, followed closely by UCT teams teh_solverers and The G-dS-B Conjecture, Wits team Blackhole Constants and then UCT team Custard Frog in that order. All of them solved problem B first. This resulted in a quick spurt of blue balloons that we had to dish out, such that we quickly changed strategy to preparing balloons before a team solved a problem.

As more and more teams came in with the blue balloon, so teh_solvers claimed top spot by solving problem F and claiming the first yellow balloon. They never lost the top spot! Once the scoreboard settled down a bit we had the top three teams all from UCT - teh_solverers, The G-dS-B Conjecture and ʇ|nɐɟƃ3s. That was the way I was expecting the scoreboard to look like at the end, but that wasn't to be.

teh_solverers pulled ahead, claiming the red problem after about 90 minutes. Shortly after this something disastrous unfolded. Several people were attempting the green problem, but getting timeouts. Since the time limit was two minutes, we thought that the slight backlog of pending submissions was due to this. However, the backlog grew larger and larger to the point where it just came to a grinding halt! Once we realised what was unfolding we quickly contacted Pretoria to find out more about the situation. It turned out that the main Abacus server was churning away so hard that it was out of memory, so they were building Abacus on a new server with more memory.

They told us it would be back up in about 15 minutes, so we made an announcement to the teams, however, even then they were disgruntled by the scenario. And this was before things started getting a lot worse! The problem seemed to be caused by the 30MB test data some of some of the problems, which was being polled by the marker servers every time they started evaluating a new submission. Add this to the numerous last minute commits to the Abacus software just before the contest and I still wonder why we use it over PC2.

After an hour the backlog of submissions grew ridiculously long and still things weren't getting any better. Pretoria were rebuilding Abacus on a new server with more memory, however, this was taking some time. When they eventually got it linked up they only had two markers attached in order to prevent the server from crashing again. This wasn't working though as submissions were coming it at a faster rate than they were being processed.

About 90 minutes into the saga, they finally attached 10 markers to the server and it started processing the submissions much quicker. Only problem though, for some reason the system was developed in a way such that a new server would start evaluating the submissions right from when the contest started. So it sat there churning away through all the old submissions that had already been evaluated! I still don't understand this design decision, but at least things were moving. We had to wait another 15 minutes or so before the server got to the new submissions.

The next 10 minutes was balloon chaos!! Think of all the problems solved during that span of nearly two hours. Picture us having to blow up and dish out all these balloons as fast as we could. That's what it was like for these next 10 minutes - FUN! This was also the period during which any doubts about the problem set not being easier than previous years faded away. There were so many teams that hit three balloons! I'd guess it was about 40-50 balloons that we distributed in this short period of time. Determine colour of next balloon, blow up, tie, attach piece of string, run!

While the markers were borked, the standings were obviously idle. The spurt of balloons after they came back online shuffled things up a bit. teh_solverers further secured their lead with the pink balloon and the green balloon soon after the spurt. They therefore had two hours to work on the final, purple, balloon and were well on their way to defending their title. My recollection of the order further down is a bit fuzzy due to the chaotic balloon rush, but Bacon & Eggs climbed up into second place with the pink balloon, just ahead of ʇ|nɐɟƃ3s who also got pink. The G-dS-B Conjecture were slipping down a bit, while Team LOL was climbing.

At the start of the last hour, when the scoreboard was frozen to keep some suspense, there were three teams that had solved all but the purple balloon: teh_solverers, Bacon & Eggs and ʇ|nɐɟƃ3s (all UCT teams!). The time gap between second and third was a paltry 7 minutes! Blackhole Constants (Richard Starfield and co.) from Wits was the top-ranked non-UCT team on four problems. They needed both the remaining problems to clinch it as they were far behind on time. With 40 minutes remaining, Bit Chow Down grabbed fourth place to make it UCT with the only four on five problems! And any of those four could clinch in the remaining 40 minutes by solving my purple problem.

The balloons trickled real slow in the last push. The De Bruyn Altimeter (Nicholas Pilkington and co.) from Rhodes joined the other UCT teams on five problems right near the end, but other than that the results were pretty much unchanged.

The top four teams remained UCT teams, in the following order:

  1. teh_solverers
    • Timothy Stranex
    • Migael Strydom
    • Tamara von Glehn
  1. Bacon & Eggs
  1. ʇ|nɐɟƃ3s
  1. Bit Chow Down

The full standings are available at:

It was all over. All that hard work paid off. This was an awesome result for us. It shows that our new training methods are working effectively. It's often said that having many teams highly ranked shows the coaching abilities more than having one do exceptionally well. We've definitely succeeded in getting on the many highly ranked teams side. A lot of this is due to this community that has been evolving at UCT, a community of people interested in competitive programming. We've grown to a point where we now work together and learn from one another.

After the contest we went to Da Vinci's in Kloof Street for lunch. We took up most of the restaurant we there were so many of us. They served some excellent pizza, only a tad slow on the delivery of the food. After the food, we had a little prize giving. The top three teams each got Google goodies that Google supplied us with as well as something small from Pretoria.

1st place: teh_solverers (left to right: Migael, Tamara, Timothy)

2nd place: Bacon & Eggs (left to right: Ian, Ingrid, Bertus)

There has always been a shortage of females in Computer Science. This is always evident in the numbers in these contests. This year we had three females out of 66 contestants at UCT, which is less than 5%! Therefore we were glad to see two of them fighting it out at the top, eventually taking the top two spots. On top of it, they are twins.

Left to right: Ingrid, Tamara

What would the contest be without us wonderful coaches? No training, no motivation to participate and worst of all no contest at all! For three of the coaches, this was likely the last ever contest they will be running. For me, this was likely my last ICPC regional at UCT (hopefully I can find some new minions to train when I move on).

Left to right: Carl, Donald, Bruce, me, Shen
Bottom: Harry

So now I will be taking teh_solverers back to the World Finals next year, this time in lonely Alberta, Canada. This year they came 26th, can they make the medals next year?