counter customizable free hit

www.ZhouWenhan.com

About Zhou Wenhan

Archive for the ‘CS3216’ Category

Apr
14

The Last Post(no Pun intended)

Posted by Wenhan

 

Firstly I have not been diligent in blogging for both CS3216 and for my own blog. CS3216 is coming to an end and it is time for a blog post that wraps up everything.

This is probably the only course in NUS that teaches soft skills although you learnt a lot of other stuff.

Of all the lessons, the classes that I enjoyed the most were the Facebook Application Seminar and the plenary session with local entrepreneurs.

 For the seminar, I though the presentation style of all the groups were worth learning from. It was an enjoyable class to attend because one can just sit back and let your classmates entertain you with their presentation.

For the plenary session, it was enjoyable because it struck a personal note with me. What I really got out of that session was sales/getting someone to pay you. It is still something I have to remember and improve on.

Review of my goals

This is what I wrote for my personal statement when I applied for the course.

1.      I have a strong interest in web technologies as I want to learn how to work with API. I intend to build both use APIs and also create an API for my final year project. 

Although I have a strong understanding of Facebook’s API, I haven’t had the chance to actually implement my own API. I am pretty sure that I will need the skill set 6 months down the road though so there will be a focus on that.

 

2.      I also want to have a better understanding of user acquisition via social media platforms like Facebook. 

Hmm…Throughout the course I didn’t have time to focus on user acquisition. In part because I was doing the development side and in initial stages of a project, the development needs to be done before sales can start. Before the course, I thought I would have a chance to actually try out A/B testing for user acquisition but once we got into the projects, getting the product right and out the door overshadowed user acquisition.

 

3.      I also want to take this chance to expand my Final Year Project into the existing social media space.

Social media has really gotten onto the radar over the last 6 months. I am not sure why but people + newspapers + companies are becoming interested. I wanted to use Facebook to expand my FYP but given the change of direction, that will have to be delayed.

 

Looking at this, I think I have reached none of the 3 goals. My FYP was very strongly involved in the first and last goal. However a change of direction had led me away from my wanting to build an API.  But nonetheless, if everything went according to what I wanted, then the class would not have been fun.

2 main things I have learnt

From the class: A Team = People (mix of talents) who can work well together

From the project: Product Development = Making a product someone wants in the way that fulfils his goal = ask for feedback and iterate again & again

From the entrepreneurs: Sales and getting someone to pay you is really important for product validation

One Last thing: Thanks to Prof Ben for conducting this class. It was a really enjoyable class. Nothing like a lot of work to make you learn. Also thanks for pointing out my “problem” of not being focused enough on my projects. Now that school is coming to an end, I believe I have found my focus(2359media)(nothing like having investors and co-founders kicking your butt to keep a  focus)

Mar
14

Systems Engineering

Posted by Wenhan

For myself, I can’t really differentatite between Modularity, Decomposition, Abstraction and SoC.

In my mind, Modularity is the over arching princinple. Abstraction is the depth of modularity and SoC is the width of modularity

Anyway there are a lot of similariteis between software design and organisational design, so much so that when the design is wrong, the same errors occur. Today I am going to do a paraody of design gone wrong because I feel like doing something relaxing on a sat night.

As we know exceptions have to be caught and thrown in Java, but what happens if an exception is raised in a organisational context?

So The 5 key ingredients are:

1. Abstraction and Information Hiding
Try{
        Approach wrong person to do task A
}catch{
        If boss
                This is a minor detail, ask XX to handle it.

        else

                I have to ask my boss. I have no decision power on this. 

}

2. Separation of Concerns (SoC)
Try{
        Approach wrong department to do enquire about how to do B
}catch{
        I do not handle this. You have come to the wrong department, I can’t help you. Please hold, Let me transfer you to XX department
        Call Function SoC(enquiry that will never get anywhere);
}

3. Modularity, Decomposition
I can’t think of anything for this? COntributors?

4. Generality
Try{
        Never follow instructions to the letter.
}catch{
        Argh, I told you you have to give me the original and 2 photocopies. On the photocopy you must chop certified True copy. This is wrong, I can’t process this.
        Application.Quit;
        Windows.Exit;
        Process.kill;
}

5. Design for Change
Try{
        Explaining to top management that the company needs a facebook app.
}catch{
        ”This is not the way that we do things. We have done it this way for 10 years. Anyway people can go to our website.”
        ”What’s this new facebook thing? Why spend money on something no one will use.”
        Sender.demote();
        Sender.paycut();

}

 

eof!

Feb
16

UI Suggestions: Facebook Application: Get Help

Posted by Wenhan

1

Overall the new Project Page is too hard to post a new project. I am not sure if the fields below are required but it seems that the fields below are probably unnecessary as they will not help a giver to decide if he would want to help the reciever.

 

2

 

 

 

 

Confusing Nav Bar system: I thought top is main navigation and side is sub nav of main sections. But when I reache this section, it doesn’t look so because overview is not part of the main nav system

 

Examine a helper’s state of mind right now because this is where you will likely see call for help request

2 questions are abound in a potential giver’s mind

1) Can I help him – Do I have sufficient Knowledge to help him (Yes/No/Maybe)

2) Do I want to help him? – This is more complex as it involves my resource and my likeness for the person and many more variables since everyone thinks in a different way

How does the app help answer the 2 questions?

Can I help him? If title is descriptive then this answer can be answered easily. If not the giver has to read the description which is a page away. Should the description be directly below the feed?

DO I want to help him? : If he is your friend, then giver can make decision internally. If not friend, then there is no clue if this person is worth helping.

 

Interaction Cycle

Interaction Cycle

Overview:The goal is to connect people together. 1 with the need(Reciever) and 1 with the skill(Giver)

Therefore you have to start with 1 type of person first and hope the other will come.

So which one should be the first?(Reciever or the Giver)

Here the developers have chosen to start with the Reciever. People in need post their problems and hope people with skill will see their call for help. 

What considerations should be used to determine whether to be giver centric / reciever centric?

1) Which is easier to accquire?

Givers are easier to accquire because skills have more staying power than problems.

The number of people with skills are also more than those with problems at a given time.

People who post their availablitiy on apps like these are also more willing to actually give help

2) will the latter follow with the first group?

When a person has problem, he will engage is solution searching mode which means they are likely to find your app. If there are givers, then the reciever can connect with the givers. If there are no givers, the reciever has to post his problem.

When a person has a skill, he does not engage is listing his skills everywhere but waits to be reached out to. So even if the app has receivers, it needs a huge polling effort to find givers.

User Encouragement

There needs to be some form of economy so those who help can get help in the future. In my image posted above, I propose an economy based on reputation points where givers and recievers can exchange points for help. This will be useful in deciding if someone should be helped and also allow the giver to exchange his help for help from others in the future.

 

 

Feb
03

Graffiti Revenue Estimation

Posted by Wenhan

Firstly here is my simple excel table on how the revenue numbers was generated that I mentioned in the Graffiti Presentation. One can debate about the numbers and estimations but that is the beauty of having a financial model. A model breaks down assumptions and helps you reach a reasonable value for each of the assumptions thus creating a suitable range of values that you will receive.

One should focus on getting a reasonable output range of values instead of just specific values because there is too much uncertainty in defining specific values. Plus in this case, what is important is how the 4 sources compared relative to each other.

 

Advertising

Talent Sourcing

Memorabilia

Stock Pictures

Number of Users

2,089,000

Percentage of Artist

104,450

Number of Users

2,089,000

Number of graffiti

20,890

Page View Per User

10

Per match fee

$5

% who purchase

1%

% of worthy graffiti

3%

eCPM

$4

No of request

104,450

Avg Purchase Order

$15

Royalty per picture

$6

   

% successful

10%

Margin:

20%

Graffiti’s Commission

20%

       

Royalty Cost:

$4

   

$83,560.00

$52,225.00

$45,958.00

$752.04

 

Feb
03

Elven Blood Critic and Applying Social Psychology to Social Network applications

Posted by Wenhan

The application I am going to review is Elven Blood. Mainly because I am precisely the target market to NOT play this type of applications. 

Summary of what the presenting team said about the application that you think is most important.

 Presenting Team says: 

  1. This is a niche application that targets a small group of gamers.
  2. Stories/Quest is presented in Bite sized so people can play them in a short period of time.
  3. Players abuse the invite system because of the reward (more game moves) that they can get when inviting friends.
  4. Developers could not catch up with the speed at which users complete the game thus leading to stagnation among the top users.
  5. Revenue source is by in game Cost per Acquisition (CPA) advertising. Acquisition = Survey completion, signups, purchase etc
  6. The developers used the same game platform to develop other genres of games to target other groups of users.

Zhou Wenhan comments:

 This is a niche application that targets a small group of gamers.


Hmm…I find it hard to actually agree with this point. Facebook applications are usually mass market and rarely do niche applications actually succeed. The main reasoning that niche applications can find 1million users from Facebook’s pool of 100 Million users is flawed. Firstly one has to look at how Facebook applications spread. Mostly this is through invites. When you get an invite, you evaluate the applications probably in this order by 1) what it does (does it interest you) 2) how it looks (does it look professional) 3) cost of using the application (is this hard to use) 4) ROI (Benefit / cost).

For a mass market application, it is likely that you will at least try the application because it should pass stage 1 & 2. For a niche application, the likeliness that it will even pass stage 1 is unlikely. 

For example, if 1 user sends out 20 (maximum allowed) invites a day and a mass market app has a 25% chance of infecting one of your friends, the mass market app will get 5 more users.  

However if you are talking about a niche application, say the conversion rate is 5%. This means that for each person that sends out 20 invites, one more new user joins.  

In 5 days, here are the numbers of users for the 2 applications

Mass Market: 625

Niche: 16

 So obviously Facebook’s invite systems do not benefit niche applications because the apps virality is low.

 Stories/Quest are presented in Bite sized so people can play them in a short period of time

 This is something that I think the developers did right both in the game design point of view. In presenting stories in bite size, it appeals to causal gamers who do not want to invest much time into a game. Plus because Facebook use goes up during work and that one should not be caught playing games during work, bite size ALT TABable games are surely the way to go! 

Because the games are bite size, players get the feel of progression and hence do not demand much from the game in the way of features. I.e. if you are going to sit down and play the game for 1 hour, it better be good looking, fun etc. If the game just takes me 10 clicks a day to move through, I will care less about the graphics and features.

The developers used the same game platform to develop other genres of games to target other groups of users.

The thing about software is that can scale and it can be replicated. This means that software developer and deployment is a fixed cost and not a marginal one. Software once developed can be reused which means clones are free and derivatives of the original are cheap to produce.

 The same applies to the earlier phase of learning to develop on/with a platform. Learning to develop on a platform is hard and time consuming but once you are experienced in a platform, you can churn code out very fast.

 So knowing this “feature” of software, it is not surprising why companies are choosing to replicate their backend into other derivatives product. The Return on investment makes sense as the investment has already been paid and you just need so more artist, marketing cost to get another application running. 

 FYI: check out getafreelancer.com. Do a search for eBay clones. You will see many low bids because the developer has already made the same thing 3 years ago and they just keep selling it to the next sucker who wants to buy and setup his own eBay clone.

 

(Original) and not so Original Thoughts about Social Network Applications

 Ok, so I am going to write a little post about how to apply social psychology to Social Network applications. Most of ideas are generated when I was reading this Book (Lessons from Yes! 50 Scientifically Proven Ways to be Persuasive) which is a book about social psychology applied to marketing, sales and general persuasion. (Highly Recommended Summary Here )

 The ideas are useful because they apply what is known in social psychology to a social network application where most of the social behaviour actually flows over. 

Principle

Existing/ Future Application Features

Examples

An ounce of personalize extra effort is worth a pound of persuasion

Allowing users to personalise an application invite either by a custom text message. The content of the message should be written by the sender specially for the receiver.

Personalising a Graffiti Card

The herding instinct

  • By saying many people are doing it

 

Showing a number of users who have installed the application.

Monthly Active Users

Top 50 Application List

  • By referencing people similar to the target audience

User testimonials about the application

Friends who have installed application

Friends who have installed application

  • Increasing social approval of an action

 

Allowing users to reward other users for appropriate actions.

Voting on good Graffiti

Digg on a story

Comments on Blogs

Get a small commitment before asking for successively bigger ones

Making the first few steps easy

Easy levelling process for RPG games like Elven Blood for the 1st 10 Levels.

Newbie protection( more experience players cannot kick you butt)

 

To increase the possibility of following through – Commitment should be voluntary, active and publicly declared to others

Ask for voluntary, active and public commitments.

Causes: Abel Ho joined Society Against Child Abuse. 

The amount of information that a preceding message has affects the positive influence on the next message. The less information, the more influence the second message is.

For example, if you lift two objects – a heavy one first and then a light one – you will probably estimate the weight of the second one as lighter than if you had just lifted it by itself.

http://www.takebackyourbrain.com/2007/the-psychology-of-persuasion-perceptual-contrast/

 

Present 3 Options to a user. 1 is hard to accomplish and 2 are easy. It is likely that the user will choose one of the 2 easy options.

Options to Increases Blessings (Elven Blood) 

Try this short test below. Imagine you need blessings in Elven Blood and this option is presented to you. Which would you choose? 

1. Complete a survey (2 Blessings)

2. Invite your friends (1 Blessing)

 Got your answer above? Now try this option group below

1. Purchase XXX (10 Blessings)

2. Complete a survey (2 Blessings)

3. Invite your friends (1 Blessing)

Now it is more likely that completing a survey is actually the more popular choice with the addition of the Purchase XXX option:)

People will be more likely to complete task and programs if there is an indication that there is already some progress towards completion instead of no progress even if the amount of actual work to completion is the same.

When starting a user on a task, give them a starting bonus instead of starting from scratch

Pet Society: Currently you start with a chest with a TV and a Sofa. They are not the best but at least you have something. Image if you started with nothing but a Pet. Would you be less likely to play with the game?

For an RPG, give users a boost in reaching the next level instead of starting them from zero. They will be more likely to want to complete that level.

A game implementation would to allow XP to spill over or only allow this in levels where you discover gamers have trouble completing.

Jan
20

CS3216: Platforms

Posted by Wenhan

So I have decided to take a new format to writing the CS3216 blogs. You can still find the overview of the class below but they will be in raw typed notes. Instead I will be digging deep into an issue that the class brought up in my mind.

In the class, it’s about developing on evolving platforms. And that begets the questions why platforms are so attractive to both the companies creating them and the developers making stuff for the platform and the users using the platform. Platforms exist in: social network applications, mobile application, Internet, game consoles,

Simply put, platforms enable efficiency in a system by

1) Developer Efficiency: Restricting what you can do

This is counter intuitive. But by decreasing the number of ways a certain function is implemented, this also means that developers can focus less on the implementation and more of the design and the product feature. This means that the production time is shorten

This also means that in the narrowed evolution path, products evolve much faster, they die much faster and application commodization is quickly reached. This means also means that being first to platform is very important because once commodization (Developers have learnt all the skills to build almost all the app) has reach, network effects of your application play a strong influence in the sustainability of your application.

2) Distribution Efficiency: Platform handles distribution and /or Sales/marketing.

Sales and distribution is a large reason to go with a platform. Developers want to develop and most of the time they are crappy salesman. Most nascent products suffer mainly from brand awareness. Platforms with product discovery features like iTunes store “Top 50″, “Most Popular” Facebook applications etc solves this problem. This is a huge plus to products with mass market appeal and high quality because this means that most likely you will get into the most popular list and stay there. Give the product awareness and you have half of your sales problems solve. (The rest being product fit, competition and purchase). Contrast this to an internet only application. How do you gain awareness? Well one option is spend loads of money but that unlikely with an app that might not even monetize. It is obvious which you will choose if you are going for a simple mass market application.

3) Strong network effects => ever increasing market share for those in the platform.

Once a platform is dominant or seen to be dominant, it’s a natural monopoly because there is no reason to rock the boat. Everyone in the platform is happy and every out of the platform is busy switching in from the sinking ship. Just ask the HDDVD guys.

Whoa sounds like heaven!

But good things never last! Haven’t you learnt? Take a look at the S curve, the innovator’s dilemma and you will see again and again how platforms get out platformed. So platforms need to evolve to upgrade themselves.

Personal Thoughts

I am not too sure that platforms should ever reach commodization level because if it does, this means that the user excitement will be leaving it soon. All the features and cool applications that one can make have been seen and people get bored of it. Without this excitement, PR and news stories decreases and developers then jump onto the next new exciting platform.

Plotting Platform on S Curve (consumer targeted Platforms)

Facebook (near Stagnation: luckily they are using web as a platform which means applications are very flexible),

Windows (time to switch S Curve man),

IPhone (Tornado: getting all the attention right now. How long more before commodization? At least they restrict developers with NDA (past) and a high financial barrier to entry),

Closing Notes: I hope the above makes sense…I am not sure if does ha-ha. Any thoughts especially counter thoughts are welcomed!

Links:

http://sloanreview.mit.edu/the-magazine/articles/2008/winter/49201-2/strategic-options-for-platformleader-wannabes/

http://blog.programmableweb.com/2007/09/19/what-is-a-platform/

S Curve: A picture Tells a thousand words

Raw Class Notes:

Companies are building platforms which means developer recruitment is as important as ever

How to recruit developers? Development programs, technical support, distribution channel,

App store, Xbox live market place,

Which is the most important? ROI (return = distribution reach,

Why platforms work

Simplify developers, use companies’ brand and marketing entry point to consumers

MDA again $50K. Why is this a magic number?

Why is there a mac in the picture? Cross platform compatible?

One person 7 teams

Which is why platform creates awareness…why getting into top 50 is so impt for app store, my getting on most popular list matters

UX tech

WPF: nice tech….but why would I use it?

Flash has 98% of market

Backend considerations?

Is compression better

But why use silver light? More libraries available in flash.

Look at the past….what similar scenarios have happened before

Late entrant, early entrant, software, developer network effects

Switch when..

Completely new way of doing something

Rapidly growing market size

How to installing apps

Difference between building a desktop app and silver light app

Why don’t MS use WPF for windows and office? To kick start dev libraries, code etc

Do we get free visual studio?

imaginecup?

So many things, so little time

A simple solution to a well defined problem!

Somehow the message is always a diverse, coordinated team…all TR modules except 2202 teaches these

Jan
14

CS3216 First Lesson

Posted by Wenhan

 

Intro To CS3216  (For Non – CS3216 Readers) 

This is a module that teaches how to develop applications on various platforms. In this semester, it will be using the Facebook API, Facebook connect and Microsoft WPF(Probably mainly silverlight). Students work in small teams of 4-5 for 3 assignments and 1 final project. For assignment and project, you can choose pretty much anything you want(except porn, gambling, violence, tibet, gaza..). There is a strong emphasis on how the project should make a difference to the world.

Why this post?(and 13 more)

Apparently, the “evil” doctor Ben has decided to try something new and this is the result. It’s called blogging for credit! What a great way to increase Search Engine Optimization for the module! Plus it’s a fun module that many NUS students should take! And if you go by last semester’s statistics, you have 50% of getting an A.

(PS: SEO = Links with keywords around the link)

Oh and a plug! I assume Microblogging counts as credit too so http://twitter.com/cs3216 is a twitter account where you can follow for CS3216 stuff. just @cs3216 if you want to send any msg to the followers! (Teaching Team, if you want control of this account, I am all too happy to give it you!)

The first lesson. 

Nothing much learnt this lesson. Mainly the focus on how the module is going to be ran and how we can expected to contribute. I really liked the show and tell part of the module because it really shows how everyone is talented in some way. I am sure there wasn’t enough time to show and tell all that a person is interested in so I am looking forward to at least knowing everyone in the class over the semester.

Probably the most interesting moment for me was when Dr Ben asked students “what are you doing at NUS?”. I found it very interesting that the answer was ” I am year X student from SoC/biz”.  I would think that answers would have been more philosical. My answer? “At first, I came in because it was already decided for me by societal pressures. Then I realised University is a great place to prepare for life because it widens your network of friends and also gets you acclimatized to Real Life. Now that I am finishing my final Semester, I am again making the transition to REAL REAL life by making sure that I will at least be finacially OK and also make a difference to the world through my Projects. “