Wednesday, 31 August 2011

Followers>>Leaders

Well, it is indeed a tragic fact that there are many more followers than leaders in the world. I realize this when we launched our first Facebook app last night. Initially, we thought that most people would love to try something new, but the fact is that more people intend to watch others first, then decide whether they want to join.

When we first added the news feeds, we fully considered about people's privacy concern. i,e., we only post news feeds on the initial gossip creator's wall and never show the feeds on other related persons' walls. That's a way to eliminate duplication of the same message displaying on one's news feeds. However, the initial gossip creator may not be a big node in the social network. It's the people being gossiped that really make the difference!

Why these people get gossiped? Because they attract followers' eyeballs, they are different from these followers! Unless these people love to gossip, otherwise, our app would have got no users. But usually these people are not gossipers, we have to change our strategy.

With the termination of the old facebook api, some useful methods are no longer available. We cannot get the mutual friends of the login user and another person who's not our app user. Neither can we get the full friends list of a person if our app is not authorized by him/her. But we can post news feeds on the related friends' wall. To make the news feeds less annoying, we only display the message on one of the related friends' walls.

Gossips should be designed for the followers to discuss about those leaders, not for the leaders to make the world more chaotic.

Tuesday, 30 August 2011

IPAD/FB Seminar- Thoughts on Pulse News

Monday's presentation was full of interesting sparks. Of all the eleven teams, only one chose to present FB app, which is Sims Social. The others all chose to present ipad apps. That's not so surprising as Ipad(Tablets) is the most recent platform and there are a lot of blank spaces for us to fill in. The ten ipad apps shared in the seminar covers various fields like e-payment, news-media, education. What surprised me most is that many of us find education a very promising area for mobile app development...As ipads are being utilized as an educational tools in various educational levels, education is really going to be a great pie. Wait, I need to finish comments for my assigned app first. Pulse News, a news media app with good social features.

News media are getting more social and mobile and probably "cloudy" in the recently years. Organizing news media contents can be a promising area since there are always interesting things happening around and people just have the great pain to organize large amount of information from various sources.

Like many news media apps, the technology behind Pulse News is not really that profound. It is just a RSS reader with more customization and social features. Compared with many news media apps like Flipboard, the UI is not really that awesome. However, it's good, in a way that users know how to use it the first time they try this app.But unfortunately, other news media apps also have got a very good user experience.

What is really bad about it is, as mentioned by Vaarnan, the search contents cannot be customized. It implements Google to search the relevant contents, which is not really that customized for users. Filters and more customized algorithm should be implemented in this app.

Vaarnan has also introduced a great feature about Pulse News-Users will not be redirected to a web browser for an external URL. The Pulse News has made a very good integration for information retrieval from external links. That's really really great.

Some original thoughts:
One idea comes to my mind. As the Mac OS Lion and the coming windows 8 is adding gestures and touch features on the desktop system, a news media app in other platforms (like the desktop app in these new systems and web browsers) with social features and touch experience can probably be very popular.

Another thought:  How to compete with other apps with a better UI and UX? Compared with Flipboard, Pulse News is really not that outstanding. As is mentioned by Deepan, Flipboard team consists of many great programmers and they believe valuation without monetization. How can other news media app survive if there is such a great competitor? Probably no other way but to differentiate oneself in a way that fits the target group and fully customize the group' needs.

Tuesday, 23 August 2011

Take the Soy Sauce(打酱油)

When it came to the end of today's lecture, many classmates started to choose their teammates for the mobile-cloud project. I felt a bit lost when I realized that I still didn't form my new group yet. The IOS guys should be very popular and they should have already been booked ahead. As the programmers normally tend to form groups with technical guys, there might not be enough programmers left in the end. It would be good to form a group as soon as possible. Unfortunately, I didn't take the good timing for grouping. I am still not over with the FB app yet. However, many groups have already formed. I do feel a sense of insecure. Who will I be working with? The cruel thing is the that stronger people will tend to choose to work with strong team members. What if there are not enough programmers in the team? That's almost impossible to get things done.The fortunate thing is that the people in the class are really astonishing. But I'm also not that confident on my programming skills. I do feel I was taking the soy source in the Facebook app group as I really didn't contribute a lot to the team. Hopefully I'll finish strong but the deed is that I am still pretty weak. Jiayou la!

Sunday, 21 August 2011

People Rock

Really awesome to work with my FB app teammates. They are really great great great people! Fast learner, elite programmer, dedicated executor , warm-hearted contributor. The app is around the corner, we are going to publish it in a few days. Though there're still many problems remaining to be solved, I really feel some sense of achievement. My teammates really rock. Even with no web programming base at the beginning, we picked them one by one at a very short time. Even though I am the slowest learner in the team, I also have self studied HTML&CSS(Wrox HTML5 24 hour  trainer), PHP(O' Reilly Head First PHP&MySQL), Facebook Graph API(plus many previous FB Apis), a little bit of JavaScript,MySQL,J_Query, J_Son from W3schools,Google and many online resources. Our app consists of four pages, two of them are very important pages. I help develop one of the important pages. It should not be hard, but really takes me quite a lot of time for me to make something. It takes some time to understand how data are transmitted among the client side and the server side. There are a lot of things to concern about. For instance,it is generally good to use PHP for data transmission from the server, but since PHP can only run in a server, keeping on posting&getting from the server and the client will make too many function calls and consume too much time. It would be good to use JavaScript to help fetching the data from cookies to make less function calls with the server, but that is less secure.  We've got to make trade offs. It might be intuitive to use HTML form to post data to PHP, but it may not be a good idea if the data needs to be handled several times and the UI designer needs to make some J_Query animation functions with blocks of these data. Ajax is also a quite big challenge. I am not very sure about these terms, but I really learned a lot along the way. My teammates are really clever. The database is developed within one day by Mingzhe and Yingbo has written a lot of PHP functions but rewrote them using JavaScript. Xiangyun has made a great contribution to the team and he is really an elite in any aspects, no matter it is UI , web programming or hardware programming. It's great to work with these great people, I really appreciate and honor them. Comparing with them, I am much normal and ordinary. Though we all didn't have a strong web programming experience, they really learned much faster than me. Though I have edited some great features in my page,like autocomplete, datetime picker using J_Query, the codes are mostly modified from various sources. I didn't code as that much. So far, I am still not very familiar with JavaScript and many other languages, Try to catch up lah, haha~~ I have encountered many challenges as well. For instance, I want to get the friend list of one of my friends however facebook didn't allow me to access these data. As I know from the developer site, FB only allows access token for users to access his/her friends information, but doesn't allow apps to do so. The Graph API does not support useful functionality appeared in some old facebook apis as well. I seem that can only know the mutual friends between two ids using a previous api method if I do not have either of the two people's authorization. Don't know why, but facebook is deprecating most of its old apis...

Next week, more on UI and creative stuffs. May invite some UI designers to help make some pictures and get some feedbacks from the users once it starts officially testing and operating. Good Night.

Wednesday, 17 August 2011

Something is Wrong

I've got to reflect on the things happened yesterday. I'm pretty worried about the FB app when Prof mentioned in the class that our team has got no designers or web programmers. So are Yingbo and the other two members. One senior in the class suggested that people with the foreseen picture in mind and most passionate becomes the leader. Yingbo came up with the idea and she knew most of the app we are going to build, she undoubtedly became the leader. Since we both lives in RVR, I was assigned the job of developing the pages together with her.After discussing for a short while, we immediately developed a page in the first evening.

I'm pretty free yesterday except one lecture in the afternoon and one make-up lecture in the evening. I should have developed 2-3 pages in the morning, but I didn't.  I was wasting some time on project team grouping in another hypermarket project. Though I spent half an hour studying the syntax of PHP from W3, the fact is that I did not make a single page. Yingbo and I agreed to meet each other in RVR@ 8pm. However, the hypermarket project team had a meeting after the lecture, I didn't come back until 9pm. The FB seminar group also decided to make the 3 app choices@10pm but things turned out that we went nowhere discussing online.  I just wasted one hour chatting online with the seminar members while Yingbo was trying very hard on the app page. That's so bad about me. Really need to apologize to Yingbo. This should be the first-priority thing, but I just keep on doing other stuffs! I'm free on Wednesday, hopefully I will really make a change today.

UI seems to be a core selling point for apps in evolving platforms like Facebook. Xiangyun showed us a flash page he developed before and that looked really cool. Pity thing is that we cannot set another page layer on top of the flash page. We have to bid on him for the UI design. The DB schema has already been built last weekend and Mingzhe is working on it.

Sunday, 14 August 2011

Getting Started

This is the first week we take CS3216, anxious but excited.

The first lecture was encouraging. It's full of interesting shares from Prof. Leong, the seniors and the classmates. I was not confident at the beginning, but these talented people in the room just make me feel good. They are nice and passionate:-)

In the show-and-tell, people shared their fabulous talents in various ways. There are designers, guitar soloist,nerdy engineers,dancers...I was really astonished by many great works they have done. I can even recall most of their great works now, an electromechanics robotics hands with sensor controls, handicraft-buildings made from hundreds of matches, a fancy video with automatic Microsoft voice, an original guitar solo song for his girl, a wheeled robot with complex control algorithms, a serious Q/A website for sex,an ipad app,a web app, a WOW video, poster design leaflets... So many interesting stuffs! I myself played a short guitar song, "Don't Panic" by Coldplay,which expressed my wishes to these new friends.

"Oh, we're sinking like stones,
All that we fought for,
All those places we've gone,
All of us are done for.

We live in a beautiful world,
Yeah we do, yeah we do,
We live in a beautiful world,

Oh, we're sinking like stones,
All that we fought for,
All those places we've gone,
All of us are done for.

We live in a beautiful world,
Yeah we do, yeah we do,
We live in a beautiful world.
Oh, all that I know,
There's nothing here to run from,
And there, everybody here's got somebody to lean on. "

Above are all the non-technical part lah. We've got a lot to do even in the first week. The facebook assignment is due soon and we've formed our groups immediately after the first lecture. In Saturday's workshop, we've learned Unix commands, AWS(Amazon Web Service) configurations, PHP&MySQL. An AWS server instance has already been settled. We are expected to master PHP&MySQL within one week and make our very first facebook application in less than two week's time. Our group members are all new to these stuffs. Fortunately, we are really passionate and having our second group meeting tomorrow.

Below are some useful Unix commands for MySQL root password resetting shared by ELDWIN in the class forum. I attach it here for my own reference as well as for people on the web who may encounter the same problem.


Unable to find the default root password. Follow these steps to reset the root password to 'password' and login to create your user.


cd /home
/etc/init.d/mysqld start --user=mysql
kill `cat /var/run/mysqld/mysqld.pid`
cat > file
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';<Enter>
FLUSH PRIVILEGES;<Enter>
<Ctrl+D>
mysqld_safe --init-file=/home/file &

rm file


Login
mysql -u root -p
Enter password: password


Create User and login
mysql -u root -p
Enter password: password
mysql>CREATE USER 'david'@'localhost' IDENTIFIED BY 'password';
mysql>quit
mysql -u david -p
Enter password: password
Change root pass to something strong
mysqladmin -u root -p password newestpassword
Enter password: password

Friday, 12 August 2011

Part-Time in a Start-Up?

These few days, I was spending some time doing random stuffs in a start-up company inside the campus. The company was initiated two years ago by a year3 Electrical Engineering student and his Prof. Their service is mainly focused on Human-Machine Interaction solutions. The founder is currently doing his Masters in NUS and has already settled up two company branches in China. In my view, he is pretty successful. He has settled up his own company at such young age and he is really making a difference to the world.

Though the founder earned only 500 dollars/month when he first graduated from NUS to open up his own company, he is doing quite well now. As I know, the Singapore branch has so far made a wireless projector controller, a Tai Chi cross-platform app that can run on Ipad,PC,Web,etc(implemented using a game engine called Unity), an automatic temperature reader.They have sold 10 of their project controllers to a Korean company for 80 dollars each. The Tai Chi game is sold to a government healthcare center(a hospital maybe)and the temperature reader is sold to a kindergarten. Some people may claim that it's because Singapore government organizations have got nowhere else to spend their extra budgets. But we must not deny the fact the the founder and his prof really put a lot of efforts in the start-up and the company is really doing quite well.

I've fortunately got the chance to talk with the founder. He is nice and smart. He learns and executes things fast. He loves to learn and knows many cross-disciplinary fields,like sensors, game development,computer graphics and web programming. As a programmer, I appreciate his envision of implementing Unity as the main game development platform since it is compatible with various mobile OSes, desktop OSes and Web browsers.One more great character of him is that he cares about others. At the beginning, I find him pretty hierarchical like most Chinese bosses. But as we work along, I start to know that he actually cares and values his employees.Unlike the co-founder Prof who is famous for the bad manner,he is much nicer in many ways. I planned to work for him this semester and gain some experience in his company.

But I've got to be honest, CS3216 is more important to me in the sense that I can really build my own projects and these projects may probably influence the future. His company is up-to-date, too. However, it seems that that's not where my future really lies. Social, Cloud, Mobile-these are the three itchy themes that the world will be driving, at least for the next ten years. Unity may be a good platform as it involves in mobile platforms, and may also have something to with Cloud. Unfortunately, I don't really have a very strong passion about gaming because I personally don't value gaming that much. As one old Chinese saying goes,"玩物丧志", People loses their determinations when playing games. I feel sorry that I may not be able to work for him during this semester though he has made many sacrifices for allowing me to freely arrange my working schedules.Shall I quit now?

Another thing bothers me a lot is the money. If I were to be paid, then I have the responsibility to work for the company, even on things I don't like. That would be fine if my schedule is not full of sleepless 3216 projects. However, the reality is I cannot afford to take more than 10 hours/week away from CS3216 and other courses. I've finally got a plan--I work voluntarily for the start-up with no constraints on the timing and I don't ask for any pay. However for the benefit of the company and myself, I would like to voluntarily help the company out by helping them make products when I have time to help. I'm asking the founder for permission tomorrow. ..

Thursday, 11 August 2011

"The Road Not Taken"--One of My Favorite Poem

Robert Frost (1874–1963).  Mountain Interval.  1920.
                          The Road Not Taken

TWO roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;
Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,       
And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back.     
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.       


Wednesday, 10 August 2011

A Short Talk With a Friend Back From an Immersion Program in Silicon Valley

This evening, I talked with a friend who just came back from Silicon Valley via an immersion program called iLead. He is not an IT guy, but he becomes more like a technician and an entrepreneur after spending two weeks in Silicon Valley. He shared his stories of visiting various Start-ups in the Silicon Valley. Two of the stories captures me deeply.
One is about a website idea he has initiated with three of his peers. Their idea was highly appreciated by the NOC coordinator.Very coincidentally, they met a start-up company with a very similar idea the next day in Silicon Valley. It's called Udemy, a company that provides a platform for people to upload their ORIGINAL tutorial videos and earn money share out of the tutorials people requested to buy to view. I was very interested in the idea since I tried to make a similar business model this summer, making money share by helping other people/companies make benefits. Udemy shares 30% of the profits the video uploaders earn. Groupon shares 50%. I was thinking of employing part-time students to contact retailers to post promotion products on my website and give 80% of the share every successful deals they have make. In terms of business model, they are quite similar. In terms of products, the Original Video tutorials seems to be good. Another website I find very promising is Etsy which sells original handicrafts. These websites not only meet people's needs, but also help save industries where ORIGINALITY is essential. As I was thinking hard few days ago about what I'm really passionate to build, I feel that the value of sb/sth depends on the value they have created for other people. In that sense, Udemy is a great company, so is Etsy.Those who benefit others will get paid. Udemy has a quite good revenue and it is still extending. So do Etsy. I wish to build website that really creates value for other people and I'm sure the website will get paid.
The other story is about a question one famous venture capital head ask. He had invested Google and many great companies when they were not that strong. The venture capitalist seems to be very disdain about those students taking this immersion program. He asked a question: how many of you guys want to do business here in Silicon Valley? Only the program coordinator raised up his hand. It seems that those students from NUS are not really interested in doing business in Silicon Valley. They wish to do business in Singapore! Then what for? why you ask the venture capitalist to share his story? Maybe it's worth thinking twice.

Tuesday, 9 August 2011

Be an Eagle, Not a Chicken!--What I hope to learn in CS3216

When I was little, I saw a father in a river town teach his kid how to swim. The father dragged his kid to the middle of the river, and then swam away. Helplessly, the kid cried out. Not until the kid could make another sound, his whole body had already sunk underwater. The father did nothing but watch his kid struggling. The kid desperately flapped his hands and legs for survivor. Gradually, the kid was able to take a short breath. It was not long before his body sunk underwater again. Once his month gets out of the river, he kept on yelling for help or scoring his father. However, the father did not swim close, nor did he allow anyone to help. Before long, the kid struggled to the bank, keeping on crying and scoring on the father. Something magic happened the next time we met the boy. He can swim really fast, even faster than guys with life buoys. The boy swam among the fastest ever since and he was the youngest among those swimming peers. CS3216 is like a special swimming lesson that we are all dragged to the middle of the river by Prof. Leong and then pick up the surviving skills by ourselves along the way. It was the native way for teaching swimming in a river town which proved to one of the most efficient and effective. It's not about how beautiful your swimming pattern looks, but more about how proficient one can master the skills and whether one can save himself or other people's lives.
There was a saying that"you've got to jump off cliffs all the time and build your wings on the way down".There is no other way to master a technique but to try it out by ourselves. There is no better way to train a great leader than pushing him under a very tough circumstance.

  • It's not really about intelligence, but about mindset.
  • It's not really about playing it safe, but about taking the challenge. 
  • It's not really about learning something, but about making decisions.
I'm sure I can learn a lot along the way, teamwork, time management, stress control,etc. But compared with the initiative I take and the courage I make to take the challenge, I think everything else is secondary. 
 

 I don't want to be a chicken. I'd rather jump off the cliff and FLY before I die.

Stairway To Heaven

"Sometimes all of our thoughts are misgiven.
Ooh, it makes me wonder,
Ooh, it makes me wonder."
"When all are one and one is all,
To be a rock and not to roll."