Sunday, July 11, 2010

Google Ghana

Another Google event! These are now regular fixtures in my monthly schedule though I am not complaining. On the contrary, I do benefit a whole lot more with every event. I have already been to two Google sponsored event and a couple of GTUG (Google Technology User Groups) meetings, but this promises to be the best. There will more of everything, from educational resources, technical insight and a chance to meet interesting developers both locally and internationally. The event was organized at Ghana-India Kofi Annan Centre of Excellence in ICT (AITI-KACE).

On a personal level, I am hoping to build my knowledge base on some very interesting Google products including maps, search, building widgets and extensions for Google chrome browser and learning more about the Google Webapp framework. I also have to admit, I do go to examine the free food and determine whether it will stirrup some essential biological processes in my anatomy. Wink :)

Google Ghana as all the other Google sponsored events have the main aim to educate people about the benefits of software and how we can use it to solve problems. The only catch is that everything is centered around Google products, but then of-course, seeing how big Google is and how diverse and extensive they have spread, there really is more than enough to learn. This event or rather series of events were grouped into two main sections for software developers (June 3rd) and business/everyday-day users (June 4th). The developers had the first day where discussions will be more technical, delving much deeper and concentrating on how to play around with some programming tools. Another more exclusive event would be organized on that Saturday and would offer a more hands on approach to developing website using the Google Webapp framework.

The check-in process was a bit different and innovative, as you had to register on-line for a chance to be part of the event. On arrival, you had to proceed to the check-in table where name tags had been neatly arranged, all you had to do was to pick yours through the stack, no verification needed. Hmm !!! This gives me ideas. I was a bit late and so walked in to see people had filled up about 75% of the room and one of the Google reps had already started with a presentation on maps. All of the presenters were white Google staff except for two Ghanaians who gave a presentation later.

His talk was actually very interesting and had some high points. First and most importantly, he touched on how to use maps on your websites and customize it to fit your every need. He then proceeded to show us a working example of how Zappos, an on-line retail shop, lists sales on their site using maps. This brings us to the second high point. He had recorded a transaction of a sale on the website and intended to show us instead of going directly to the website because of low Internet bandwidth. His computer screen was blank and was working directly on the projector. The problem was when he wanted to press the play button and couldn't locate it because the projector was showing only the screen of the video player, the rest was out of display and he couldn't just drag the window, for some reason. He struggled for about 10 seconds, then he began to look uncomfortable. Another 10 seconds on the same problem and it began to get funny and people started murmuring, but then it exploded when after about 30 seconds later, he couldn't play the video and said to the audience, "Don't laugh man, its not funny". That's when everyone started laughing and the ice finally broke on the presentation. That is when I realized that during presentations, anything can happen to anybody, and this is confirmed by Moore's law, stating “Anything that can go wrong, will go wrong”. It started to get more lively after that and he ended up showing us a preview on the site itself.

The last high point was when he was describing Google places and how you can add your business to Google maps. Someone asked a question on what to do when someone maliciously adds your location to maps and writes a bad description about your business. He answered by saying that Google has a very good reporting mechanism in place where you can report issues and have reviewers look into it and sort you out. The presenter gave a very good example describing the situation where a friend decides to add your house on the map and write, "free lunch here, every afternoon". It may not be funny now but it got a lot of people laughing then, I guess you had to be there to appreciate the humor.

There was a short break after during which DVDs were passed around for everyone interested to install a stack of software, which we would be using for software development on the next session. We resumed to find two young Ghanaians who had a bit of "yonkee" and "london" accent. I learnt they were both Google staff, they were both called Kojo but worked in UK and USA separately. This was really cool and when they started talking about building websites with the Google Webapp framework, a whole lot more people were paying attention. Everyone had similar looks on their faces that read, "they are so lucky to be young, black and working with Google". I know of the look because I was feeling the same way. They did a pair presentation where they each talked interchangeably and answered questions randomly. They spoke about the loads of man hours spent on developing websites and the pains of having to setup up your web server, getting a hosting service and finally deploying your website and then having to manage it all on your own. Google had taken care of all hosting issues with Appengine, now all you had to do was concentrate on developing more features for your website. They talked about a lot more interesting technology you get when you use the Appengine infrastructure including load balancing, caching, user accounts and easy integration of their numerous APIs including maps, YouTube and calendar.

After about 45 minutes of speech, they decided it was time for everyone to start practicing some codes. There was a small break where the presenters were immediately surrounded with people. It made me remember something I read on the Internet some time back, which read, “Very good basketball players get all the women but very good programmer get all the newbies” who turnout to be mainly guys, how sad. Anyway, we were going to use the Google Webapp framework on both the Python and Java programming languages. They had two screens on-stage to handle both programming languages. From then on, it turned into a normal lecture class where they took us through the basics and had us working on getting a sample guestbook application working. I wasn't actively partaking in any of the activities but was listening leisurely mainly because I was not new when it came to Google Appengine; I have actually been working with it for about 6 months at Hutspace, my office. It seems I wasn't the only one not participation in the lessons, a whole lot more people were doing their own things.

That's when the organizers devised a great way to get our attention. They threw out a challenge to everybody to follow the tutorial and come up with a working application with a few extra features on their own. The winner would be announced at the end of the event and would walk away with a new Nexus One android phone. That got a lot more activity from the audience. It didn't dawn on me immediately to take part in the competition. It was after lunch, oh what sweet lunch, when it finally hit me that I could actually win the phone if I competed because I was a decent enough programmer. All doubts were cleared when my boss, Emmanuel Okyere emailed me and told me to win that phone. He couldn't attend the event because he was out of the country but was following the event on Twitter. I spent the rest of my time at the event getting resources and reading the tutorial on the guestbook application, which is the official tutorial on the Appengine website. The next presenter came to talk about Chrome, Google's super fast web browser and how to build widgets and extensions for it. My attention was divided between the speech and the my own guestbook application but had to raise my head when he showed couple of really interesting YouTube videos emphasizing how fast Google chrome, was compared to a gunshot and lightning. The widgets and extensions were really great ways of adding custom applications to the browser. There is also a market place where you can search for interesting widgets like Facebook, Twitter and weather widgets. You could access all these from you own personal iGoogle homepage which is available to anyone with a gmail account.

The last presenter was a female who came to talk about Google search and how you can adhere to some good practices during development to get higher search ranking. Some practices included creating a sitemap and avoiding spam on you websites. At this stage, I was almost buried in programming and could hardly follow the presentation.

The last segment of the program was really entertaining where they had a four seasoned developers answer questions posted by the public on-line prior to the event. One of the panelist was Henry Addo, a good friend working with Suuch solutions and Ushahidi. They answered questions about setting up a software company, setting goals and how to deal with clients and non-technical people in general. Two interesting pieces of advise i gathered was:

  • Always set a deadline date with about a week of breathing space. Completing the task early would not only allow you to review and optimize your work but also give a good impressing to the client.

  • You always have to aim for small wins. You make sure you get a working copy of your work out to the public as soon as possible so they can use and give meaningful feedback.

One guy asked a very interesting question of how you go about expressing a very good idea, especially if you don't have the resources to meet the requirements. Whether you share it with other people or organizations and go into partnerships. One the panelist answered by saying you have to first get a concrete product out and not to go around spreading ideas which is difficult to attach patent rights to. He also added that sharing ideas isn't always as bad as it seems and that not everybody even possessed the technical ability to transform ideas into reality.

The time finally came for us to showoff our applications. We were asked to come forward with our laptops. I counted about 15 people on stage which was an okay number for me, the fewer the merrier, right?. The rule was to get a couple of basic functionalities in the application.

  1. We were to allow people to register and sign the guestbook.

  2. We should only show a user's messages when he logs on.

This eliminated about 6 people as they had implemented the basic functionalities. The rest was up to extra functionality and design. We were all allowed to advertise our program to the audience, stating what was unique about our application. Some had implemented some complex code structure, others had nice designs with one guy using the Google colors as his background, pretty ingenuous to get the attention of the Googlers. I had implemented a simple enough counting system, where it counts the number of times you have signed the guestbook. They rated and I got 5/10 for design and 5/10 for functionality. I had 10 total and come up fourth. Too bad because they were looking for 3 finalists. I packed my laptop and headed to my seat, a bit disappointed because I knew I could have done more and I didn't.

I shortly realized how important it is to have friends among the audience. Someone raised an issue as to how come I wasn't part of the 3 finalists because as far as functionality is concerned, counting the number of messages was very important in a guestbook application. That someone was Emmanuel Ghansah, I had worked with him sometime back when I did my attachment at Ecobank Ghana. I was reinstated in the finalists making us 4 now. I got a nice applause from a number of people in the audience, mostly from friends from Suuch solutions, a college mate and couple of old friends.

On-stage, we were asked to show our applications to the audience on a projector and try to woo them. The guy with the Google color background got a lot of applause when his site came on and had gone ahead to add an email notification system, which did not work at that time and got boos for that. The next guy had added some pretty designs to his guestbook with perfectly laid out sections and a cool green background. The third guy had concentrated on code structure and really didn't have much to show to the audience except the basic functionality. I came up and gave a pretty good presentation, as was expected :) I signed the guestbook a couple of times to show the counting feature and “killed” them off with a simple date/time feature where the date and time you signed the guestbook was also displayed. The winner would be determined by the audience, who had to show acceptance by applauding. We all lined up and received our judgment individually. The two guys with complex code and Google color designs were eliminated first. The applause between the remaining guy and I were not immediately distinguishable. Another round of applause was organized and this time I was the clear winner. I saw a couple of my friends shouting and clapping and even saw one of the Google reps cheering for me. Now, that was a good feeling !!!

Miss Dorothy Gordon, Director-General of Ghana-India Kofi Annan Centre of Excellence in ICT (AITI-KACE) was asked to present the phone to me. I was asked to give a small winner's speech. I confessed that this wasn't my first time working with Google Appengine. I had been working with it for about 6 months at Hutspace, the company I was working with. This got ahhhs from the audience and Dorothy said maybe next time they shouldn't allow advanced programmers on a beginners course. Honours were exchanged, pictures were taken and I now had in my possession a new Google Nexus One handset. A very good phone, which was perfect for me because i have plans of developing android applications. The second person walked away with a Zain Internet dongle with about 2 gigabyte data preloaded.

The event ended around 7:00pm. I attained a bit of stardom, with people coming over to congratulate me and say hi to the phone, no one asked for an autograph though. I notified my boss via email and chatted a bit with the Google reps and friends for about 30 mins. Some guy come up to and jokingly said I had to go home straight or someone would organize a gang to raid me and take my phone. I took his advice and headed straight home.

Another very fulfilling event organized by Google, not only because of the phone, but also because of the knowledge, extra resources and contacts I had gathered.