Showing posts with label CS3216. Show all posts
Showing posts with label CS3216. Show all posts

Nov 14, 2011

What do I learn from CS3216

Now it is the end of the semester.

It is the time to review what I have done in the past 13 weeks.

It is also the time to check whether I achieved my goals.


What I want to learn from this module?
1. Business idea. What is the best way to promote an application? What is the business opinion towards an application? How to evaluate an application? Not sure whether I will learn all about this. But I think I will at least find some clues.
(difficulty level: possible to hit part of the goal, very unlikely to make all the questions clear.
overall difficulty level: 90/100)

My own Feedback: I did not quite learn too much about it. However, I indeed try to think about these questions for some time. In order to really achieve my goal, I need to have tried out these things, talked more with the users, other entrepreneurs.

2. Challenge again~~~ Without any doubt, CS3216 is a huge challenge to me, to my time management skill. Not sure whether I could survive and how I finally survive.
(difficulty level: I will survive almost for sure. But not sure whether I will be happy with the way I survived from this module.
overall difficulty level: 99/100)

My own Feedback: This is really a challenge. The result is that I failed the challenge. It was the worst semester in terms of time management. However, for the bright side, I could see my potential in my own time management. The experience of this semester told me how free I am and I really have a lot of free time that I did not manage well in the past. I need to improve more on consistency and self-disciplinary training. 


3. Be a good coder that at least I could satisfy with myself. 
(difficulty level:I could hardly satisfy with my coding skill in future
overall difficulty level: 200/100)

My own Feedback: Now I am a better coder than i was in previous semester. I am better in writing a better drained modular codes. However, I still need to improve error handling as well as exception handling. 

4.  Hope that I could write a blog everyday, no need to be so long,  even a word will work. Test for myself .....
(difficulty level: self-control is always the problem......overall difficulty level: 0/0 )

My own Feedback: Sorry did not make this goal at all. If everyone could restart the game of "life", most of them will be the winner. The reason is simple, self-discipline....

5. I do not like facebook because it is kind of wasting time. However, it is useful in the sense of information passing. Hence maybe after this module, I hope that I could like facebook a bit....
(difficulty level: should be easy to achieve. anyway I need to use facebook more often in future. 
overall difficulty level: 0/1 )

My own Feedback: Facebook is never my choice. I still do not like it. After the presentation day, I delete the facebook bookmark from my browser.

What do I learn from the module which I did not expect at the beginning of the semester?

1. Perspiration is more important than IQ.

I learned from one of my classmates in this module. He grew a lot and learned a lot during the past 13 weeks. He is not so smart comparing to others. But he is the guy who paid more effort than others. At the end of this module, he has become very good at the website codings. Although I knew the fact long time ago, it is my first time to notice it from my friends.

Oct 18, 2011

Final Project

Now finally, we come to the last part of this module.

1. What application are we going to build in our final project?

Basically, we are going to build a online Ebook reader. Our application will be different from others because we will provide cross platform support and history synchronizing. Like other normal Ebooks reader on iOS device or android phones, this application will provide a similar UI to help the users to read the books. What's more, we will synchronize the reading history and bookmarks to the server. Hence, even the users restore their system or changing devices, they could still continue with their readings.

2. Problems we are going to solve.
1) How to make it easy for user to find their interesting books?
I am not sure whether it is my biased opinion or not. I did not like iBook because I need to download the books to my laptop and then transfer to iBook. It is a two-step procedure. It is a bit troublesome to me. What I prefer is providing me a list of books and letting me pick the one I am interested in. Admittedly for some of books, we can not provide in the server. Hence the user can not user our application and they need to transfer to iBook instead. However, it is not quite my concern. Once the user could upload their txt file to our server, the problem will be solved. Currently, we will only support for txt and epub files.

2) Data synchronization
Our application is different from most of other similar apps because we have the feature of data synchronization. We could ensure that the data will not be lost and you could easily transfer to other devices.

3. Challenges
1) How to fit in different screen sizes?

It is a quite nasty problem. It causes many problems to our UI designers. We intend to have different CSSs to solve this issue. But we still could foresee that there are many small details we need to handle in future.

2) How to pick the content to display?

We want to make our UI similar to native Ebook readers. It leads some problems to us. Because of the screen size could be different, for each page, the content going to be displayed will be different. And how to remember the history is also a problem. (We could not use the page number to record, because page number will vary from different screen sizes) Hence we did some string manipulation and try to get the suitable content to the given screen size. However, up to now, the result was not so appealing. We may need to do more manual adjustment in order to achieve a better display

That's basically what we are going to do in the final project. Hope everything will go well.

Make Up: Review of Assignment 2

For Assignment 2, to be honest, I did not do a lot of coding. I work more on the css and some of the UI designs.

From the feedback, it is quite clear that it was not a good UI design. Many bugs are found and many details are ignored.

How to improve the UI design in future?
1. Choose the most suitable design, not the most attractive design.

While designing for the UI, we try to find the most nice-looking pictures to be the background image as well as the button images. However, it seems that these nice images have nothing to do with our application. Before reading the feedback, I think that a good UI design should try to attract the attention of the users. It was not a wrong idea, but I ignored one basic and fundamental fact. The design should be at least relevant to the application. It should provide some information for the users to know more about the the application. It is not just a simple picture. Hence, I should not choose the picture which looks nice but irrelevant. Even the looking of the website was very normal, as long as it could help the user to understand the application, it is a good design already. Hence next time, I will pay more attention on the relevance than the looking.

2. Details ignored

Admittedly, after reading the feedback, I realized that some of our UI designs may not be so suitable for the users. However, it is quite difficult for us to detect these small points when we are coding for the project. After coding for several days, most of the coders will be quite familiar with the UI design. Hence, even when I try out the application, I did not realize that we missed some details. Even though some of the details we have considered several times, it turns out that the users still do not like it. For me, in order to solve this problem, we could improve on 2 parts. First, we need to pay more attention on the details. Secondly, we really need to have test users (who has no previous knowledge about our applications) to try out and give us suggestions.

To conclude, next time, I will try to have a better design. But luckily, I will not be a UI designer for our final project.

Make Up: Case Study

How to design a better UI?
It is always the question I asked myself since last semester.
However, even after the seminar today, I still can not have a good and clear ideas. What I learn, I will say that these are some clues for you to get a better UI design.

How to design a better UI?
Before I really could design a better UI, the key subject is that I need to understand what people like and what is convenience and what is beauty.

1) What people like?
It seems to be an easy question. However, everyone will give a different result. It is unlikely to make everyone happy in the end. Hence we need to give up some of the users. From my perspective, we need to more focused on the general users. The best method is to have a statistical survey and get the general result from the survey. However, the problem is that sometimes people do not know what they like at all. It seems that everything is good to them, equivalent to say that every design is bad. Hence sometimes, the survey result may not be accurate and correct.  That's why we need to learn more from general people. I remember that a lecturer mentioned that a general person is the most random person you will pick on the street during one of my law lectures. Equivalent to say that, the general user for our application is the most random user we pick from all our users. Then apply our common sense to analyze what he/she likes....

2) what is convenience?
In fact, this is also a trouble question to solve. From the high sales of apple products, we know that apple products will have a good design and most of the users said that i-series is convenient, which means the UX is good. How did apple product achieve such goal? I believe that they really have a very deep study on what people like and then try to come up with the most convenient design. They pay attention to every details of the product. That is the only way to come up with the most convenient design.

3) What is beauty?
In order to come up with the best looking UI design, of course we need to understand what is beauty. On the flight to Singapore several months ago, I met a professor from Architecture Department, Tongji University. I asked him what is beauty and how to understand beauty. He told me that it will be a long learning journey. I need to learn from the history and try to have more chances to view masterpieces. What's more, I need to pay more attention on daily life. For example, during the seminar, it is very clear that the lady dress up very nicely. In fact she tried to dress up with her own style. When she came to give the presentation, from what she wears, we already know that she is a good designer. If she can not make herself look beautiful, how could she come up with a nice UI design? Hence in order to learn beauty, start from now and start from self... (For girls, just try to make yourself have your own style. Starting form yourself does not mean to do a lot of makeups and wear expensive dresses. Starting from yourself means finding out the best clothes that will show your personalities. Be yourself. That is beautiful)

To conclude, up to now, I am still not a good designer. Need more time to learn and practice. After a long time, maybe I will be a good designer...

Sep 6, 2011

What I learn today

Today we heard many ideas from different people. Among all the presentations, three presentations, AED, Gary Ong's and Cliquefund were quite "interesting".

AED

I have to say that the idea is good and it is really an application that will create value for the whole community. However, I think that not it may not be able to attract too many users and achieve its purpose. This application is still like a one-time application. Users will try once and they may not try the second time in future. Hence the difficulty to achieve the purpose of this application is how to ensure that users will re-play the game in a certain period. Although I am not sure how to really make this app successful in future, I did hope that we could come up with a really good design and game flow for AED. It will save lives and it will be the way we could contribute to the community as a computer science student.

Financial application

In fact, when I heard the idea of implementing candle stick, I felt a bit sad. I could fully understand what he want and how much he believed that his idea is correct. In fact, when I was young, I also believe that candle stick, wave theory will make a lot of profit for me. However, it was not true. Let me tell you why. There is a financial company in the world. About 80% of its employees are Phds. The aim of the company is to make money in the stock market.How did they make profit in the stock market?  All the Phds in finance and mathematics, they hired,  will come up with the best prediction model which not known to the public. All the computer science Phds will try to implement them with the most efficient algorithm. However, it was not the end of the story. They will also hire engineers. They will study how to make the data transfer faster. If possible, they will build new hardware and direct implement all the algorithm in assembly code. What's more, in order to compete with time, they try to build a direct connection to the main sever of exchange, which will reduce the physical transaction time. Now let's compare. They have one of the best algorithm and they are almost the fastest one to make "best" decision, and they have enough money support. Even if a single investor could discover a good strategy, with only thousands dollars on hand, each transaction could hardly bring 1% profit. However, for them, even if they could only arbitrage for 0.01% profit, they will invest a billion and the profit will be a lot. Hence now I think that for most of the individual investors, financial market is the place for fun not the place for profit.

Just recall one interesting question read before.

As an investor, do you think that you are better than other 50% of all the investors?
Among 90% people will answer YES.

If you answer NO, then why do you still want to be an investor? Because it will obviously a lose to you.

If you are among the 90% people, who will be the 40% wrong guesses?

If only 10% of investors could make profit in the market, the rest will lose. Are you among the 80% of the wrong guess investors?


Cliquefund

Admittedly, the idea was quite attractive for me. However, later I realized that the idea could hardly be realized the future because they did not have a huge potential market.

1. Are there more VCs or more ideas in the world?
Everyone will have many different ideas and hope to make them true. Without money, some of them could be hardly realized. For all the entrepreneurs, they all have ideas but no money. VCs get many many proposals every year and many of them has almost tried out for months. They are not lack of projects. They really did not need this website to build connection with entrepreneurs.

2. For individual investors, you want to invest in a small company or stock market?
The idea of Cliquefund is try to build a "social" investment website. However, the problem is whether an individual investors would like to invest in this manner.

What is the characteristics of individual investors?
1. they do not have a lot of money comparing to VCs.
2. they did not have enough resource for them to verify which company will grow better in future.
3. they hope to make profit not lose money.

Then what is the characteristics of entrepreneurs?
1. they need money.
2. they could not guarantee the return.
3. fact: most of these start up company will die in years.

Now If you were the investor, will you join the website and make investment? Comparing to invest in the stock market, which more will be less risky?

It is true that some people like risk and would like to take challenge. But compare to self-build investment with small companies, I believe that they will choose to give money to VCs and let them to help you make decision. It will be less risky and more profit, isn't it? 

Aug 31, 2011

Facebook Seminar Critique on Square

Summary of the presentation

Square is a mobile payment service application built on iOS and Android. It aims to bring immediacy, transparency, and approachability to daily life. With the hardware support, Square enables iOS and Android mobile phones to use the credit card or other cards at any time and any places. It will benefit the user who will have a relatively low monthly transaction cost. Overall, Square is a relatively nice-designed application both on the user interface and user experience. The only concern for Square is the security issue on both hardware and software.

The three points I felt important are:

1. Target Customer and relative competency
During the presentation, it was very impressive to see their analysis on the target customer. They compare the cost between POS and Square based on monthly transaction volume. From the graph they presented, it shows a clear result of benefits for the low transaction user. I believe this analysis is very important because it indicates the target customer of this app and its competency. Without knowing its customer and its relative competency, it is hard to market and advertise an application. In addition, by comparing with POS, we also could see their potential market size in future.

2. Security Concern
In fact,  I did not realize that hardware will bring security concern before they mentioned about the hardware concern. For most of the applications, as they are built without installing new hardware to the device, it will hardly have hardware security concern. Hence, this application is a bit special. Meanwhile, as it is a financial related application, the security concern should always come first. Any possible security issue will possibly bring huge damage or lose to the application developers and company. For this application, both hardware and software should try to ensure the safety of all the transactions. In fact,  up to now, Square did quite well in software but not hardware. It still gets room for the improvement on the security of hardware.

3. E-payment
What I learn from this application is their idea on E-payment. In fact, E-transaction is a relatively common idea nowadays. But all the E-transactions will be done via E-bank account. They seldom consider to use the card physically. Many small vendors will like this application. An iPad + Square will be a moveable all-on E-payment machine. Comparing to the heavy and expensive POS machine, it is more convenient and lower cost.


My ideas about this application

1. What is the future of Financial Related Application?
In future, most of the financial related application will be dominated by large banks or financial institutions. It will be very hard for small company to come up with Financial related application especially involving payments. There are two reasons. First, financial institution or banks have a nice network and could easily attract and "force" customer to use its application because of its "monopoly" market position. Secondly, comparing to these large institutions, small company did not have enough money to support the application development or possible loss in future. It is quite obvious that any errors occurred in financial related application will result in a huge lose to the company. Normal software company could hardly bear with such lose.

2. How to make a successful application?
No one could guarantee that one application could be successful in future. However, as long as it makes the important ideas correct, the chance to be successful will increase.
1) Good Target Customer: whole world or rich people or adults?
2) From the perspective of target customer, what is their fundamental requirement?
3) Design a very goood UI to solve their problem.
4) Market your product to your target customer.

It seems that all the four steps are clear. But it is very difficult to achieve all of them, especially for the 2nd and 3rd item. What is the fundamental requirement of your target customers? Sometimes, even the customers do not know what they want, it will be difficult for us to figure out. Also what is a good UI? It really depends on different perspective.

Aug 22, 2011

Reflection after Lecture

Is this title too formal?

==========================CS3216===========================
1.monopoly

While during the lecture time, I suddenly realized that why I have so many problems or questions about web programming and why most people will have bugs. The reason is simple and perhaps sounds a bit stupid. I think it happened because all the products are from different organization or companies. Just suppose, if the companies or organization develop the whole set of php, js, html and all the things as a whole. I do not think we will have so many troubles. Just recall, 20 years ago, once, there was only one browser IE in the world, web programming is just like normal coding, easy coding and debugging.  (Of course, the word web programming did not exist at that time.) After years of development, we have various tools for web programming. Although people try to make them work fine with each other, it still not good. After thinking about this, I feel that if there is a monopoly company in the world, which will control all the php, js, css and related web programming language development, maybe the world will be easier for programmer.

Suppose that really happened in the past, then how will today look like? Maybe no progress at all. Maybe no facebook, no html5, no CS3216~~~

Monopoly in a field is good because the whole industry will share the same rules and standards. Hence it will be easy for people to cooperate. However, monopoly will damage the creativity and will slow down the potential improvement. Hence, maybe duopoly is better, just like today, we get Google, Microsoft and Apple~~~ The world will be progress in the dynamic equilibrium~~~ (Just like what we learn in chemistry)


2. changes
After showing the demo of HTML5 and Windows8, I suddenly felt a bit down. There are too many technologies in the world, we learn them today and maybe 5 years later no one will use them any more. The changes happen so fast that I am really worried whether I could follow the changes. During vocation, I bring an ipad2 back to my grandpa. I hope that he could at least try out the new stuff. But he only tried once and refused later. He did not know why ipad is useful. It will take him quite a long time to learn how to use ipad. Then I remember that Prof Ben has said that when he first tried Office 2007, he just felt not right and can not understand it. Now I am still young and smart, I will be curious about everything and keen to learn how to use them. But what if in 10 years later, I may not be as smart as now. And the technology advances in a even faster pace. At that moment, how could I adapt to these fast changes? How do I feel about myself? If at that time, what will be my core competency comparing to the smart and young and curious undergraduate? Suddenly I really have no idea about these questions.  However, I still would like to end this topic by this famous sentence

"Youth is not  a matter of rosy cheeks, red lips, or supple knees. It is a state of mind, a temper of the will, a quality of the imagination, a vigor of the emotions, a freshness of the deep springs of life."

Hope I will be young all the time~~~ (Does this lecture make me too emo...)


P.S. Although this lecture it about technologies, I really did not attract by them too much. Anyway new technology will occur everyday, just like meals per day. But it is my great pleasure to hear from people to see their insightful prediction about futures. It may be the best thing I could get from this lecture...

P.S. Around 30 years ago, programmer decided the world. That's why people can not understand why Steven Jobs insisted on his small rounded design. Now, the world is decided by the designer and marketing people. Everything is possible to be coded...

P.S. 我不管以后是苹果还是芒果,反正果子总会有的,不会饿到。。。很冷啊。。。



=========================Other things==========================

for this week, linear algebra is boring...

for all the weeks, I will try to understand set theory. Although during today's lecture, lecturer keeps using N(the natural number set notation), I keep lost...:-(

If anyone wants to challenge his/her IQ, take group theory or set theory...

TMR, fix the bug, it is a must...





Aug 9, 2011

what I hope to learn in CS3216

It is quite a typical "Ben" type of question to be answered at the beginning of each semester. Although I do not like it at all, it makes me clear that vacation is over and before taking any module, I have to make my goal clear.

Why do I take CS3216 should be the question answered before what I hope to learn in this module. Anyway in case the blog goes to long, I will list what I hope to learn in this module first and followed by the reasons.

What I want to learn from this module?

1. Business idea. What is the best way to promote an application? What is the business opinion towards an application? How to evaluate an application? Not sure whether I will learn all about this. But I think I will at least find some clues.
(difficulty level: possible to hit part of the goal, very unlikely to make all the questions clear.
overall difficulty level: 90/100)

2. Challenge again~~~ Without any doubt, CS3216 is a huge challenge to me, to my time management skill. Not sure whether I could survive and how I finally survive.
(difficulty level: I will survive almost for sure. But not sure whether I will be happy with the way I survived from this module.
overall difficulty level: 99/100)


3. Be a good coder that at least I could satisfy with myself. 
(difficulty level:I could hardly satisfy with my coding skill in future
overall difficulty level: 200/100)

4.  Hope that I could write a blog everyday, no need to be so long,  even a word will work. Test for myself .....
(difficulty level: self-control is always the problem......

overall difficulty level: 0/0 )

5. I do not like facebook because it is kind of wasting time. However, it is useful in the sense of information passing. Hence maybe after this module, I hope that I could like facebook a bit....

(difficulty level: should be easy to achieve. anyway I need to use facebook more often in future. 
overall difficulty level: 0/1 )

Why do I take CS3216?

1. Honestly speaking, satisfy my major requirement, no other choice.

2. To be a better coder. (Maybe I should have already achieved that goal when I finished CS3217. However, up to now, it is still hard to convince myself that I am a good coder. Hence it will still be one of important reasons)

3. To be different. Use the knowledge from different fields and integrate them.

4. To learn business. Sad story that my team did not get the prize for iCreate Competition. There are several reasons. Two outstanding reasons are
            1). I am not a good coder.  I did not try my best to product a user-friendly and bug-free application.

            2). I have no idea about marketing. Sometimes, appearance (UI) says louder than functionality.

Hence I have to take this module, to learn from the industry people to see their ideas and options toward one application product.