Lessons Learned From Imagine Cup 2008

I watched this video on Channel8 and I figured out to write what I have learned from Imagine Cup 2008 Gulf region contest which was held in Jebel Ali resort, Dubai. I might even wind up being glad that I have failed! Failure is the first step to success.

For those who does know what is Imagine Cup, it is an annual competition from Microsoft aimed to solve world’s toughest challenges by using technology. Software Design is one of the categories in this competition. We have to use .NET technologies for this year’s theme, which is the environment.

Lessons learned from Imagine Cup 2008:

1- Don’t wait until the last 2 nights!

That’s my first mistake. We haven’t done the video and we haven't practiced enough before the last two nights. Never ever delay anything until the last two days before the presentation. You will not have time to do anything because you’ll be totally booked for all the trips and events happening the day before the contest.  I’m sure if we had practiced more before the contest, we would do much better in the contest’s presentation.

2- Eat well! But not much…

I was shocked when I woke up just 1:30 hour before the presentation. I had to jump off the bed and rush to get ready. There was no time at all to eat breakfast. But I could at least eat a 1 minute snack!

3- Bring business card

We met lots of people there from different countries and different universities. We also met a lot of people from the press and Microsoft. I think if we brought a business card it would make life easier to keep in touch with some of those individuals.

4- Be prepared

Always be prepared and have a backup plan! I had everything prepared before the presentation and I even hibernated my laptop rather than totally shutting it down just to make sure it will directly open  with my slides ready on the screen. But after going on the stage my laptop’s touch pad suddenly - and for the first time - stop responding. I was like "Hell no! It never happened to me before… why now?!". It was a funny situation in front the camera and a hall full of audience.

5- More practice

The more practice you do the less mistakes you’ll make.

6- Video!

Every team has used videos in their presentation. We were the only team started the presentation without any video clips. You asking why? It’s because we didn’t have the time to do it and we ended up deciding to do it the day before the contest which again was a big mistake. Video is an essential part of the presentation to deliver your idea in another way and to convince judges. After all, we are marketing our idea and there is no limitation on what you should do when marketing your product.

7- Demo!

Believe it or not, we didn’t have a running program for the contest. Even though it is not required to have a running program in the regional contest, but it would be a big plus for our team. A program demonstration will show judges how far you’ve reached in developing the program and it is really a proof that your idea is implement and your software is working.

8- Sleep well…

Oh this is the thing which I’m not really good at. I rarely sleep well and I occasionally don’t care if I slept well or not. Guess what! I slept only 3 hours before the presentation… and maybe it is one of the factors that affected my mood in the presentation.

9- It’s not how good your project as much as how to deliver it to judges

I think our idea was great and easy to implement. But the problem - in my opinion - was we weren’t able to convince the judges. I think they didn’t totally understand the concept behind our project and how easy it is to implement. After all, they did told us that their main focus was on selecting the idea which is good and easy to implement. Convincing is the keyword in this regional contest.

10- Marketing skills is much more important than a working application

I also learned that the presentation and communication is much important than showing them a working demo of the project. The regional Imagine Cup contest wasn’t aimed to show a demonstration of your project, it is aimed to communicate with judges and to convince them that you have the best idea and the easiest to implement. If you convinced them and won the regional, then you’ll move a step ahead and start implementing your project for the finals.

 

Although it was the first time for a team from Kuwait University and Kuwait to participate in this contest, I think we, Super Coders team, did pretty well in the competition.

My goal for Imagine Cup 2009 is to win the regional and win the final. Microsoft told us that next year (2009) will have a local competition rather than regional Gulf competition. The winner in Kuwait for Imagine Cup 2009 will go directly to the final contest. I also heard that a new Robotics category will be introduced in 2009's contest which looks interesting category I might consider participating in for the next Imagine Cup.

I’d like to thank Dr. Thalaya Al-Fozan - our team coach, Kuwait University - Dr. Mohammad Ilyas - Gulf University for Science and Technology - for his effort and precious time he gave us on our project. Thanks to Microsoft and Lana Khalaf for their effort on making this great event. I really had fun there in Dubai.

 

The Buzzword "Ajax"

Introduction

I decided to write about Ajax because so many people don't know anything about it. Most of them never heard about it. At least that's what I find when asking my colleagues and friends in Kuwait University even computer engineering students. The buzzword "Ajax" seems to be a strange word around our community. I wonder if even "Web 2.0" or "Mash-up" is known among computer engineering students here?

If you have been one of the users of the internet for many years, you have noticed the tremendous improvement in web experience. From static ugly looking web pages to fully dynamic web pages with rich user experience and social contribution wikis. From a fully static text web pages to highly user friendly drag and drop web applications.

There are many ways to create RIAs (Rich Internet Application). The most common method is using JavaScript (with Ajax technique); however, recently Microsoft Silverlight is taking the upper hand in developing RIAs since it is based on .NET Framework.

What is Ajax?

Ajax is the acronym for Asynchronous JavaScript and XML. It is based on an XML DOM (Document Object Model) which is an XMLHTTPRequest object, and it is supported by almost all browsers lately. "Ajax isn't a technology. It's really several technologies, each flourishing in its own right, coming together in powerful new ways."(1). It is not a new technique; it has been used before the term was introduced, but only recently it gained popularity. In fact, XMLHttpRequest (XHR) has been used since 1999 when Internet Explorer 5 released.

Why Ajax?

• Less Resource Consumption
The main advantage of Ajax is less resource consumption on the server side. That's right; you don't have to load the whole page every time a user clicks on a link. Let's take Gmail for instance, when you click on one of the links on the menu, it does not reload the whole page. Only part of the page will be reloaded. That's called "Call on demand", and it means it only loads what needs to be changed on the webpage. That's how Google saves bandwidth, by sending less data to users when navigating, and also saves CPU, RAM, and many other resources. Therefore, Google will pay less for providing its email service to users which means that Google will economically gain more profit with their system.

• Faster Browsing
Browsing the website is much faster and less tedious since you are loading only part of the page that is needed to be loaded rather than loading the whole page. It is a big advantage for companies that rely on users to browse their websites to boom their business. The faster the website is loading, the more the user will be comfortable browsing it.

• A Web 2.0 Standard
Ajax is a web 2.0 key component which was defined by O'Reilly. Using it is a big plus. Many companies hire web designers just because they are familiar with web 2.0 standards like Facebook and Flicker. After all, web 2.0 is business hype.
Ajax developers get paid more than non-Ajax developers. Few days ago from the time I write this article, a principal USA Department of Defense agency was looking for Ajax developer, offering salary of $200K a year with no taxes. That's around $16,500 (5000 K.D) a month.

• Cross Browser and Cross Platform
Ajax works on all servers, even the simplest one. All you need is a server that can show/run html web pages. Ajax can work on your local computer by just opening the webpage file!

Ajax also works with many browsers despite of some inconsistency among popular browsers because Ajax is based on open standards.

• Competes Flash/Flex
I really love Flash ever since Flash 4. But I have to admit it, Ajax in many situations, is much better. Can flash run without plug-in? Hell no! And Ajax in many cases produces a smaller size files than Flash and sometimes runs faster than Flash.

• Compatible with many programming languages
Ajax is compatible with any server-side language such as PHP, ASP, Ruby, Perl and so forth. Heck, Ajax can even work with Adobe Flash/Flex effectively by a JavaScript bridging tool provided by Adobe lately.

and Disadvantages

At the same time, there are number of disadvantage to Ajax. One is that Ajax is based on open standards. That means browsers can freely change how XMLHttpRequest works. But that can be easily overcome by a method commonly used by developers. Some consider open standards as an advantage because it is supported by many browsers and there is no vendor lock-in or monopolizing.

Another disadvantage is the integration with the browser; the common 'back' button problem with Ajax and bookmark problem. Making XHR request does not modify the history stack of your browser. Therefore, the 'back' button will have some issue and bookmarking the page will not work properly.

Conclusion

There are many advantages and disadvantages for Ajax. Ajax is neither perfect nor bad to be used as a web application. It has gained popularity among top websites and the industry seems to be agreed on using Ajax, no doubt it fueled the web 2.0 movement. Ajax has become a phenomenon that shaped the web and made the internet a happier place. JavaScript 2.0 is being developed by the time I am writing this article, we are looking forward to see what will happen to Ajax when JavaScript 2.0 is out.

(1) by Jesse James Garrett of web design firm Adaptive Path

Copyright© 2008 Kuwait University