The *real* final blog

16 November 2011 at 00:00 | Posted in Uncategorized | 1 Comment

OK, after reading about 30 blogs I feel that I really need to redo my final post. Why? Just read through =)

Reflection Delusion

I thought I have been doing “reflection” all the times, but that’s not exactly what I’m doing. I’m just sharing what I think I should have got during that week. The thirty blogs that I read, mostly talked about their great experience with other people, with the new coding skills they acquired, and the new thoughts of how life works. For me, I didn’t actually experience great things. I just feel that everything works as it should be. I didn’t have vision for ALL the three assignments (+1 review) I had, as I didn’t really believe on the products I were creating (or reviewing): KilometerStones, VNC Viewer, mQueue, and Yunreading. Then why is it so? I think that’s because of my thoughts on other people comments. I get easily discouraged and give up, given some strong counter arguments that I couldn’t counter back, which might not even be too strong, if I just willing to do some more research. I apologize for all my teammates during this course, apparently I was just being a good (yes, I should not say that I didn’t do good work) clockwork without soul. I really need to endure, I think I’ve lost my endurance this semester, if I compare it to last semester endurance, where I could do a lot of things for CS3217 coding.

Don’t take things for granted

The subtitle seems cliche, but I really literally took things for granted. I didn’t regard all the new skills I got in this module as something that I can say “learned through this module” although apparently it is. Given my nature that’s quite hard to try new things on my own, definitely being given assignments that require new skills is really helped me, so I really learned something from this module. I took it for granted, as if it’s just what naturally I should be able to do, when I learned how to setup LAMP server on Amazon (thanks to Cong Hoang’s blog for the term LAMP), URL rewriting, working with Facebook APIs, using Sencha & Jquery, and the ability to think about values on top of money (thanks Shaohuan for reminding me). Probably due to my lack of interest in the products that I didn’t regard those new skills as something, although it might be due to that I’m built to do things more than that. I hope it’s the second one.

Working with other people

I’ve never been purposely looking for coders in my team, but apparently except for my cloud assignment, my teams were all-coder team. I feel really sad about this, looking at other groups which work with different kind of people, I work with coders again. Although for the all-coder teams, I took a bit of role as the manager, which might give some lessons for me to put more interests on the products. And talking about “other people”, it reminds me of my talk with Prof Ben during poster session (which was quite touching, according to Yingbo), that this module is about the “real-world” part of software engineering, on how to sell the product to other people.


So overall, again I say, this module is really great, great in the way that it’s actually touch many parts of your life, not only coding, not only designing, but also moral values and how you look on yourself. And a big thank you for Prof Ben Leong for conducting this module! Really appreciate all your hardwork and ideas for this module, thank you for doing something that you think is good =)


If anyone, then, knows the good they ought to do and doesn’t do it, it is sin for them.


The final blog

8 November 2011 at 20:35 | Posted in Uncategorized | 2 Comments

As prof Ben having the last lecture, I will have the last blog post for this module.
First let’s revise my wish for this module, taken from my first blog:

But nevertheless, from taking this module I hope I can be better in managing and doing projects (technically and non-technically alike), especially group projects, know more great people (techie and non-techie alike), and that I hope this module will take me more closely to the real world projects. And the best thing that I expect to have after taking this module (or better say this semester), is that I will have better time management. I can feel that even before the school starts I have already been busy, which was caused by my lack of time management.
And most importantly, through the mentoring from the teaching team, lecturer (it’s Prof. Ben Leong!) + tutors, I hope I can learn from them eye-opening values of life that are aligned with my views. =)

I was quite surprised reading that, but it turned out that this module fulfill almost everything!

The Facebook and cloud assignment gave me more experience on working on technical projects. The app review taught me more on speaking to non-techies. The whole module gave me the chance to meet great people, and also the external speakers were really close to real-world projects. My final project helped me to manage project, people, and time well. Although I learned it the hard way, as I don’t feel I was really successful in managing my time this semester, although it can’t be verified, as I won’t know what will happen if I did otherwise. I hope I can really remember what I learned.

And as I am listening to Prof Ben last lecture, I learn about life values on choices, which is what I said in a few last blog post: life is about creating values. And I believe that as long as we still have some burden on one thing, and that we, or at least our close family and friends said, are wuite capable on doing it, then we must do it.

And hence we need to find the thing we should be doing.


Project and Time management

28 October 2011 at 11:15 | Posted in Uncategorized | Leave a comment

Clearly having two projects + UROP at one time is a heavy load, and it might impose harm to your mental health by stressing you out through things that apparently doesn’t have any power to stress you out, if you don’t focus at the size of the problem you have. Set aside one time to manage the priority, then focus on one work at a time. Then it should not stress you out, at least not as bad.

Now, let’s reflect back to my projects.

I’ve been wasting time since the start of the final project of CS3216. I think it’s because I didn’t put the correct priority to my projects (other modules as well), so that I was so unfocused, switching projects from time to time. That caused some 8 hours of accomplishing nothing, although I still learnt something from it, which is this post.

Another point is that I didn’t put myself in the correct position in the team. Considering that I didn’t have much time to code, I should not really be stressed out to think detailed code of parts not mine, although I should do care about the progress of others. And somehow I feel that it’s quite fun actually to be a project manager, which is to know the big picture, and might sometimes give detailed instructions (in this case, the project size is quite small, so it’s possible).

And about UROP, I really learnt something from this: Find the clear purpose that can help you be enthusiastic about the work and not only that, it can also help you determine what to do, especially in research context. I was having a few months of zombie work, doing something but was not really sure why I did that.

So, let’s have a clear purpose for everything we do.


Inspirational Talk

10 October 2011 at 22:55 | Posted in Uncategorized | Leave a comment

The ninth week of the academic year in NUS has come.
Most of the modules have finished their mid term exams.
Yet there is still one module with absolutely continuous assignments.
I know you can mention it: CS3216!

Really, it’s like never ending project. I feel like exhausted already with all the projects and this thing called “Other modules” as well. And it’s not even complete without my UROP project, which doesn’t seem to have a good progress.

Yet I still came for the CS3216 lecture. Fortunately I believe that every lecture that Prof Ben conducted has a value =)
For this time, a talk by Zit Seng. I previously knew him because I need to have an account for CodeCrunch ( as part of my job for CS1020 TA.
From my view, I would say that the talk is about “Things to consider when your app dies”. While I already knew some of the items he talked about, there are a lot of things that I could learn (from “don’t know” to “heard before”) about what build an app, from as low level as syscall and as high level as load balancing.

Actually I was quite surprised on the many things that we can try to optimize. And even more amazed to see that actually Zit Seng knows them all. One important thing that I learnt from today’s lecture is that I can realize that there are really a lot of things out there to be learnt. Hope this will give me more motivation to do future projects, to apply those interesting theories based on experience =)


This week reflection

30 September 2011 at 10:11 | Posted in Uncategorized | 2 Comments

I read the peer appraisal about a few hours before entering the class. The bad points are basically those things I have heard before: not dividing work properly, doesn’t really speak up, etc. Seems that I’m not improving a lot on that parts :/
But thanks for those who pointed that out, those things remind me to keep struggling defeating my old body =)

One surprise this week is when I read blog post by a student in CS3216, which is supposed to be his last blog post for this module according to what he said. He decided to go and develop products for adult industry, although I think he will not do it in the scope of this module. Yes, by adult industry he meant those things that would be labelled “Mature content” or “Explicit content” on many websites. He did that openly, and furthermore it is supported by at least one person, who commented on his blog (not saying about Prof Ben’s comment)

It is quite surprising because, despite Prof Ben’s warning on the no porn no gambling policy, he still posted his idea on this topic. I think this is quite something that we can call: rebellion. I, and I know that a lot of people, are against development of product on adult industry, as that motivates humans to do whatever they want, not considering the moral and ethical values. This will definitely bring people to a materialistic and further inside: hedonism. This will not create value to the community, as this will just make people more egoistic, fulfilling their need whenever they feel they need it. The statement “adult industry is on the rise” again shows that this world is really going toward the aforementioned life. And it is happening now, as it becomes more obvious from people’s conversation nowadays.

This is horrifying, and I hope and pray that there will still be people radically against this kind of behavior, who are willing to fight against this kind of thing.

Anyway, back to the scope of this module, he said that this module CS3216 is a huge disappointment. I think this might be some of the cause that he posted his last blog post. Despite the learning process that Prof Ben has tried to give us, he might be looking for something else that he will not be able to found is this module. That’s what Prof Ben’s trying to capture with his comment on his blog post. For me, this module at least teaches me how to strive to do tasks that have been assigned to us. And at most it teaches me that there exists some good framework and knowledge treasure out there in the world, but I just don’t have time to explore more on those things, caused by too heavy workload of my semester now. I definitely am taking too many commitment (not just MCs) this semester =/


Discussing Poor Jeremy Low

16 September 2011 at 00:13 | Posted in Uncategorized | Leave a comment

Being a little bit enthu to write tonight, I decided to make use of this enthu to the fullest: writing two blog posts =p

One sentence from me before continuing: The story made me feel the frustration Jeremy experienced.
One question from me before continuing: What is exactly Fan Gang? It’s just mentioned two times from the whole PDF, and yet the file name is Fan Gang. Is it the name for the Fan Club app?
One definition from me before continuing: I put negative points in italic and positive points in bold

OK, let’s start answering questions writing comments about Jeremy’s final project for CS3216. Let me introduce you to some definitions. I will write the topic, then a score – my opinion on how good their decisions were -, then the explanation. And, since the assignment page is quite long, the answer will be quite long as well.

From idea-first to team-first

Score: 9/10

Personally I think both are applicable, you just need to find the suitable team/idea to match the idea/team. So, given that they have changed team and changed ideas, nothing wrong, this is just still the start. But still, actually they can just change one of them, so getting new members while having the old ideas. Well, maybe they’ve discussed with the new team members and decided to change. So it’s not fair to judge them at this point. =)
About the quote:

It would be really bad if we have a great idea but are unable to execute it successfully

I disagree. The correct one should be:

It would be really bad if we have a great idea but unable to give our best to really show that it’s indeed a great idea

So, ideas are important, without that we cannot implement it, but execution is also important, because without that the ideas will go wasted.

And I was really wow-ed by the contacting of start-up companies. I’ve never thought of relating “outside world” with school for a project. <– This sentence should get many objections =p
Anyway, it’s good that they can still find some members =)

Another Life

Score: 7/10

Actually the questions are the basic and fundamental questions to be asked during a project meeting, it doesn’t show any directionless state, but nevertheless, it can be made such, and usually people with ambition (I infer this from reading the whole story), will do so. So I think this is quite normal, but they need to see the circumstances and restrict themselves to discussing too detailed points. But I feel something is not quite suitable for CS3216 project at this point. A good Another Life will require a good graphical interface, or if not, an extraordinary ideas to implement it without good graphics. Anyway, they can still argue to implement the most basic features, but considering the perfectionism, that case won’t be likely to happen.


Score: 5/10

Starting from this points, the team showed over-ambition of the project’s features. Project like Another Life, like Dr. Ben said that time, should be doable, at least the main features, with some conditions, as I said earlier. Another negative point is to have another point of focus, which is the Fan Club. This clearly provides “way out” from the difficulties faced during the implementation of Another Life. This is really not good. I prefer digging out more creativity to create the project more doable to changing the project. As said, changing project wasted all the time used for previous project, so it should be supported by really good reasons.
About the question:

What have I learnt from Facebook so far?


It’s a good reminder for us, developers, to have good documentations

Another Life vs Fan Club

Score: 5/10

Comparing these two projects, both have their own plus and negative points as seen in this table:

Another Life Fan Club
+ point bigger game, which generally means more things could be done to make this more fun Considering the nature of people to gossip others, this might be a good idea
– point Requires really good graphics and too many UX details to be considered for CS3216 project As Prof Ben said, it’s already there by default

And so, since Another Life has a lot of parts to be worked on, they can actually make a really simple working prototype that might look like Neopet, which is just a simple image and clickable area on it. I think that’s already good enough =)
Again, I’m against changing project, because after changes, we need to reconfigure our minds, mission, milestones, coding environment, and humans tend to not just throw away their previous work, so they might reuse the first project, which might be worse than building from scratch. Also the feel that the project is starting very late makes people to be in panic state. It’s okay if the members can withstand these consequences, but it’s difficult. They could have (ugh, don’t really like the structure “… could have …”) reconsider Another Life and think for another implementation, like I suggested earlier.

Dividing the Work

Score: 7/10

Although the consultation session is used for project discussion, the general division of the work I think is quite good enough. Presentation and implementation are separated, that’s good. The problems are, as mentioned, from the incorrect decision of the division of the coding. Putting that aside, all the consideration done for the poster session is well done. It looks really like to come from a perfectionist, and it covers all the basic things it needs to cover.

Screwed Coding


As explained, the separation in coding might not be a wise decision. Some of the problems have already been mentioned in the file: not considering more details. This problem is quite “hidden”, i.e. you will actually know it after coding up to some certain parts, although it can be predicted by experience as well. Not focusing on the main features also one of the major unwise decision, although that’s a common pitfall in programming, similar to having to much concern about far future optimization. But that’s good that they actually learn something from it.

Lamentation and Forgiveness

Score: N/A

Having an unfinished product one day before the deadline of the deadline is really stressful, discouraging, pity, and all sort of things combined together. If I were Jeremy, I will prepare a letter of apology to Dr. Ben, asking for forgiveness, having unable to do the coding myself. Lamenting on why I didn’t press the others to keep up with their duties, although if I were able to do it, I would do it myself. Sometimes personal problems are inevitable, but still, we have some expectations on them. Arun should have at least tried to do something. But as far as Jeremy’s point of view is concerned, I don’t think I can do anything to insist Arun to work on it. Pressing will not do any good, it will just make things worse.


So, overall score is: 38/60, or about 6.3/10. Not really bad, but definitely not meeting the expectations Prof Ben had set. What I learned from this case is that There are a lot of factors that build up the cause of so-called failure. But, we must remember that CS3216 project is not your whole life! We will definitely do better in the future through this bitter experience, if we learned through it. One more good point here is that:

Having a seemingly worst project might be helping Prof. Ben to set an assignment in the future. So, don’t be too discouraged! =p


Helping the Mad Fireman

15 September 2011 at 19:25 | Posted in Uncategorized | Leave a comment

Here I am, ready to help the Mad Fireman with the design of the website =)

The first think I notice about the app is the four “flags” on the top right hand corner of the app, which shows “Badges”, “Profile”, “Stats”, and “Invite”. They are not straight! Even if they want to make it aesthetically beautiful, I think that’s way too slanted. Users might have not used to it, and it’s quite difficult to read the words some more. Maybe they can make it less slanted. Then there you go, a beautiful button flags. =)
One more thing, I think the button is partly covered by the page on the Project Page.

Now let’s go to the real function of this app, namely “Calling Help”. The big input text and the button is simple and nice, clearly supports the intention of this app to assist people calling for help. But I think the sentence “need quick help?” below it is quite misleading. I will think that it’s a different part of information that I should fill, because you have “I need help with” and “Need quick help?”, which look like differentiating the two. But then I see that there’s no button near the “need quick help?” part. Hence the confusion. I will not feel right to fill that one and then press the button which is up above. And I don’t think the image is necessary.

The part “Who do you want to ask” also misleading. I assume that it’s supposed to be exclusive options. Because you cannot select “All friends” and “Only specific friends” at the same time. But the checkbox is confusing me. I don’t know what should I do to call only for specific friends. And the “hide” part is more transparent, maybe to illustrate the “hiding”, but I think it made me think it’s unavailable.

Next, the three additional publicity options. Personally I don’t think I’ll want to send SMS to my friends through Facebook, it feels like spamming and unsafe. Furthermore, there’s no explanation what will happen if I choose the options. Maybe there can be some explanations about it. And I personally think that should be an opt-in rather than opt-out, because this is additional options

And we’re going to the Overview page. One thing I note after looking through all the screenshots is that “Where can I see my project?”. And after looking for some time, then I found it in the overview page. I think this is a big drawback, as I will want to check my project often to see whether I get a useful help or not. Since this is one of the most important thing, and maybe the most accessed part of the app, I think the list of our projects should be given a more attractive, visible UI, so that users will be able to see their projects.

About the “news feed”, personally I think the size for the content is too small. The size for the picture, name, dates, and all other miscellaneous things is bigger, hence reducing the user’s convenience to read the comments.

I think that’s all the critiques I will make for the UI of this app. As Prof Ben said, “I can see whether a UI is good or bad, but I don’t know how to create good UI”. We can easily judge UIs, but don’t know how to create a good one. Maybe after implementing all the suggested improvements above, the UI gets worse, who knows? =p


Project for Value

7 September 2011 at 05:08 | Posted in Uncategorized | 1 Comment

What kind of project do you want to work on?

Again, yesterday we were faced with numerous projects that were trying to give values to the community.

The one trying to give most value I think is the one from Dr. Dana, the AED locator. I said trying to give the most value because I know every projects down there were giving their best to give values, but I think this one is just seemed to be most realistic, maybe because it’s related to saving lives. And for a side note, this one helped me to give some ideas for my UROP project, which is on Curated Database.

Some other projects, such as YouTell, Chalkboard, Module-review, I saw as the good project-for-value. They identified some problems and tried to solve it elegantly, I love elegance =).

There’s saying in Indonesia, “Tak kenal maka tak sayang” -> “If you don’t know it clearly, you won’t be able to like it”. Honestly, I didn’t face most of the problems trying to be solved by the projects during the pitching session, that’s why I cannot appreciate the projects enough to be working on it. But maybe for the AED project, since it’s about life, I think we all care about it. That’s maybe the cause for it to get the best applause (it did, right?), although the running out of battery of the AED is really a negative point, with obvious reasons.

What do I get from this session? There are people, comparable to us, solving real problems, so why we cannot solve problems as well?


iPad App Seminar: The beat of information (Pulse News)

31 August 2011 at 09:49 | Posted in Uncategorized | 10 Comments

Things to be learnt from Pulse News:

  1. News is two-dimensional
  2. Basic features should be focused
  3. Accepting donations is not that bad

News is two-dimensional

Why is it? It’s because news can come from different sources, and each sources usually have more than one news.
I’ll just think of this as multiple RSS feeds combined together. This is particularly a good point that is brought by this app since people that are reading news probably have their own favourite news source, and hence want to see the updates from that particular source, but forgetting that news from only one source is often biased. Hence I personally think that multi source news is quite good. One improvement maybe to have the feature to show related news from different sources, that will reduce the bias.

Basic features should be focused

As what it’s already said repeatedly by almost every people commenting on UI design, the basic, main features that our apps provide must also be the first thing that users will use after first downloading our apps. I would say that good UI is hard to design, and hard to notice (it’s just natural), while bad UI is easy to design and easy to notice (I mean, users can easily see the defects in the design). Something that is easy to be obtained is most like not more valuable that something that requires hardwork to be obtained.

With the nice UI and careful design, I think most users will just naturally use Pulse News, without getting distracted by the navigations.

Accepting donations is not that bad

Why donations? It gives the way of converting good deeds into money.
People liking and touched by our apps may want to express it to the developers, but how? The answer is clear, donations.

That are the improvements from the group presenting this app. The presentation is quite good, although I would suggest that the first part of the presentation containing the unrelated slides just needs to be removed.

Learning through Pulse News

Learning the good, simple UI Design is one thing, and learning to see what people really need is another thing. The presentation again reminds me on designing apps that are useful and create values for the users.

I personally think Pulse News promotes learning. Here by learning I mean the process to be more knowledgeable, which is through realizing the real-world news (or I would say problems) and not just be an isolated geek. Only then we would be able to solve problems, which is what we are supposed to do. Afterall, why do you need to live if you don’t solve problems? Problems are already there in this world, and without our participation in solving it, our lives will be useless.


Swift vision shift of a drifting ship

26 August 2011 at 15:04 | Posted in Uncategorized | 3 Comments

How many times have you read the title before you come to here? =)

The title simply telling the whole this I want to write here: quick change of vision of my life.


I have been solving problems, here I am talking about school problems, since I entered primary school, as that’s what I should do as a primary school student

I have been solving problems, here I am talking about mathematical problems, since my junior high school, as that’s what an olympiad participant should do

I have been solving problems, here I am talking about computer problems, since my senior high school, as that’s what I should do as I wanted to do programming

I am still solving the same problems, here I am talking about all the problems above, but that’s not what I should do as a university student.


What then should I do? I should be solving some real worlds problem! Either it’s in my major field as a computer scientist, or in my minor field as a mathematician, or in any parts of my life.

I might have been closing my heart and my mind toward this thoughts previously, because I’ve just realized that this is what I should be doing, just now.

Maybe Prof Ben comment was one that triggers it, but saying that, I think Prof Ben has already been talking about that since I’m in CS3217. So there must be something else different from me. Something that changed me over the holiday. =)

And so now I have this vision to solve real problems. With hope I’ll be going through this path.


“You are here to create values”


Next Page »

Blog at
Entries and comments feeds.