Sunday, 18 April 2010

What I have learnt in CS3216

I believe that this sem will be the most impressing sem I will have in NUS.

Not only because I have learnt so much, but also because I have made so many friends with the most brilliant guys in NUS with who I can share the same interests. Without them, I definitely can not survive in this sem. They gave me technical support and taught me how to be a software engineer. Before this module, I totally have no idea about how to develop a web app or a website. I learnt from zero. Fortunately, all my teammates gave me a lot of help during my learning.

Prof Ben has been my faverate prof in NUS. I like his philosophy, I like his "修身,齐家,治国,平天下。" Actually, that's my way of living. Now I'm still at the first stage: "修身". I really hope in the future, I still get chances to study from Prof Ben.

Thank you all the people in CS3216.

The most basic thing I have leart in CS3216 is programming skills. I have never done a web app or website before. I have never used languages like PHP, HTML, CSS, AJAX and so on. I learnt from how the data is transmitted between browser and server, and how the browser and server translate and display it. Then I have to learn how to write a program to do what we want. The knowledge itself is not so hard. what is hard is that you must learn it in a very short time and use it immediately without much practice. No textbook, no tutorial. Google is your best friend. :]

Now I want to talk the most meaningful I have learnt in this module. It's thinking. Think of a good idea and realise it. I had never thought about to do some facebook-like things in the past. I like reading IT news, analyse what is going on, and how the big company like Google and Apple is changing the world. But I felt all these things were far away from me.Except follow them closely, I could do nothing. However, in this module, my feeling changed. I feel that if I really think hard and hard work, I really can do some meaningful things, and change something.

I like our final project. Althought finally, we only show a website "Weiguan net". But the whole progress of it is more meaningful for us.

At first, we want to do a Iphone game. We designed a big game. We wanted to syncretize some original and interesting small games into a huge cultivating game, using little P2P. When we were doing one small game called "finger breaker", we found it is more interesting and there was no such game before. sSo we decided to focus it and make it complete. We designed many stages and rules for it. Everything went well and we were full of passion. The turning point is the meeting with Prof Ben. Prof Ben gave us a lot of good advices but also made us to doubt whether "finger breaker" is really a good game. We wavered. We decided to do a SNS website. Weiguan net is our idea. Weiguan(围观) is a very popular idea in China now. Many university students are interested at Weiguan. We want to make Weiguan net a SNS website which is events-centered, different from the existing SNS websites (i.e Facebook, twitter). And we wanted our users not only to record the evernt, or comments the events after the events, but also to predict before the events and broadcast during the evetns. While doing the website, we found it's to big for us, and no important point to popularize. Again, we decided to focus on small point which we think more important and interesting. So we focus on broadcasting, which we finally show in the final show and talk.

I like our idea. After so much, I got 3 points. Firstly, as developer, we can't imagine what the users will do. We must do a lot a lot of research to find out what the users will do. Secondly, start from a small point, don't try to do something big at the very beginning. Thirdly, Do marketing. It's means little if we only do something for fun. Lack of experience makes us in chaos all the time. That's what we will continue to learn and do after CS3216.

I feel very pity giving up our Iphone game. It's an original and interesting game(at least I think so, no matter what others say). We will continue to do it in the vocation.

CS3216 never ends. It's just a beginning. Thank you.

Tuesday, 2 March 2010

Thinking about Team Dynamics

Nobody want to fail, even though it is said that failure is the mother of success. But failure is an inevitable thing we cannot avoid. The only thing we can make a change is to decrease the frequency of mistakes and avoid the same mistakes that we or others have made before. It is the so called standing on the shoulder of giants. This makes the story of Varsity Chronicles meaningful.

This is no doubt that Varsity Chronicles has failed. But the good thing is that its story is not a stupid one. It's full of passion, efforts, creativity and friendship. But I'm sorry that real life is not like fairy tale. Happy ending is really very hard reach. Lack of large contemplation, detailed plan, faithfully implementation and perseverance makes Varsity Chronicles failed eventually. The two sides of this story make it more valuable for us to think carefully.

Perseverance is the most important!

I always believe that with perseverance, people can do anything, no matter whether they are smart or not. Focusing on one thing and being perseverant to do it, failure cannot happen. This is also the main reason why Varsity Chronicles failed. At the end, almost all the team members of Varsity Chronicles could not insist. With all kinds of excuses, they gave up finally. I agreed that they faced many difficulties. But difficulties are the most normal things. Before they began, they must had expected. No matter it's part time job, or morning class, all are excuses. The real reason why they could not insist is that they did not really love and believe their project from their heart. During the semester, they had pressure from CS3216 and except staying in Campus, they had nothing else to do, so they put all their energy in their project. However, when vocation came, they had so much free time to do so many things, their attentions were easy to be distracted. If they really believe their project, they will insist. But the truth is, they gave up.

Team members are the most soul of a project!

A team is constituted by different people who has different personalities, feelings, and personal lifes. So how to combine them in one group, giving them an open and positive working environment and letting all of them to find a right place to give their gifts is the hardest problem. It is, however, also the most essential problem of team work. If a team has perfect teammates, solving all the other problems are just the problem of time. Here a perfect team doesn't mean that every teammate should be the strongest, but means that each teammate should respect and complement each other. Every role should have a member to play. Only in this way, all the teammates can get alone with each other well and improve the effectivity and quality of the project inderictly.

Technical skill is also necessary. Varsity chronicles has a good originality. But at last, it hasn't been realized. Parts of the reason is that, in technical side, its teammates are not strong enough. For example, the team used HTML pages first, then switch to flash. This wasted them a lot of time and turned sour their original enthusiasm. If there was a professional technical guy in their team at first and give suggestions to and evaluate the feasibility of their plans, maybe they could avoid a lot of detours and implement their plans better.

Now I have a very good team for my final project. This doesn't mean success. How to avoid a *sad ending* really needs much more thinking =]

Saturday, 20 February 2010

Some thinking about GetHelp!

I like the idea of GetHelp. It is the idea I am always thinking of realizing through the Internet. Asking for or offering help through the internet is an effective way to spread information and share knowledge. It takes the advantage of the wisdom of crowds and lets people get information accurately instead of searching extensively. However, I can hardly find a way to realize this idea perfectly. How to offer a platform that is convenient enough for people to use? How to attract the first loyalty customers and let them bring in their friends? What kind of help should the platform focus on at first? etc. These are all the questions I am thinking about.

Coincidentlly, GetHelp is a simplified and preliminary version of my idea. It's a good try, but I think it's too simple and has no focus which makes the app impractical. It's hard for me to imagine what kind of people will ask for what kind of help in this app.
When we are asking for some help, the most important thing is to state the request clearly. If the request is vague, helpers will be hard to figure out what kind of help is needed, let alone offering accurate help. "I need help with ..." is simple but too open. Users can add anything behind it but hardly state it clearly. For example , if I say "I need hep with chocolate.", what do I mean? Do I want to know where to buy chocolate, do I want to know how to make chocolate, or do I just want my friends offer me some chocolate? Even through some of my friends may offer help, probably their help is useless and waste their time as well. The description below the request helps little. Most of the time, developers cannot reckon on the users knowing what they want and stating their wants clearly. Users are always confused about what they want and their wants are changing all the time. In addition, granted that users know what they want, they may not state it clearly. Just recall that you ask a question in lecture you think you have state very clearly, lecturer still cannot get the point and let you explain again and again. It's because for a question, there exists many conditions to let it set up. Requesters always unconsciously assume that listeners know some of the conditions. When they are describing, they may omit these conditions.

I think the biggest problem of this app is , after all, having no focus. It's important to have a focus. Focus on making the app's focus perfect is the best way to attract users. Nowadays, only the perfect app can be really successful.

Here I don't mean that GetHelp is without a single redeeming future. The interface of it is really simple. Users themselves may figure out it's helpful for some specific requests like selling or buying second hand books ("I need help with CS3216 textbook") and make it established by usage for this app. In this way, this app may be hot. But for this kind of app, I don't agree to let the users discover the usability by themselves. It feels like throwing the dice to decide the destiny of the app. The better way is to guide the users and let them feel that they need this app =]

Tuesday, 2 February 2010

Talk about Fame League

Today is my first time to play Fame League. It's a very complicated game for a raw hand. It makes me very confused. But after playing(actually random clicking) for a long time(around 4 to 5 hours), I realize that this complicated game in fact has many good ideas behind it. It combines some of the most popular and advanced elements, like Prediction market and the wisdom of crowds, althrough the technology of it sucks. I don't think it's user-friendly and its UI is good enough. Maybe that's why it's hard to learn. But I don't want to talk about the technology, because I believe technology will always be better and better after some time. I want to analyse the ideas behind the game which I believe are more important. Actually these ideas are all mentioned by the presenting team in the presentation. I just want to summarize them and add some my own thoughts.

1. prediction market. In economics, prediction markets are speculative markets created for the purpose of making predictions. Assets are created whose final cash value is tied to a particular event (e.g., will the next US president be Obama?) or parameter. The current market prices can then be interpreted as predictions of the probability of the event or the expected value of the parameter. People who buy low and sell high are reworded for improving the market prediction.

In fame League, it uses prediction market to predict fame. It's very interesting. It seems that no matter who the people are, No matter whether they are famous actor, American presidents or ordinary people, their fame can not be decided. Nobody can give an accurate prediction of people's fame. Is that mean prediction market is useless in fame? No. Fame League gives you the answer.

Fame is the state of being known and talked about by many people. So if more people know you and think you are famous, you are more famous; On the other hand, If less people know you and think you are famous, you are not famous. All the fame depends on the wisdom of Crowds(Which I will talk about later). So the people who make the choose the same as the majority, improves the market prediction; who make the choose opposite to the majority, degrades the market prediction. Prediction market works well in Fame League.

Prediction market has a lot of potential. Because in a democratic world, it's very important and useful to listen to the majority. Through the voice of the majority, people can know what makes the majority happy, and what will infuriate them. Public figures and the government can make good use of it. In the past, it's very hard to collect the opinions of a large number of people. Now according to the internet, collecting becomes much easier. And prediction market makes it more convenient. Everything has been reflected as a simple number. It's easy to operate and understand.

2. The wisdom of crowds. It means that the many are smarter than the few and collective wisdom can solve many problems which can not be solved by computing. In the Fame League, the use of the crowds wisdom is very direct -- deciding the fame of people. It's a perfect usage of crowds wisdom because the fame of people is fortunately decided by the crowds.

Here, I want to talk something else about the wisdom of crowds. Google is the company I think make the most advantages of it. Except Image Labeler and SearchWiki these two tools which are based on users' interests and voluntariness, I think the best of all is the reCaptcha service which has been bought by Google. reCaptcha is a system originally developed at Carnegie Mellon University that uses CAPTCHA to help digitize the text of books while protecting websites from bots attempting to access. Google buys it to help realize the unrecognized distorted words in book scanning. Every time, users can see two words. One is that the reCaptcha has already known the correct answer, the other one is the one that reCaptcha hasn't known. If user answers the first one correctly, they can be proved that they are not machine. Then they can answer the second one. If his answer is the same as the majority, this one will be recognized to be true.

Not only these little application, more and more problems which are thought hard have been solved and are being solved by the wisdom of crowns. For example social search and social news. This trend looks very familiar with the Cloud Computing. They all use the resources of one large platform to solve special problems.

I only want to talk about these two points. Because all the other ideas are actually included in these two or they are not as representative as these two. Especially for the wisdom of crowds, I believe it's the developing trend and key point of future. No matter how the technology is improved, it's impossible to replace the wisdom of people.

Ideas behind a game are the most important. Technology is also important, but people can improve it anyway. Sometimes users can even bear bad UI for a good concept game. If a game lacks good and fresh idea, It has no soul.

Sunday, 17 January 2010

How to use social media in product development

Our first assignment is based on a famous social media -- facebook. We must remember that, facebook is not only the platform where to put our application, but also a platform where we can take advantage of to realize our customer-driven product development. I want to introduce my shallow understanding about how to use social media in product development.

Andreas Kaplan and Michael Haenlein define social media as "a group of Internet-based applications that build on the ideological and technological foundations of Web 2.0, and that allow the creation and exchange of user-generated content".It includes Internet forums, weblogs, social blogs, wikis, podcasts, pictures, video, rating and bookmarking. Comparing with traditional media, social media has accessibility, recency, interaction and dynamicity. So for product development, especially for the development of consumption product, social media is a new tool to realize the strategy of customer-driven product development

The purpose for people to use the social media in product development may include:
Deeper and wider communication with customer.
Positive effect in Marketing Effectiveness and public relations.
Low cost in effective communication.
Finding new products to satisfy customers' needs and potential needs.

The traditional media (radio, TV, newspaper etc) mainly focus on the last stage of the product development, like advertisement, marketing etc. The application of social media can runs trough the whole progresses of product development, from communication and capture, to product design and
products experience and testing; from product marketing, publish and information feedback, to after sale service.

Following is some examples about social media in product development.

Threadless
Threadless is a community-centered online apparel store. Members of the Threadless community submit t-shirt designs online; the designs are then put to a puclic vote. A small percentage of submitted designs are selected for printing and sold through an online store. Creators of the winning designs receive a prize of cash and store credit.

Dell IdeaStorm
Dell IdeaStorm is a website launched by Dell to "gauge which ideas are most important and most relevant to" the public. After registering, users are able to add articles, promote them, demote them and comment on them. As articles are promoted, their score is increased, allowing Dell to rank which suggestions and requests are considered most important by the website's users. the PC with with no OS preinstalled and linux OS preinstalled comes from uers' advices and votes.

Lenove DesignMatters
Similar to Dell IdeaStorm

Open innovation of P&G
P&G publish it's innovation needs through it's website Connect+Develop, to collect originality and innovative technology and products. This let the development strategy depend on outside innovation instead of inside innovation. In 2006, 35% of the innovations of new products of P&G in market come from outside. In 2000. this persentage is only 15%.

In our assignment, We may not have enough time to do a survey to collect new ideas. We come up with the idea by ourselves. But our ideas are also based on the social media. As users of Facebook, twitter etc, we observe our friends and even "strangers" in these SNS. We collect and analyse information about them to figure out what kind of services these people need. Then we propose our own ideas. And in the progress of development, we can also make use of social media. We can put our app trial in the facebook, and ask people to try and feedback. In this way, we can complement our own product and offer better services to people at the same time.

We need to make sufficient use of social media. I believe it's a gold mine. =]

ENJOY WHAT I AM DOING

I never regret that I have choosen CS3216. Even this module takes me much much much much more time (I do not overstate)than any other normal modules. I enjoy this module very very very much. Because I like what I am doing. I am not wasting time, I am learning with the fastest speed which I have never haven before.

Firstly, I want to talk about the rate of progress of my facebook assignment. I have a very good team. Since last Wednesday, we have began our work. All of us work at least 7 hours a day together(exclusive the time we work separately). Everyday, I am thinking about what we should do next; to finish our assignment, what we should learn and whether our application is really useful for other people. But we still face many problems. The biggest problem is that, we all have no experience to organize a whole application, from organize people to organize the structure of the application. Sometimes, we feel lost. For example, at the very beginning, after we have decided what we will do, we do not know where to begin. We do not know what we should learn first, what we all need to learn, what can be divided into several parts and each of us can learn only one part. We do not know how to divide the work and how to do the web design and database design. Until now, our improvement is very very slow. But I can feel that we are going into orbit slowly. After we are in orbit, I believe we can do faster and better.

Some of my friends advise me to drop this module, because it takes most time of mine, I have no time to go shopping or talk deep into the night with them. Thank you for their caring. But I don't think they really understand me, understand the potential of people. I really love IT, love software, love web, love programming. For them, it's hard to imagine a person can love these, especially a girl. But I know what I am doing, and I love what I am doing.

Actually, I don't feel that this module is very hard. Nothing is hard if you spend enough time, use the right method and have a positive attitude. Everyday, when I come back from COM1 around 4 a.m., I am too tired to do anything but sleep. However, I feel very happy.

Hope every group enjoy this assignment and let's learn from each other =]

Tuesday, 12 January 2010

Augmented reality

In my last blog, I introduce something about PTAM. For somebody may not understand what the use of PTAM is, What the use of Augmented reality is, here I show you some vedios about the big companies' plans of Augmented reality. So you can feel Augmented reality is the developing direction of the future.



I believe most of the things in this vedio can be true in the future.



What a beautiful life!!



This is the concept produce of microsoft. It lets the real people's behaviour react with the virtual one. There is similar usage in the film Avatar.





This guy is a genius!!!Prarnav Mistry from MIT.

Monday, 11 January 2010

WHAT I THINK REALLY COOL

Ha, I just want to introduce some app which I think is really cool~~

Has anybody know what PTAM is? PTAM is the abbreviation of Parallel Tracking and Mapping. It's a camera tracking system for augmented reality. Augmented reality!! It sound excited, right?? After seeing the following videos made with PTAM, you must agree with me O(∩_∩)O~


Actually, I don't know how to do it too. I just want to learn it. =]

Saturday, 9 January 2010

WHAT I WANT TO LEARN FROM CS3216

This is a hard but good question for me. =)

If we want to do every project of this module perfect, a lot of knowledge is needed: computing, arts. business. Maybe includes how we arrange our time and how we work with other people. All these things must be skilled. We have only one semester, we can only learn very limited knowledge. The other knowledge we must learn outside this module and some of them must be learnt through our whole life. So knowledge is not the most important thing in this module. The most important thing for me is Passion and cooperation.
Cs3216 offers me a platform to learn and work with people who has the same passion as me.

I am very interested in software. But I do not very like the traditional teaching method. It's very ineffective. In traditional way, We are told what we need to learn, and we are forced to learn it. After exams, we forget everything. We need a pleasing and effective way to learn what we need to learn and what what we want to learn. (Here, what we need to learn means what ourselves really realize we need them, not what professors think we need). Only in this way, we can use what we learn wisely and passionately.

The teaching method of CS3216 is different from the traditional one. It gives us sufficient freedom to decide what we want to do and what we want to learn. And the students taking this module I believe are the people who are most passionate in software. I want to experience and learn this passion with professor, TAs and classmates.

The other thing I want to learn is cooperation. I always believe cooperation is the most important thing in everything. I have never cooperated with artists and businessmen. But for a people, who want to do really great software and who want to let as many people as possible to use it, like me, I must cooperate with different kinds of people.

I always feel very confident for myself. This time, I believe I can learn a lot and do my job well. I never give up.

Happy New Year