Friday, January 29, 2010

Thank You

The end of an assignment marks the start of, not 1, but 2 assignments. The pace of this module is crazy. I am beginning to understand why Prof Ben is also known as the “evil professor”, he reminds me of Brain in “Pinky and the Brain” who harbours an evil intention to takeover the world.

I ran into Prof Ben in Science canteen in the afternoon and this was what he said:

Ben: You all are still alive ah?
Me: The entire week the timings that I left school are: 11:00pm, 11:15pm, 11:15pm, 2am.
Ben: But you look damn happy.
Me: Pain is good, it reminds me that I am alive.


The last line is a quote from one of my warrant officers in the army, who used to be in the Special Operation Force (SOF).

Working on the Facebook application has been, in chronological order, painful, agonizing, fruitful. I have to admit that our application may not be one of a very high level of complexity in terms of programming, but considering our individual background, I would believe that every one in the team has accomplished quite a bit in completing the assignment.

Initially, I was quite pleased to be working with people who have similar personalities. However, after reading the comment that Prof Ben made on Shannon’s blog post, I felt a bit worried that we might be unable to cope with the technical aspects for the assignment as there were effectively only 1.5 programmers in the team.

Reflecting on what I have done…… <<reflecting...>> <<Done - Not much to reflect upon>>

To be frank, I have not done much other than to create the Invite page (which is merely copying and pasting a piece of code obtained on the internet and changing the variables) and to come up with the style sheet for the application.

Something that I learnt about myself in this project is that I hate the feeling of being unable to contribute – really, really hate the feeling. Therefore, when I failed to get the Publisher to work, I felt so terrible that I decided to seek advice from Prof Ben last Saturday. He suggested that since I have some experience using LaTeX, it would be easy for me to learn CSS which will be critical in creating a decent UI (which I recall Prof Ben describing it as one which “cannot make it” as of last Saturday). My only regret is not being able to learn the relevant languages fast enough to help out in the programming aspects. I hope my team appreciates my contributions (albeit insignificant) to the project.

Here’s a big Thank You note to my team with whom I survived the first ordeal in cs3216.

Jonathan the Magician

You are a wizard, literally and metaphorically. Even till now, it seems magical to me how you manage to lead a team of 4 people, all of whom have little programming experience*, to churn out a Facebook application. As you have mentioned in your blog, I felt that you might have been a bit foolish to have chosen 2 Lone Rangers in your group (clearly, we wouldn’t be able to help much in the programming aspects). However, it turns out that the less we knew, kind of means the more we would be able to learn. I cannot imagine the agony that you and Cong went through to get the code to work. I apologize if I have been unable or took way too long to accomplish some of the ‘random things’ that you tasked. If only I have been smarter.

Shannon the Artist

Your artwork brought life to our application which would be dull without it and your presence lightens the mood within the team. Thank you for the coffee, snacks and ice-lemon tea, (which I have no intentions of paying back in anyway :p) After yesterday’s meeting, I know how to cheer you up le: just show you my matriculation card.


Ken the Mathematician

You are simply amazing! Your dedication to making the application work is admirable, you should catch up on some sleep if you can. I believe, in no time, you will become an excellent programmer, well-versed in multiple languages. It is mind-blowing to know that you just started learning programming only in the previous semester and you managed to be the top 5 students for cs1101s. Lastly, thank you for making the Publisher work, it is something that would never be able to figure out on my own.




*Brief background of my team:
Jonathon: electrical engineer, last computing module was about a year ago.
Ken (Cong): year 1 computing major who started programming about 7 months ago.
Shannon : accountant-to-be, non-programmer, designer.
Me : non-programmer, non-designer.

Thursday, January 28, 2010

~~ Cloud Computing ~~

I am mildly disturbed by the fact that the very piece of equipment that I use everyday has such a huge infrastructure supporting the applications, programmes and interconnectivity and I have been so ignorant about it. Prior to taking this module, I only know that I am using my laptop and I get connected to the net because of the presence of a server (which, to me, was just a huge computer with no monitor). Furthermore, I have always taken the Internet for granted, cursing when my YouKu videos take ages to load (which I now believe it’s probably due to the lack of a Content Delivery Network).

Simon did a great job in explaining how Amazon Web Services (AWS) aims to provide a permanent solution for such problems by being more than just a web-host and how the various services provided by AWS will pave the way for an IT revolution, with him as the technology evangelist. I admit that I do not understand certain technical aspects discussed during the question and answer session but the talk has nonetheless been beneficial for me. I think there are a couple of main ideas. Firstly, storing data in one location is like putting all the eggs in one basket, but with AWS, the data is replicated several times in different geographical locations, thus it is fail-proof , ‘unless there is a nuke that wipes out the planet,’ [Simon]. Next, the scale of AWS makes it possible for them to buffer traffic surges by allocating more resources to a particular instance.

All in all, having attended the talk, I am beginning to appreciate the efforts that website owners take to resolve problems such as the following: too little traffic, too much traffic, suddenly spike in traffic, server down-time, content delivery, etc. I shall end of with a quote that Simon used to describe the Simple Storage Service (S3) of AWS.

‘Never underestimate the bandwidth of a station wagon full of tapes.’


It kind of reminds me of one of my favourite quotes: “Whatever it takes.”

Tuesday, January 19, 2010

What to say when your superior demands a deadline from you?

10:40am 22/01/10 In Lab

Ok, this post is a bit late but its better late than never right? Reflecting on the previous lecture, where ex-students of cs3216 shared their valuable experiences on how to manage a team, I cant help but recall the lady's (in white glasses, i cant rem her name, help me out!) conversation with her subordinates who are programmers

Lady: When do you think you can finish the task?
Programmmer: I am not sure.
Lady: What do you mean, 'you are not sure?'
Programmer: You don't understand programmers...
Lady: But I need DATES!


This does sound like a tricky situation. I can SOOO imagine someone asking me this question in future, so I thought of a brilliant reply.

Lady: When do you think you can finish the task?
Programmmer: I am not sure.
Lady: What do you mean, 'you are not sure?'
Programmer: You don't understand programmers...
Lady: But I need DATES!
Me (with a big wide grin): I can be one.


--------Back to experiments---------

{error} Infinite Loop

First week of school has never been as slack and scary. Why slack?



Yes, 3 hours of class only, excluding the workshops on Saturday.

Why scary? By Saturday, I realized that I am in quite a bit of trouble. Prior to the workshop, I did not know what I do not know. Ignorance is bliss, at least temporarily. After the workshop, I realized there is SOOO much that I would need to know by the end of the course deadline for the first assignment that I shudder at the thought.

I am not too sure how many people feels the same way as I do. Maybe those who are not from computing will be able to sympathize with me. As one of the “Lone Rangers” of the course, the jargon and acronyms used in the lectures were especially intimidating: API, SSH, Cloud Computing, PHP, MySQL, UNIX, PuTTy, OMG, WTH, etc. (the last 2 are not computing acronyms =p ). I made a list of these terms and made a mental note to find out the meanings of these terms in Google and how they are inter-related. However, after spending several hours, I came to the conclusion that computing jargon is explained using jargon which means that my algorithm to understand these terms will end up in an infinite loop!

Monday, January 18, 2010

10,000 hours

The slide which made my heart race: 10,000 hours.

10,000 hrs = 417 days = 1.14 years (correct to 3 s.f.)

Apparently, quite a number of people read Outliers (by Malcolm Gladwell), as I heard a number of people muttering “Outliers” as Prof Ben flashed the slide. Back in December 2008, when I was reading this specific chapter of Outliers I recalled the conversation with my salsa coach.

Jw: I can remember equations and numbers very well, but memorizing a choreography is very different.
Coach: Just do it 1000 times.

He said it in such a casual way that no one would think that he is serious.

Jw (thought to myself): You must be f***ing kidding me.
Coach: Do the choreography 5 times non-stop which will take about 20 mins, take a 5 min break, then do it 5 times again. Do that for 3 hours.


At that point in time, I didn’t really believe that his method will work. It seems ridiculous, but I did it anyway. I was rather slow in memorizing choreography but after several such 3-hour-sessions, I perfected the choreography.

I guess anyone who has achieved a certain level of proficiency in any sport, game, performing art would be able to relate with my experience. However, 10,000 hours is not just about repetition. Running 1 hour a day for 10,000 days will undoubtedly increase the level of physical fitness in a person but the regime is unlikely to be sufficiently intense for one to attain a fitness level to compete internationally.

In my opinion, if there is a shortcut to success, it is clocking the 10,000 hours in the least number of days that makes people successful. When I first started salsa, I trained 5 hours a day for 5 whole months (including weekends and public holidays). No, I am not crazy, my coach is. After 5 months, I attained a standard that the average dancer will take at least 3 years to achieve if they were to do it once a week. I have to clarify that I have yet to clock anywhere near 10,000 hours dancing salsa and I do not consider myself to be “good” but rather “above average” when compared to other local dancers. The point that I am driving at is that learning curve is ALWAYS steep – Should you take a slow walk up OR sprint to overcome the steep learning curve asap?

Thursday, January 7, 2010

What I hope to learn from CS3216

Like many of my fellow classmates-to-be, I stumbled upon this course in the NUS mail. What intrigues me about this course is that, unlike most courses, one has to prove his/her worth to be allowed to take this module by writing a personal statement. This seems extremely controversial to me. I believe that none of my physics lecturers go to such great lengths to qualify a student before allowing him to read a module; it would seem irrational to do so, considering the fact that there are only about 25 students doing the honours’ programme.

The controversial nature of this course attracted me to find out more information about the course via the blogs by previous students and subsequently to attend the information session. But what really motivated me to apply for this course was the opportunity to create something original (Facebook app, Wave extension, etc), which I would not be able to if I did not take the course. Hence, in taking this module, I hope to learn some programming languages to a level of proficiency which will allow me to create simple web applications.

However, I believe this course was intended to go beyond teaching students. Rather this course offers students a tiny bit of guidance (with the workshops and seminars) and, more importantly, offers students a platform to explore and learn on their own. So instead of simply describing what I hope to learn from this course, I shall go beyond “what I hope to learn” to describe “what I hope to get” out of this course.

The filtering process of having every student write a personal statement before they are allowed to read this module implies that everyone in this course is good one or more of the following: programming, designing, selling or writing a bloody impressive personal statement. Personally, I regard this as an extremely rare opportunity to be immersed into a pool of highly capable experts with different expertise and collaborate on projects. Therefore, even if I do not learn anything (which I highly doubt) from this course, it would be an enriching experience for me, who am neither a programmer nor designer, to create web applications together with a team of passionate experts.