Sunday, November 11, 2012

Some of the lessons learnt


1.  Start early and Manage time efficiently
     Rome is not built in one day, so does CrossView. Given the time constraint and the complexity of our application CrossView, efficient time allocation and time management does play a big role in such a gigantic project.  Always start early, thus the project can be finished in a more elegant manner.   Due to the overwhelming mid-term exams and
FYP projects belonging to the penultimate year students in the project team, our project has been constantly lagging behind those of other teams almost till the start of the progress presentation after putting in days and nights’ of hard work.  This is the cost which has to be paid due to improper schedule and vague milestone given at the start of the project. Luckily, all group members can sacrifice their biological needs and devote themselves into the project for two weeks’ long time. And the project cannot be done without the kind guidance provided by the TAs and Colin.
     It took us two days’ time for to just set up the programs properly in order to test our hello world code. Although detailed instructions have been posted on the official website of phonegap, it is rather hard to follow it exactly as the eclipse always has problems here and there. It takes time to figure out the places where have been gone wrong. It is assumed either the phone or the emulator will work. It turned out to be somewhat false at the start due to technical glitches. It is a project consisted of four members. Thus it is imperative for us to get all the eclipse function gracefully throughout the project. If we have started early, this would not hinder our way to meeting our milestone.       

2.  Read the documentation carefully before sticking to any existing framework
Originally, we chose backbone.js as our main framework. However, it is replaced by Sencha touch 2 sometime later after the start of the project due to some unsolvable technical problems existed. Precious time is wasted as we all have tried to familiarize ourselves with the backbone.js for several days.
It is a pain for us to read the documentation of Sencha touch 2. It is undeniable that Sencha touch 2 is such a powerful framework which supports web application and native application in multiple platforms. Sencha Touch 2 has a tendency to skip some essential explanations in its documentation. E.g. in order to access the camera, some header must be included in the particular Javascript file in which the camera function is called upon. As we are all new to Sencha touch 2, the debugging process or rather the “googling” process is more helpful in developing our application. Pertaining to the Sencha touch framework, trying to follow the existing demo on the web is much better than drilling into the Sencha documentation in terms of efficiency.

3. Effective Communication Saves time
Effective communication within the team always helps save time.

a>        Case 1: models and store (collection of model) were created without reaching the consensus from the backend and frontend designer. In the end most of the models were recreated.
b>        Case 2: A problem has been solved earlier by one of the team player. However, since one of the team members was absent, he was not aware of the fact. What happened on the next day was that, he spent four hours to solve the same problem one more time.
c>        Case 3: Github Overwritten. As most of the time, team members were working on the same MVC. Overlapping was sort of unavoidable. That was precisely why version control software like Github is necessary to avoid the collision.  It did not work out quit well in this project. Half of us were using the easy GUI version which the other half were using the command line Gitbash. As the same file was always modified by two different people on the same line of codes. The merge function provided by the Github fails epically. This further slowed the progress of the project down.


4. McDonald always closes at 11. Subway closes at 10. Subway is much healthier than McDonald. DO NOT EAT McDonald EVERYDAY!

5. Calm down while doing project. Do not get mad.
6. SOC sometimes got hot chicks and fried chickens at night, said by Siaw Kz.. haha 

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.

Sunday, September 23, 2012

Busy week

It has been a long time since i blogged last time. I felt this is the most fulfilled semester in my university life. Oh, it is recess week now. Thank GOD? No. Not really!  After attending the great pitch party on Friday.  I had a 2 hour written page exam on Sat morning. =) It is over anyway. I am doing the mobile project with my fellow group members in SOC now. I am enjoying it honestly speaking. We never know how high we can fly before we spread our wings.

 About the pitch party:
It is a fantastic event. The best part of the evening is the FOOD! LOL. I am just kidding. The really brilliant stuff  were those ideas which i might never think of. Almost overwhelmed by the ideas. Ben's questions impressed me a lot. I thought the speaker is well prepared in the sense that he almost have all the data needed to handle the FAQ. However, there is still a long way to go before he could start to build the app and considering monetizing it. Most of us are stuck in the place where we can increase our user base for our app. It may become a completely different story after commercializing the product. We may leave aside the idea of commercializing the  app right now. The idea i liked most is the one given by the geog teacher. He just make me quite moved by his passion and love for the teaching course.  The app might not be fantastic. But it indeed help those underprivileged students. It made me think of the game system adopted in cs2010 : data structure and algo II. The idea of Carpool sounds good. But i am still doubting its feasibility. Even with the app, people out there may not use it. It is not a technical issue.  More importantly , outside Singapore,
safety is the biggest problem. Driver may feel unsafe to give strangers a ride. That is the reality.  The idea of the dashboard to control the light system is the most familiar to me. My father's company spent 40thousand to do the R&D on it last year. It turned out to be unpopular. Why is it so? 95% of the products sold are the normal switches in the switch market. Businessman do not dare to take the risk to be the first one massing producing the "advanced" switch which are more expensive. It takes time for the world to get used to new ideas and products.


About the Project:
Still busy coding =D. I just learnt how to code a floating bar which disappear on scrolling down and appear when scrolling up just now. It feels great. Loving it. Continuing....