Tuesday, October 30, 2012

Hell Week

 Well. This is the most disastrous period in my uni life. How should i put it? I have multiple projects due and mid term going, while lagging behind several tutorials and lessons. All my focus is on our android app. But it is fun. We stayed till 2-3 at soc everyday since many days ago. Hopefully we can do a wonderful project.
This shall remain as an unforgettable experience for me in NUS.

I do not have too much time talking crab on the blog. I shall write a full reflection report after the poster presentation. Back to project!

P.S.
1. We almost order McDonald everyday. Haha. pretty unhealthy.
2. The sencha touch documentation really sucks badly. It is not human readable. What is worse. Stack overflow seems to many unanswered questions about sencha. The number of complete examples are very limited. =(. Sometimes, i have to go to its src code to figure out what is going on.


Finally, i can go to sleep. The upload picture bug and ajax call bug are fixed!!!Thank god..

Monday, October 22, 2012

reflection on the network security

 Internet security consists of the provisions and policies adopted by a network administrator to prevent and monitor unauthorized access, misuse, modification, or denial of a service by a server and network-accessible resources. 

Obviously, it is one of the most important topic in the field of computing. We get a chance to know some of the common "technique" used to make a attack like SQL injection,authentication bypass, information disclosure ,remote command execution etc. 

If we do sth like
<form action="/cgi-bin/login" method=post>
 Username: <input type=text name=username> 
 Password: <input type=password name=password> 
<input type=submit value=Login>

It is very susceptible to SQL injection. If an attack do sth like
username=admin%27%29+--+&password=+ 

Then the server is hacked. 
Thus the lesson learned here is that we must validate the input from the user carefully. We can never assume all users will follow the guild lines without taking any funny or malicious action
I heard there is an interesting module teaching computer security. The final is exam is the best part~ given two hours. You must hacked a server given as it is purposely set  with certain loopholes.

Wednesday, October 3, 2012

Case Study II


1. Lanh said, “It would be really bad if we have a great idea but are unable to execute it successfully”.
What are your views? Which is more important - the idea or the execution? Why?
In my opinion,  both are important. But if i have to prioritize them, i would say execution is much better than the idea. A world No 1 idea with poor execution will not impress anyone. Users are the judges. They are using the application that developers have develop. They cannot literally play with the idea which is rather abstract. A functional bicycle vs a malfunctional car, any sensible person will choose the bicycle. ( provided you cannot sell them or fix the car). An app of a bad idea with excellent execution and marketing will win over more users. Like i said, it is better to both of them -----a functional car!  If we have to choose one given various constraints like time limit, i would definitely choose execution. It would be simple and sweet instead of being fantastic in disguise.

2. What have you learnt about Facebook so far?
It is a success which cannot be imitated easily.Imagine there is a different social platform, users will not switch to it unless it has some special features which facebook does not have. It is a great platform which provide many plugins and even the code in js php etc to benefit itself and developers mutually.


3. Comment on the ideas for Another Life and Fan Gang.
There is no problem with both ideas.
For Another Life, as the name suggested, the scope is very huge. It makes me think of Sims. However, given the time constraint, even a simple sims is not simple to build. If it gets to simple, it is not fun any more. Thus, such a topic for this module is deemed as inappropriate.
For Fan Gang, it is a utility app which i do not like. Personally i do not even use time table builder. I do not care about most of the utility app on my ipad. It is well developed but i do not give a shit. So what. I do not need another event planner, alarm clock , to do list etc. The idea is not too new.

4. Should the team have changed their idea for the Final Project mid-way or stuck to their original
idea? Why, or why not?
Yes. After getting stuck in the old idea for a long time, they should change their idea. Althought, time is not on their side. With careful planning, chances are that they can still finish the project in a decent manner. They can not go anywhere for their old idea. It was just too hard to modify. Sticking to it would just waste all their hard work along the journey.

5. List the major problems (obvious and non-obvious ones) in faced by the team? How could they
have done differently and better?
At the phase of brainstorming, they can come up with any ideas. However, at the phase of implementation and planning, they should set realistic goals. Most programmers tend to overestimate themselves. Thus incremental approach will be more safe as compare to waterfall. If they plan carefully and realize the scope of life is too big, they would save a lot of time before they switch to other ideas.
Communication is another problem. Since they have two coders, they must listen to their ideas. If they do not agree to them ,they would better change it.

6. What did the team do right/well?
They were brave enough to change ideas half way and let go the old idea. It would be better if they can implement it by meeting the milestones.

7. What would you do if you were Jeremy on the evening of 24th April (and the deadline for the
final project submission was the next day)?
Not a lot can be done on that particular night. But if i were really in that condition, i would call everyone to come up a best-fit solution like finishing some basic feature and write a report for it.  Instead of being helpless, be optimistic and learn the lessons from it while putting in the necessary effort.

8. How would you handle a situation where one of your team members is unable to deliver on the
work he/she promised because of personal problems?
I will not blame him for not delivery. Communication is the most important. Before several days of the deadline, we should know each others' progress. Instead of being surprised on the day of project meeting, any potential problems should be solved early. This does not happen in my team as we all meet up to do the projects.

9. What, in your opinion, are the key learning points from this case study?
Dream big and plan well.  Execution > idea given the constraints.  Team dynamic is something we should really pay attention to while doing any project.

Case Study I


1. Usability vs Aesthetics (Is the interface attractive? Is it functional?)

Honestly speaking , the design and the graphics in UI is pretty attractive. At first glance, i did believe the developing team has put effort in it.  However , without referring to the answer in the workbin( i innocently study all of them .), i found out that there are too much unnecessary stuff in it which caught the users' attention. Stupid users like me will feel confused at the start, then try to figure out what is really going on ,eventually we would fail. Therefore, we may be pissed of and leave the app.
Instead of have a command line app, the apps nowadays have UI. As the fundamental  purpose is to make users learn how to use the app in a fast way while attracting them by cute icons, colorful animations etc. If it is not functional at all, the developer team would better make it simple and clear.  

2. Number of options / freedom given to user when posting a need.
I personally feel that we are seeking help from others. In the process of doing so, the app should not create additional difficulty along the way. Else, we need to ask "how to use the app" which is utterly unnecessary and unhelpful. Incremental approach should  be adopted.
Minimum key words should be keyed in at the start.  Hint may be given for optional function.
The original page has too many buttons and red stuff. 

3. Cycle of interaction & incentives (Are the elements of the app engaging?)

Numbers are unattractive to users like me. Numbers themselves does not give incentives to user to work harder. The new rewarding system is better but it might not be the best.
I would choose to use a game system like CS2010, i was really encouraged to solve the bonus questions to show myself in the leader board. Yes. i Like it! 


4. Other problems you think the team might have faced
They may adding a live help channel after a large base of users. It should only happen after a large user base is established.  But i did not see it happen which is sad. 

To sum up, UX >> UI. The users are the judges. If they fail you, in no way can you pass with whatever fantastic design or function. It is just a Epic Fail. A small success is better than an epic fail when the app were to get commercialized.  





Monday, October 1, 2012

Recess week report

 I do not mean to be so serious but  I cannot think of any other title.  maybe I shall call the so-called recess week is hell with joy?that is pretty accurate. Let me share with you what happened during the recess week.
  Started from the Sat at the start of recess week, I had a cs2010mid term which I found it to be no big deal. Then I finished a project regarding socket programming on Sunday, I wrote the java program on graph algo till three o'clock. That is only the beginning of hell. On the official start of recess week, I with my teammates worked on the mobile cloud app day and night everyday till the deadline.that is really hell!
But........
I like it. It gives me a sense of fulfilling. The team is really fantastic. We build the app from scratch from Monday. I learnt much about JavaScript ,html5 CSS and some random stuff like cache etc. I just feel it is great, the sense of achievement.  The potential of every youth can be stretched again and again.
When I wake up in the morning, I can proudly say I am one step closer to my dream.