Showing posts with label google. Show all posts
Showing posts with label google. Show all posts

Monday, May 31, 2010

Long Overdue Update

It's been a long 10 months since my last post, so an update is long overdue. So, what have I been up to all this time?

I've been actively growing our still relatively new UCT Algorithm Circle. We had our 2nd Python course with 75 kids at UCT, and about 15 each in Stellenbosch and Johannesburg. We've put together a solid funding proposal to Google, which if successful will allow us to teach 1,000 kids in Cape Town, Stellenbosch, Johannesburg and Durban as well as attempting to motivate and assist students in these regions to form their own courses.

I've obviously been working towards my MSc in Computer Science. The idea to finish within a year didn't quite work out. Turns out the area I'm working in is ridiculously competitive, so we've been getting harsh paper reviews (not to mention the two immediate rejections without review!). This has resulted in things taking longer than expected, and along with that I've lost a lot of motivation. I'm still touching up the final results and then need to churn through the thesis. I have about 75 pages already, but a lot of it needs to be reworked.

On Wednesday, I leave the country for four months. I'm starting a second internship at Google Zurich, working with my previous mentor this time on the Google Calendar backend. I have a vague idea of what I'll be working on there and I must say it excites me a lot! Once again it's going to involve some stats, which I really enjoy since it often means dealing with insane quantities of data.

Unfortunately I'll be missing the soccer, but hey what would you rather be doing? :P I'll make an effort to head across to Italy to watch some of their games with family there. My roommate so happens to be a Swiss rugby fan, which must be extremely rare. So I'll get to watch the Tri Nations with him.

While I'm up there, I'm going to attempt to finish off as much as my thesis as possible. It will be tricky not having physical meetings with my supervisor, but Skype will have to do. I'm also going to be meeting with my potential PhD supervisors while I'm up there. It's either PhD or work followed by PhD for me -- I haven't quite decided yet.

So that's a very brief update on what's been happening the past 10 months. I plan to be a bit more active here while at Google, to at least keep my friends updated with what I'm doing over there.

Monday, July 7, 2008

South Africa Google Gadget Competition

Google are starting a Google Gadget competition in South Africa, pitting UCT up against Wits. Here's another chance for us to show our dominance at UCT. The competition was first run in East Africa, and now we're getting the next one. The prize includes a trip to the Google engineering office in Zurich for a dinner with the Google SA team.

Gadgets are interactive mini applications built using HTML, with JavaScript, Flash or Silverlight for dynamic behaviours that live inside a web page. Think of them as Facebook applications that can be used on any web page. Practically anyone can add a gadget to a website they have built, but many are used on iGoogle. Millions of people worldwide use iGoogle every day. Just look at the collection of existing gadgets ranging from a simple clock to the Google Talk gadget. More info is available here.

David Harper from Google is giving a presentation of the competition at UCT on Thursday 24 July (date and venue TBD). The other important dates are:


July 21, 2008 Registration open
August 15, 2008 Registration close
August – October, 2008 Students build gadgets
October 31, 2008 Gadget submissions due
Mid-November 2008 Winners announced

I've created a Facebook group which you should join to discuss the competition further if it catches your interest:

http://www.facebook.com/group.php?gid=18095983733

Some more info directly from Google:

We're looking for the next generation of gadget developers in South Africa and to reward the university in South Africa where outstanding creativity meets state-of-the-art technical skills. This year we will have one university in Johannesburg and one university in Cape Town compete against each other.

Students who wish to participate to the contest will register and submit their ideas for what they think will make a great gadget from July 21st through the submission form below. Each proposal should explain what the gadget does, who would use it, and why it will be successful, as well as adding some details about how the gadget will work.

Students will then have until October 31st to work on creating the gadget. The deadline for submitting a fully-functioning gadget is October 31st. We'll communicate the link through which students can submit their gadgets at a later point in time.

After the deadline a committee, composed of Google engineers as well as some preeminent tech personalities from South Africa, will judge the gadgets.

The overall winner together with some runners up will win some of the following prizes: A trip to Google engineering offices in Zurich, Switzerland, dinner with Google SA team, visibility and PR. All will receive an iGoogle gadget certificate.

The winning university will be publicly announced by Google and will also receive an iGoogle gadget certificate.

If you have some technical skills, and are enrolled in a Bachelor's, Master's, or PhD course in 2008 at the University of Cape Town or the University of Witwatersrand in Johannesburg, we would love to hear your gadget ideas. Please submit your gadget idea through the registration form below.

Saturday, June 21, 2008

Google Code Jam

Google Code Jam is back!! After a couple years of running off the TopCoder platform they took time out to build their own platform. Wow, it looks exciting! More than $80,000 in cash prizes, top 500 to compete at their nearest Google office (which for us in SA equates to a wonderful trip to Europe :-D) and 100 finalists gathering in the famous Mountain View office to shoot it out for the grand prize of $10,000.

Google sure have put a lot of time and effort into Code Jam and the results were evident in the beta contest (yes I know, Google call everything beta!) they ran a couple months ago. They have made the problems all data problems which opens things up greatly such as allowing you to use any programming language whatsoever. All you do is submit your program's output, like you do with the IPSC if you competed in that one.

The qualification round is on 17 July. It goes on for a full 24 hours with the sole purpose being to discard those who are just faffing around and get sweet bugerall. Getting a single problem correct will be sufficient to progress to the main knock-out rounds, which you will have the choice of several days and times. There are a total of three online knock-out rounds (excluding qualifiers) before the two on-site events. So it's big, and serious stuff.

You can register at:

http://code.google.com/codejam/

And if you're from South Africa, tell me that you've registered and I will add you to our local standings. Watch this space for more competitions from Google, local South African ones in particular! I was recently awarded the position of Google Student Ambassador at UCT, so I have inside knowledge. ;-P

Saturday, April 19, 2008

Google Code Search Added To Universal Search

Many readers of my blog will have heard of Google Code Search and some will remember that I was previously a part of the project. Well, that gives me special pride in announcing the introduction of Code Search into Google's main web search! For a sneak peak have a look here and see if you can spot the difference.

If you recall, it was little under a year ago when Google started going live with universal search. The problem this project attempted to solve was that almost all users of Google only ever make use of the main web search. The solution they had was to bring all the other specialised search results (from Maps, Images, News, etc.) to the main web search. Two major problems present themself in attempting to achieve this:

  1. The specialised search engines were used to receiving far lower levels of traffic than the web search, but in munging all the results together they would now all have to deal with the traffic levels obtained by the web search they were to integrate with.
  2. It's all fine and dandy saying that you're going to integrate the results, but deciding what type of results should be shown when is a challenging problem that needs to be solved per specialised search engine, but in such a way that the main web search guys are happy.
So this is what the fourth result now looks like when searching for StringTokenizer on google.com:


Some other examples: printf, atan2, strlen, ClassLoader

How useful will this be? Well, for one I think it will be useful in attracting users' attention to Code Search. I doesn't occur often enough in the results to be overly useful when trying to search for help on some class or function. And since web search doesn't allow for regular expressions, the most powerful feature of Code Search, it is severely hindered in its integrated form. Still cool though in my opinion. Is it clogging up the results page? I don't think so, since it only takes up one of ten results.

Friday, February 29, 2008

Google Student Ambassador Programme

A couple of days ago I received an email from a university programs coordinator at Google about the Google Student Ambassador Programme they are launching in Africa and the Middle East. One student is selected from a university as the student ambassador and his role is responsible for representing Google at his university. This involves organising Google-sponsored events and handing out Google goodies. One of their popular things they like to do is organise pizza for the other students during exams and other deadlines when people are pulling all-nighters.

The requirements of the job are pretty standard:

  • Student in Computer Science or related field
  • 2nd or 3rd year undergraduate or graduate-level student
  • Excellent academic performance (equivalent to an A- mean grade or above)
  • One-year commitment
  • Active in university student community
  • Passion for technology, innovation and learning
But not the benefits :P :
  • Leadership role
  • Exposure for your university at Google
  • Free food
  • Google gear
  • Admiration from your CS peers
It's a small step, but an interesting one I find. Very often companies approach the staff as an entrance point into universities, but not with Google. Yes, they did have a series of meetings one day with our staff, but they have made a far greater effort in approaching the students directly. Is it necessarily a good thing though? Well, it is unusual and that alone gives it a chance of working. But in many cases students just aren't interested in this sort of thing.

Is the fact that they are just Google going to make this work? Would it work for any other company? My feeling is that it very much depends on the company and its culture. NVIDIA, for example, has the right culture to make a strong student-company relationship work as well. I was actually trying to discuss this very sort of relationship with them towards the end of my internship. I think it also requires that the student has an active interest in the company, such as I do in Google.

If you are interested in applying (and you are a UCT student) then let me know and I can recommend you to Google. I found some further information on the program here and you can also read the email below. This is definitely a step forwards, but I hope it moves further.

The full email I received:
Dear Marco,

I hope this email finds you well.

We wanted to get in touch with regards to a Google Student Ambassador Programme we have just launched for students enrolled at universities in Middle East and Africa.

The Google Student Ambassador Programme, an exciting new opportunity open to high-achieving technical students at select universities in Middle East and Africa.

Google Student Ambassadors are the voice of Google on university campuses and work with Google to plan and implement university events, which promote information technology, Google products, and student learning.

Ambassadors act as a technical resource amongst their fellow students and a university liaison for Google. Students who participate in this programme become part of an international network of students dedicated to improving knowledge transfer between industry and academia.

One student per university is chosen to serve for the duration of the academic year, after which they'll receive an official certificate in recognition of their achievements and contributions in this role. While the responsibilities associated with this position are a considerable time commitment, they are also a fun way to learn more about Google and give back to the university community.

Being a former intern we believe you know Google, our culture and products very well and could make you a very good ambassador.

We have just launched the programme and are currently soliciting details of interested students to whom we will reach out with more information about how to apply to become a Google Student Ambassador by March 10th, 2008. I wanted to get in touch with you before though to see whether you would be interested in applying for the programme.

If you can't commit, maybe you know fellow students that you could refer?

The requirements for becoming an Ambassador are:

  • Student in Computer Science or related field
  • 2nd or 3rd year undergraduate or graduate-level student
  • Excellent academic performance (equivalent to an A- mean grade or above)
  • One-year commitment
  • Active in university student community
  • Passion for technology, innovation and learning
If you can think of someone who would make a great ambassador, please do not hesitate to send me their contact details and we will reach out to them with further details by March 10th, 2008.

Please let me know should you have any questions in the meantime.

We look forward to hearing from you.

Best regards,

Maria

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.

Friday, November 9, 2007

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.
:-P

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 "https://mail.google.com/mail/". 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 joe.bloggs@gmail.com. However, if someone sends to joebloggs@gmail.com (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 j....oeb.l.o.g.g.s...@gmail.com 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 joe.bloggs+abc@gmail.com 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.

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.

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.

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.

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.

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].co.za, which costs R150 a year, and now our whole family has name@[redacted].co.za 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

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.

Friday, August 31, 2007

Google Earth Flight Simulator

Related article: Traffic analysis of this post

Some time last week, Google expanded Google Earth with Google Sky. As fascinating as Google Sky is, that's not the focus of this post. Along with the latest update comes a hidden feature of which I cannot seem to find any other information about. It's not in the release notes and a search on Google produces no results. Seems Google have done one of their unpublicised updates they're becoming well-known for.

What I'm talking about is a flight simulator embedded within GE. Sounds awesome, doesn't it? If the thought amazes you as much as it did me, then might have run off and tried it for yourself. But there's a problem. Remember what I said above - it's a hidden feature!

First of all you'll have to install the latest version of GE. Once you've started it all up, then all you have to do is hit Ctrl+Alt+A (if you're running OS X it's Command+Option+A; some people have reported that Ctrl+A or Ctrl+Windows+A work when the standard Ctrl+Alt+A does not). You must be in Earth mode (i.e. not Sky mode) for this to work . If all goes as planned the following dialog should pop up:


As you can see from the screenshot there are only two aircraft to choose from at this stage. The F16 I find is much more enjoyable for a quick stint as it goes much faster than the SR22. Try both though as they're quite different flights. Then you get to pick a start position. The default option of Kathmandu runway gives you in the following scene:


Before going wild pressing random keys like I did, have a look at the controls. Sidetracking a bit, you'll notice that the top of that page gives proof that Google purposefully hid this feature:

Once you have entered flight simulator mode for the first time, you can re-enter the mode by choosing Tools > Enter Flight Simulator.
Moving on though, you can get a quick start by holding Page Up for a few seconds to increase to maximum thrust (thrust meter is the left bar of the lower-left meters). Once you've accelerated to a sufficient velocity use the arrow keys to take-off. The keys are in reverse as one would expect with any flight simulator, so use the down arrow to take-off. When you've gained enough altitude then stabalise the aircraft to a straight flight path.

It can be rather tricky to get the hang of as the controls are quite sensitive. However, the same can be said of any reasonable flight simulator as that's the nature of flying. After a little fiddling around and once you're stable you should see a nice view of the Himalayas out on the horizon:


I guess this next screenshot should have come before the last, since it's what most people will see first. However, this is not as bad as it may appear. Although I admittedly was very poor when I started out, I learned with a little practice. This shot is actually of a controlled upside-down flight. If I was really out of control I wouldn't have been able to capture such a nice shot!


To round up on the screenshots, here are a couple quick ones from flying over Frankfurt and New York. They're not all that fascinating to look at, especially when compared to the real experience.



Overall, I think they've done a good job considering (assuming?) this is their first release. There are several things missing though. A major thing is that you don't get a view of the aircraft at all. It would be nice if they could add several views, including a view from within the cockpit with full controls, etc. The controls are covered well. It works with joysticks, however I couldn't find one to test with. The mouse control is very effective although switching between mouse and keyboard I found a little poor as it would jerk the aircraft.

Unfortunately with poor bandwidth in South Africa most of the scenes didn't get a chance to fully load before going out of view. I'm sure this won't be an issue with a decent line. Even without it loading in full it was still very usable, which is a big plus!

The airports are covered fairly well, with almost all major airports included in the list. Perhaps a search option could be added to search for airports, since all the data should already be available as it's displayed in the main Google Earth view. However, the locations might not have sufficient precision. I think the aircraft selection needs to be improved drastically before this is fully launched.

All-in-all I think it's a great feature Google has added to one of their top products. I still remember the days when Microsoft Flight Simulator was considered so cool and that you had to pay for! With a bit more work this has lots of potential to greatly surpass other flight simulators.

Discussion on Reddit
Discussion on Digg
Discussion on Shoutwire
Discussion on Slashdot
Youtube video - startup
Youtube video - flight tips

UPDATE: If you are struggling to get into flight simulator mode then follow the instructions below to manually enable flight simulator. After enabling, go Tools -> Enter Flight Simulator.

Windows:

Download FlightSim.reg, double click on it and restart Google Earth.

Linux:

echo 1 > .googleearth/Registry/google/googleearthplus/User/flightsim/isenabled

Saturday, July 28, 2007

Google SA Office

Little under a year ago, Google advertised three job positions in South Africa. Yesterday it was announced that Novell SA country manager, Stafford Masie, has taken one of those positions. He will be heading operations here from 3 September.

This is a very exciting move for SA. They have yet to decide whether the office will run from Cape Town or Johannesburg. This is only the beginning, however. What I'm waiting for is for Google to open up an engineering office in SA. That would be awesome! Amazon recently opened an engineering office in Cape Town, so there is definitely interest. We have a fair number of talented computer scientists coming out of our universities every year.

There is already a google.co.za domain with some of our official languages, which has been around for a good couple of years now. Google Maps data for SA is aweful and that is generally one of the first projects when a new engineering office opens. If you don't know what I'm talking about, do a search in America (you can even drag the route!).

Monday, July 9, 2007

10 Google Process Observations

I was watching a video of a tech talk on Google's MapReduce and there was one slide that had very little to to do with MapReduce itself, but I found very interesting. It was a list of 10 observations of the development process at Google:

  1. Devs work out of a ~single source depot; shared infrastructure!
  2. A dev can fix bugs anywhere in the source tree
  3. Building a product takes 3 commands ("get, config, make")
  4. Uniform coding style guidelines accross company
  5. Code reviews mandatory for all checkins
  6. Pervasive unit testing, written by devs; high dev/test ratio
  7. Unit tests run nightly, email sent on failure
  8. Powerful tools, shared company-wide.
  9. Rapid project cycles; devs change projects often; 20% time
  10. Peer-driven review process, flat management
I experienced or at least observed every single one of those points. It really sums up the working environment at Google well.

The source tree - mostly all visible to even interns, and all you can see can be modified. Building couldn't be easier - even the Makefile is auto-generated. Coding style is very strict. They emphasise unit testing a lot, espicially writing them before writing the code. Powerful tools - couldn't have described it better, MapReduce is one of many examples.

Friday, July 6, 2007

Google and Bugs

As thorough as Google products are tested, bugs still creep in. And I'm not talking about security holes or anything along those lines, I mean bugs that you could identify even without looking. While some may be petty bugs, which don't interfere with user experience, some can be rather annoying once noticed.

The first bug which I found falling under the annoyance cateogory is with the main Google Web Search. I was searching for the C++ >?= operator. If you search for the operator (or click here) you will notice an absence of results. This is due to Google not indexing punctuation. This happens when searching for any punctuation only query. However, when you search for any other random query which contains no results such as this one an error message is returned saying "Your search - thisisarandomquery - did not match any documents." I also use Google Search History and the former searches are not saved while the latter are.

The Web Search is out of beta, at least last time I checked. Other products still labelled as beta are expected to have more bugs. Google Talk handles multiple logins to the same account rather poorly, often sending the message to just one of the clients and sometimes the unexpected one. While I was working on Code Search I discovered some bugs from general usage and reported them as well.

There are a couple of other strange behaviours people have pointed me to. Some people could consider them bugs and some not. It's sometimes a thin line between bug and feature. I have reported these behavious even since I have left. Someone also reported one of the examples on the Code Search home page as confusing and I got it changed.

So as you can see, Google is far from perfect, far from being bug free. You can help by reporting any bugs or odd behaviours you may discover.

Wednesday, July 4, 2007

My Code Search Project

This is probably the worst secret I have had to keep. It's been seven months. Seven anxious months! But the time has come. I can finally speak! The NDA holds me back no longer!

A small flashback is required. Over the past December-February I was a software engineer intern working in Google's Zurich offices. The project I spent most of my time on was Google Code Search. You can read up about my experiences here.

The problem is that what I was working on was confidential, as with most work at Google. Since Code Search is a relatively small project, I couldn't go any further than telling people I was/had worked on Code Search. This all changes however when my work goes live. Guess what? You made the connection yet? Yes!! After seven long months...it has...(drum rolls)...gone live!!! :D

Another small flashback will do here. Before I even discovered I was to work on Code Search, I had this lingering question in my head about what is crawled. It was lingering enough to make me wonder, but not enough to make me find an answer. I wondered however, if they crawled html pages. Well, it's out now. That was what my main task during my internship - to crawl html pages for code embedded within web pages.

I am afraid of leaking information I shouldn't be discussing, so I'm afraid most of this big secret will have to remain that way, possibly forever. You might look at it and think "OMG, how did he do that?", or on the other end you might think "Gosh! I could do that in my sleep!" Now I'm afraid I can't back either end up. But, I will tell you that some this task taught me some interesting things about programming languages I probably never would have come across before. This happened while having to identify the language of the code and tag it. Tricky bastard that was!

It is still very much in its early stages in its live state so the results are far from perfect. And there are some other things which I cannot comment on. But you can see some of the results for yourself. You can see that a result is from an html snippet if it isn't from an archive or cvs/svn repository. There is no way to completely distinguish the types of results in a search (mine from original), but to get an idea you can search for html pages not detected as html or php, which will yield some results.

There is a posting on the Russian Google Blog, which you can read use Google Translate here. It's a nice read from the perspective of the Russian members of Code Search. They point out a nice example: wordexp_t example, which yields a result in html snippets at the top.

UPDATE: The ranking has changed slightly, so although the example about still returns html results, it falls lower down. There is another example however, which still yields a top html result: nph-refresh lang:perl

I'll leave you to explore the results of about 6-7 weeks of my time spent at Google. It was a really enjoyable experience and I'd like to thank my manager Miguel Garcia and co-worker Pawel Aleksander Fedorynski as well as the other members in other locations.

UPDATE: An English post has been made on the Google Code Blog.

Thursday, June 28, 2007

Google Dictionary

I'm truly in new Google feature discovery mode today. I promise this is my last one for now though.

This last tool is kind of special to me. This is because my manager is the lead developer and I spent a little time working on a part of it, although my part has yet to be launched. The tool is fairly simple, but it could prove very useful to some people. It's called Google Dictionary!

The name practically explains the product. You give it a word, a language to translate from and another to translate to. It then translates the word, given multiple translations if necessary as any dictionary would do. It also gives you a few related phases. The best way to see its capabilities is to try it out. As an example, click here for the translation of "hello" into Spanish.

Again, I don't want to give away anything more as I know more about the product than public knowledge. So I will cut this short.

Google Talk Gadget

The most wanted feature of Google Talk was conferencing functionality. Yes, was! A new implementation of the Google Talk client written in flash now allows for group chats.

It's quite a nifty tool as it allows you to use Google Talk almost as though you had the desktop client, but all from the browser. And it also has one of the features I've come to love of Pidgin - tabbed chats. Apart from a few bugs and it slowing my Core 2 Duo down quite a bit when there's lots of activity, it's very useful. To use it go to the Google Talk site and click the big, blue "Launch Google Talk" button.

One of the things that excites me about this is that it's one of the big things I heard of in advance while at Google in January. For fear of talking too much I shall terminate this post now and keep it short.