Wirawan Winarto

Microsoft Student Partner
See also: Other Geeks@INDC

December 2007 - Posts

What I Have Done Through This Year

This year is full of crazy stuffs that will be remembered for my whole life. Here are my short reviews about what I have done through this year.

  • The journey started back on February 2007, I met Umar for the first time and began to know about Imagine Cup. A very nice way to enter the world of .NET.

  • After that, I led my team, Garuda, finished third on National Imagine Cup 2007 - Software Design Competition. We developed a cool project named Cakrawala. Despite it is a very good idea, I admitted that it was an immature project, but luckily we executed it well.

  • Some of my other notable achievements are : I took my team represented STT Telkom on the National ACM ICPC 2007, also went through to the Asia Regional ACM ICPC 2007, semi-finalist of Indonesian ICT Awards 2007, and at last finished third on Pimnas IT National Algorithm and Programming Contest.

  • A way back, I was chosen as Microsoft Student Partner for STT Telkom. I delivered my first talk on MSP Gathering about Project Hoshimi 2008. So far, I have talked on some campuses about Imagine Cup. Being a Microsoft Student Partner is always a wonderful experience for me.

  • I started blogging here on October 2007. My first post does not getting much attention and I also have no time for blogging after that. Only after the second post, this blog is getting a bit popular. I have two hopes for the next year : posting some technical posts and watching English Premier League. Until now, I am too busy to do either of them.

  • I stepped down from my position as Programming Club vice-president by the end of this year. The guy who replaces me is also a .NET freak specializes on Microsoft Expressions.

Of course, there are still more things to do. There are also still more challenges ahead.

Wish you all the best for 2007 and... may the Force be with you!

Share this post: | | | |
The Evaluation Is Not So F#-ing Lazy

Everytime I write F# down. It looks like a swear.

In functional programming languages, lazy evaluation is a well-known feature. The opposite of lazy evaluation is a strict evaluation. In a strict evaluation strategy, the innermost expressions are evaluated first. While in a non-strict evaluation strategy, the outermost expressions are evaluated first. Look at this easy example :

The advantage of strict evaluation is clear, it is more efficient since all functions are only evaluated once. Meanwhile, in non-strict evaluation, the functions like g(1,3) above sometimes are evaluated twice (or more). Inversely, non-strict evaluation is considered more expressive, for example it supports infinitive data structures, etc.

Hence people came up with a solution called lazy evaluation. Lazy evaluation is a form of non-strict evaluation, but it uses memoization, to work efficiently. Memoization is a way to remember the result produced by an evaluation. The results produced are shared across the functions so that it does not need to evaluate the same expression twice. Another advantage of lazy evaluation is it only evaluates a function that is necessary, while in strict evaluation strategy the same program may loop forever or crash during the useless calculations. By avoiding unnecessary calculations, lazy evaluation can work faster.

There are some disadvantages of lazy evaluations as well. One of them is the difficulty to predict the complexity of program. It is because sometimes we cannot predict which functions are evaluated and which functions are not. Thus it is also makes errors harder to debug.

Strict evaluation is used by old functional programming languages, like Lisp and ML. While lazy evaluation is used by newer functional programming languages, such as Miranda and Haskell. How about F#? Fortunately, F# gives us both alternatives to choose. F# does not do lazy evaluation by default. It allows us to easily create a lazily evaluated function by adding the Lazy keyword. It also allows us to build a lazily evaluated functions on the top of strictly evaluated functions. Look at the meaningless code below on how to declare a laziness :

This is just information, not tutorial. The manuals will help you more.

Share this post: | | | |
I Am On ACM ICPC Asia Regional 2007

After a week without blogging, I want to inform you my activity.

I am currently representing STT Telkom on ACM ICPC (International Collegiate Programming Contest) Asia Regional 2007 at National University of Singapore. We took off yesterday morning to Batam and enjoyed one-day sight-seeing there before taking a ferry-ride to Singapore. This morning we met with other contestants from South East Asian and East Asian countries for practice sessions and some public lectures at National University of Singapore - School of Computing campus.

We do not set any target, since this is our first participation in such a big event. Meanwhile, there are contestants from some universities in some countries like Japan, China, Korea, Singapore, etc. that surely are more experienced than us and more prepared for this contest. They have professional coaches, great teamwork, and much experience from past competitions. Those are things that we do not have (it is Arif with me in the photo below).

Just like Imagine Cup that is sponsored by Microsoft, ACM ICPC is also sponsored by big companies, such as IBM and Lenovo. No wonder if all contestants were asked to attend a lecture today about IBM's RUP (Rational Unified Process). Lenovo also demonstrated their products and offered SGD 3000 (about Rp 20 million)-valued laptops as additional prizes for the winner of this contest. Moreover, National University of Singapore also gives priorities for the winners to receive scholarships for continuing their studies in Computer Science and Information System PhD. programs there.

The contest starts tomorrow. We will strive for best. Hopefully God will be kind enough to give me miraculous touch so that Indonesia can win this contest and I get the laptop (dream on...).

Share this post: | | | |
Posted: Dec 13 2007, 04:45 PM by wirawan | with 9 comment(s)
Filed under: , , ,
Unpad Imagine Cup 2008 Roadshow

Twenty years ago... just kidding. It was this morning.
We held an Imagine Cup 2008 Campus Roadshow at Padjajaran University (Unpad). The event itself is considerably big, since it was attended by 105 students from D3 programs of Computer Engineering Dept, Informatics Engineering Dept, and Informatics Management Dept.

There were four MSPs on duty : Ronald (ITB), Sultan (Unpad), Dira (Unpad), and me (STT Telkom). Besides us, there was Umar who helped us deliver our speech.

The first presentation was delivered by Umar. He talked about categories in Imagine Cup, starting from Software Design until Photography. The presentation did not quite work as we had expected because there are some problems with our laptops.

I talked next. My speech is about Project Hoshimi. I did about 10 minutes introduction and continued it with a demo of Project Hoshimi 2008. And on the last part of my presentation, I expressed my optimism that Indonesian Hoshimiers can reach worldwide final next year.

Why? I showed them this chart showing our positions in the last three years :

You see, we are going up. Every year is just getting better.
So I think it is reasonable enough to expect ourselves to go to the worldwide final next year.
For your information, there will be six teams who compete in the worldwide final, which is only one step further from top-12 round we had reached last year.

The last presentation was delivered by Ronald. It was a demo of Expression Blend.

Thanks to Dira and Sultan who had worked hard for this event. Thanks for the "wayang". Thanks for the lunch, as well. I never thought that Unpad had such a big enthusiasm on Imagine Cup. Hm... Is this a sign that one of Imagine Cup winners will come from Unpad? Let's see.

Share this post: | | | |