What have I learnt in cs3216

April 18, 2010

1. Sleeping time begins after breakfast. Working time begins after dinner.
2. Mail.app can read RSS.
3. Dashcode.app has lousy auto-completion. I type “for ( var i”, it helps me put an “f” after “i”.
4. Command line is my friend.
5. Google is my friend.
6. Firebug is my friend.
7. When doing a large poster, do switch my mac to higher performance mode.
8. It’s OK to do Cute but useless things – with impressive number of users.
9. People are different. People matters.
10. Happiness is,
Do things I enjoy with people I like.
13. Life is about choices.
14. It is just a start. Really. But I’m tired already.


I skipped the workshop?!

February 7, 2010

Woke up at 3pm+ .. I realized that I’m not able to catch the workshop today.. And I have no idea how to work with wave. That is bad.
CS3216 is good to me ‘cos it fills me with passion. Also it is bad for me because it gives me too much energy..
These days after submission of assignment 1, I started to learn something which I previously planned for next semester. Yes, I planned to spend a whole semester learning that. But now, after 4 days of reading reference and Google, I managed to migrate half of MisMatch already. And even added some cooler animations. (Those who know what I’m talking about, please help me keep it as a secret a bit longer. ) This is what I got from CS3216: never underestimate yourself. Whatever is it, CS3216 gives me enough confidence to say I can do.
CS3216 also pushes me to think. Pros and cons. Thinking makes people smarter. During this few weeks, I feel that I never stopped thinking about stuff. Even in dreams, sometimes it is about how programs will be done. However, the problem is that I will never have enough time to implement all those I have tough about. I can never catch up with my speed of new idea generation because everyday new ideas are just coming to me. And I have no idea which one is better which makes it hard to give up. Following that, I have problem with my sleeping. I told my teammates that I seem to have a lot of time because I only have 4 modules. But actually that is not the reason. The key reason is that I end up not sleeping at night… Every night we I am lying on my bed, every single part of my body is pretty tired, yet my brain is still actively thinking. I just cannot stop thinking because there are many problem left and raised up during the same thinking happening the previous night. I think about every idea that I have come up with and didn’t have time to do. I think deeply into it, imagine if it is to be done how to do it. And based on those, I come up with new ideas every night… Then, I end up spending 2~3 hours lying on my bed, closing my eyes and thinking. The effect of such thinking is: I end up to be less and less sleepy. So, I’ve no other choice but get up and do some more work. Usually I may work like this until I’m too sleepy to think. That is around 7am. And that’s my sleeping time..

Honey box – words

February 2, 2010

Enough for pics, now for words.

When I first heard the idea of this app, I think this is amazing. In China, there is a similar feature of QQ(a famous instant messenger in China) called “Friends’ impression” which allow friends comment on a user anonymously. This app even let you to ask custom questions. This is interesting.
Many people care much that how others think about them. That’s why they put on make-ups and wear beautiful clothes, to look better. However, before they get famous enough, they don’t have many chance to hear others’ honest praises and critiques. They desire to hear. But they may be too shy or feel to shameful to ask directly and even they asked, answers may not be 100% honest in a face to face situation. And there are chances that one have honest words but cannot collect enough guts to speak it out. There are worries about breaking relationship, feeling not ready. Then, this app catches the this conflict inside human nature. When feeling hesitation, take one step back, do it anonymously.
From this point of view, the app succeeded in spot a problem, find a solution and make use of social network advantages.

However, They’ve poor job on the designing of this app. For this kind of app, a clean and lovely interface will be good. But then look at their pages, ads are everywhere making real features had to spot. They may be too money driven and then lost their initial purpose. From the page, I feel that they are actually capable to make a good design. Their logo is quite good. However, they didn’t design a lovable user interface. They are capable to implement rich features. They even allow you to take snapshot of yourself and use as profile pic. However, most of them let people feel redundant.

Technology wise, they used various tools and skills. They fully used facebook api (to spam), sql and php, ajax and javascript and also flash/flex. However, the failed to make a clear and lovable user interface.

Business wise, too much business already. Maybe improve the strategy and adopt a way that uses don’t seriously feel the developers’ desire for money.

Improvement suggestion:
Allow private message between the person who asked the question and an anonymous person who answered.

They have this feature. But I really think for this app, a simple webpage will be enough….

Overall, this app has a simple and wonderful intention, but they are digging it too hard. A user may like their idea, but may feel disturbed when he or she sees the intention of making money all over the app.

Honest Box – pics

February 2, 2010

I quick step by step picture tutorial of this app:

Step1: Install

Step2: Your very first honest question, it will be shown to your friends, with you name:

Step3: Select from your friends to ask, if they answer, answer will be shown to you anonymously/. So far it seems this app is clean and ok:

Ask them and wait:

Step4: Permission issue, this is where things begin to be ugly as I kept clicking “don’t allow”:

Step5: Strangely again:

Step6: Ok, “Please do spam your friends and youself” by simply clicking publish:

Step7: Finally we get to see the main page:

With my ABP (Adblock plus) on:

They even got a browser toolbar, let's try it:
Install, better don't allow anything:
And yet they still want to you allow something:
Ok, that's it:
The search is a FreeCause yahoo search. Use it for 5 times, they will give you a HB point.
HB point is used to bribe your friend (why?) or change your profile pic in the app:

On the main page, you can ask a quick question, they provides featured questions for you:
You can also answer your friends' questions:
However, you cannot submit separately, there is one 'submit all' button below all the questions.
So imagine you have hundreds of friends asking question.

Finally, take a close look at the ad, it is about lens:

Why I feel mac is good

February 2, 2010

Some quick words on how I feel:

Mac is beautiful. But more than that.

Every mac has two level, mac level and unix level.

Mac level is the mac os x, a really easy to use, stable and kinda good looking OS. Unlike ubuntu, fedora or other linux system where you die die will encounter a situation some day when you have to fire up a terminal, mac os is mature. (The level is well enough to attract girls :p)

Nevertheless, mac has a unix kernel inside. When a user is ready to move on to the next level, he or she is able to do most of things she or he can do with linux. As for our app project, most of the time I code php using vim in terminal (Though I’m still a beginner). I may debug faster since I can ssh and vim on the server.(but that is a bad and dangerous thing to do)

My friends in IS are wondering why their professor is forcing them to do vim in sunfire while they are pretty good with drJava.

Hmm… I’m not sure whether the black screen is better for eyes. But I think, to claim my self as a future computer science graduate, I’d better be able to do it. Rainbow are there for the custom to see, but we may be the ones behind the cloud and doing magic in the darkness.

About AWS

February 1, 2010

The whole blueprint of these tomorrow’s technology, cloud computing, is beyond my imagination already. However, there is one thing I care about and I am able to imagine a bit: To use computational power as if using electrical resource.

This thing began few years ago when people were saying that all the washing machines, fridges, TVs, microwave ovens, etc. would have IP address. Supposing a computer is now controlling all electric appliances in a house, it will be cool. It is like living in a science fiction where calendars can even be made for a vacuum cleaner or a bread toaster and be executed automatically. The myth lie behind is automation and centralization of computing.

Now, we can dream even bigger, let’s centralize all PCs. Supposing there is ‘ultimate’ computer at the end of the world, then, a screen and a internet access will be enough for a person to do everything he or she is doing today with a ‘traditional’ pc or laptop. It is quite interesting that today, internet is everywhere but computation power is not. To get a good internet connection is much cheaper then get a good computer. So, what if you have a screen which runs a remote desktop on that ‘ultimate’ computer and you know that computer is fast and never crashes.

This brings up another topic, leave the things you are not good at and not interested in to those who cares it and specialize on it. An arts student really don’t have to know how to format and reinstall windows (no offense) if it doesn’t crash. But it is not realistic to pair one computer engineer with each one arts student. Thus, for now, arts students are paying unnecessary efforts to understand computer rather then use it as needed. Therefore, there is a urge for the centralize of computational power so that computer engineers and scientists can work together to provide a reliable and handy computational service to arts people. Apparently, this is better for both sides. And cloud and internet is the way it may be done. Actually it is really the same model as electricity where you don’t need to boil water to drive a huge turbine before you can charge your computer.

AWS managed to experiment this. From the talk I sensed that they are really experts there to make a good system and to provide wonder services. For a user, that is all I need to know. The technology behind is their business, for them it’s computing but for me it’s the cloud – something I can see and I can use but I don’t really need to see through. (on a end-user’s perspective. as a cs student I’m definitely more then curious about interesting things happening over the cloud)

I know there are many more reasons for AWS to be called a cloud. But for me the most important thing is that it is a cloud because it blocks something a user doesn’t need to care, and provide something that a user can actually use. And it’s huge. I know there will be a future of this technology, or concept. But I am also curious to see how amazon is going to bring this cloud down to everybody, not just big companies with big money. I feel they are also looking at this problem and that may be partially the reason why they want our videos.

Sunday, Week 2

January 25, 2010

Saturday night or Friday night, Wai hong said that I am too hardworking. Then I decided to take one day off and rest. So I enjoyed a real Sunday. It turns out that one day without programming can be quite casual. I woke up at 3:30 PM and watched a Christmas concert by Andrea Bocelli. Dinner tasted better when I was hungry and not think about php or mysql. Then I was in a conversation with my ex and the boy she just broke up with. (actually my girlfriend is also being inpatient and refused to spend weekend together with me because I am putting too much effort into CS3216) Actually the boy (maybe should not call him boy because he is year3 already..) is a really good programmer, former team leader and student coach of Shanghai Jiaotong University ICPC team. His team won during Singapore regional in 2007. But from my point of view, he should work harder to ‘enhance’ his EQ.

Then I think about myself, a shy shy boy (Hung also agree this) since 1997. During vacation, I was considering that I should become a geek first because I seem don’t have the inner quality and urgency to be so ‘biz’. And then CS3216 let me feel the distance between me and a geek. I started to doubt, if I would still be a normal shy shy student, how am I going to sell myself for a decent job? Weeks later I am now working the year4. Working with them, I keep picturing the year4 version of myself. Simply, I don’t want to be just another year 4 student.

To achieve that, I cherish the opportunity CS3216 bought to me now and devote myself into it. Wai Hong suggested in his blog that tomorrow we’ll be even older. So if I still want to do crazy things, why not start now. Every time Prof Ben says he believes in education, I feel quite motivated. For me, there are still years I can spend to seek for what I can believe in. Along the way, I should believe in passion. My father is also a university professor (on organic chemistry), he always say university education in China is a big failure and that why I am here. I guess I am also feeling that failure because my best friend in SoC of Fudan University is spending days and nights playing WOW while I am playing with terminal/console now. Then, it is good to be in NUS because there are chances for me to see stuff, to think about stuff and to be encouraged and aspired. CS3216 is such a different module, where every is crazy but enjoying it.

Prof also said contest programmers cannot write element or beautiful, well-structured and well-commented programs. At that time I looked at Hung and he shook his head. Because we both know they can. How are you supposed to code a AVL tree correctly given the short contest time if your code is not well structured? Actually, good contest programmers write beautiful code. It has been their nature to indent properly, think clearly and save constantly because they know there will be debugging and a messy program will never save time for them.

At this point I have to explain how I crashed the server.. I was trying to make our workspace tidier by arranging our pages into folders like ‘include’, ‘config’ and ‘template’. I possible cause of the crash may be that .. I typed one extra ‘/’ when doing ‘mv’ so that important files inside document root are accidentally moved. Anyway there is a lesson learned: don’t log in as root and play play…

During this Sunday I also looked into the things we’ve done. Interestingly, I can hardly acclaim any accomplishment for myself though all my fellow members agree that whenever it involves programming there is me. The web pages are done by Wai Hong. The database is done by Wai Hong. The flash is done by Li Yen. The writeup and some designing are done by Hong Jun. Then, nothing left for me. So I dig into my memory to search what did I do. Um.. I crash the server..

Actually, I looked through wiki and tried out fbml, fql and css on our helloworld app first, but later we created a new app. I managed to do a profile box showing friends using this app, but it is to be deprecated. I created (actually li yen created it but I made it work) a new user on ec2 and changed the owner, group of the app folder. So that we can ssh/putty into that user and not worrying about blowing the entire server. I helped to set a password for mysql and restarted apache so that phpmyadmin can work. Unfortunately I was the one who is most familiar with UNIX because I am using mac..I recoded the post-authorize/remove because for strange reason Wai Hong’s version didn’t work. I coded a login part in header to fresh some info in database. I suggested the flash to php then to database model and did quite a bit googling to make the flash-php authentication work and I coded the functions in flash and the php pages used for the game to connect the database. (actually that is quite similar to ajax, but we still need other ajax for the aspiration, so I proposed a ‘see other people’s achievements’ feature which can be implemented using ajax)

Um.. Look like a lot of work has been done by me. However, I can hardly point on some where of the website and tell my girl friend that this is done by me. I may be a backstage star. But I am enjoying it. My fellows want to learn flash and actionscript so that they can help li yen with it since it is the crucial part of our app. I also want to study flash, especially flex. However I feel I cannot. Because when I think of so many things that has not been done, I cannot leave them there and go play with flash. Wai Hong said he wanted to be hero and fix everything in one night but he cannot. I feel the same, but I will be doing. For many times I intended to say “You leave every thing else to me and take your time to make our flash as fancy as possible.”. But then, Prof said CS3216 is about learning. It may be the best if everybody can know all after this project. If so, how to do software engineering. Actually, I believe in using the right person to do the right thing. Like me, from my contest programming background, I am good at doing these backstage things which requires some logical thinking and some problem solving technics. Sad thing is that this is project to learn stuff, but also, this is a project with a deadline. I am already feeling guilty that I spent one entire day sleeping and doing free chatting.

OMG I’ve written so long. If thinking and blogging can make things done I also prefer colorful windows to terminal and vim. Unfortunately, only 4 days left and many important things are not done yet. What is worse, tutorial starts today.

Um.. better go and work even harder..

The first week

January 19, 2010

This should be my busiest week 1 ever. When I look back I cannot even remember what I ate for dinner everyday, all that I can think of is that I was sitting in front of my screen, reading through wikis, screwing up things in terminal, having long long meetings and so on. And then I was too excited to blog.

This module is quite unbelievable since the first lecture. Seeing a whole bunch of success people, I was feeling lost. There are good programmers, good designers, good talkers and good writers. Being a shy shy boy, how am I going to sell myself? Subsequently, I was having problem during grouping. The question I asked myself was, what can I contribute if there are both better programmers and arts people in the group? Anyway I joined a group with only two people just the night before deadline.

Ooops, all three other member of my fb app group are year 4s. I would definitely be the one who is totally blurred …Then Prof Ben say ” all A+ student can do it”. After that my sleeping time started to shrink :(. And now, fortunately, I am able to make things done when year 4s are somehow blurred, yeah!

And it is good to be year 1 because when I screwed up the server I was not blamed and when it comes to work division my task is to do ‘freestyle’…I feels so good that I am in group where the year 1 can actually do things and be quite helpful.

For the app, we have decided on the features and database kind of things. The last thing before we start working overnight is.. everybody go and learn some flash.

Em, I feel I enjoy more when I am screwing up the server than when I am blogging..

What do I hope to learn in cs3216

January 8, 2010

What do I hope to learn,

When I first considered this question a few weeks ago, I found that I can hardly  answer it. The reason is that I know nothing about this area, about web and about web application. Then I started learning stuffs little by little through internet, mainly W3school tutorials.
At that time, I was hoping to know main concepts, what this area is about, what are the things behind web pages and what I can expect to learn or I need to lean in this area. I wanted to lean everything but I had no idea what did this everything mean.

Then I got to know a bit of html, css, php, javascript and mysql. I got to know that there are server script, client script and things working in between like AJAX. However, I just know them on the surface level.

Now, with respect to 3216, my answer to the same question is just: I hope to learn more.

  • I hope that after this semester, when a see a webpage or a web app I can have some ideas if I were to build this webpage how I would do it.
    • More specifically, I hope to understand what technics are used and how these tools are gracefully and brilliantly utilized to accomplish jobs.
  • Besides, I am expecting joy and fulfillment from teamwork in cs3216.
  • I also hope that cs3216 can expose me to the beautifulness of network and help me decide my future focus.
  • Most important of all, I am expecting a wonderful memory with 3216 in this semester.