Thursday, February 18, 2010

UI Again

From a technical perspective, one important thing of UI design is deciding how much freedom users have -- because users can only do with what they see
However, from an aesthetic point of view, make the UI organized, which means simple. At the first sight, users should get to know what this app does.

I guess their first version of UI was too much at the first sight (I mean their homepage). What I will expect is ONE SINGLE input box waiting there. I dont need those "need quick help?" , "set a deadline" , "who do you want to ask", and not to mention the ads -- they simply should not appear on the first page. If I need more options I can just go to another page with more options, if not by clicking some button and the options show.

Oh, no... the pictures at the top of the screen are not ads... They are just part of the UI and notifications from friends who need help. They are too colorful. I dont like pictures -- they load slow and flash my eyes. Just give me text, you can style the text, fine with me. I hate pics, especially shining GIFs. Give me simple art.

But the badges.. quite a good means to get people "addicted". There will be people seeking this kind of honor and the app will work... because of the existence of such people.

That is it. UI is such a thing -- you can make a 90% accurate judgment in the first minutes. A good UI says itself. A bad UI ... is just lousy. What to talk about?!

random thoughts

This is an entry about random stuff, actually no so random -- it's about cs3216

An agreement, a disagreement.

3216 is not so about programming -- Prof Ben

I would say it is wrong. Without practiced web programmers, how the hell can make it a full-of-feature app?

3216 is about making a difference -- same person :p

Yes, I agree. I mean, I understand this deeper now. This morning an idea was brought to me again ( In the years of middle school, I was driven by it to screw all my teachers, but somehow I lost it here in NUS) -- who the hell will bother what are your secondary school grades now that all of you are now in NUS??? Similarly, who the hell will bother whether you have 1st class or 2nd upper if you eventually made a (big) difference?

Life is about making a difference -- whether it is on yourself or the rest of the world. Making a difference, I perceived this phrase as something to do with subtraction first time I saw it. :p

It is about creativity, (positive) impact.

Life is not about other things, the highest level of living your life is leaving some "differences" before you die.

Simple as that.

Application Critique on Texas Hold’Em Poker

Last night's presentations were wonderful -- prof's profile pic was intensively used. Other than that, there are some important lessons I learnt from the presentations.

Take the Texas Hold’Em Poker as an example, it is basically another poker game -- "technically nothing remarkable". I installed the app and tried a few rounds, design is not top-dollar job, either. But it won about 20m users.

Why?

Reason is that (personal view) execution matters, and execution need to be quick. Besides these, it is a Zynga game -- the company spent a lot of money on advertising.
So, if idea is cheap, then execution matters, and that needs to be done in a very fast way.

Another thing we can learn from Texas Hold’Em Poker is that although the UI sucks, the logic behind this game, or the way it keeps its gamers MUST NOT suck. I mean, there must be something that "binds" the gamer to the game. The "7 sins" was a very very good illustration -- I knew this, but I couldn't find a nice word until last night. Yes, it satisfies people's greed, envy and pride -- these are the very things are keeps gamers in the game -- that is why we have people creating multiple accounts, "shifting" money from one account to another.

Similar situation in China, where the government is taking strong actions against those online games that include violence, "level up to unlock more places, events, items..." ... all of which are very harmful to teenagers.

I mean, to be a "successful" game, one of the (fast and profitable) ways is to insert elements that instills people's wrath, envy, pride .... -- but this seems unethical to me.

A third thing I learn from this poker game (indirectly) is that : it takes much to be good, but it takes little to be BAD - real bad. It really takes much consideration (for the user) to be a good piece of software, which becomes a "master"piece, whereas putting money in the first place, money indeed comes as a result sometimes, but it will not last long. I feel I am talking without argument and anyhow came about with this idea, maybe it is because I really do not have much interest in gaming bah.

Lesson 3 _ deadline drawing near

Actually you see from the title the deadline is drawing near, and I might be a bit quicker about this blog.

Yesterday we had guys from AWS giving lectures. Honestly speaking, I lost 80% of the content over a night. Things I remember are "Cloud Computing" , "bandwidth and latency" "abstraction layer (i.e. the virtual machine sandwitched by clients and physical machines)

Yeah , Cloud Computing. Another course I am taking is also talking about Cloud Computing -- Computing is becoming more and more like a public utility , like electricity. (The Big Switch) -- People now dont set up a generator at their homes to use electricity, maybe someday in the future we will not use our own computers to do computations -- we have tons and tons of data centers everywhere around the world, all we have to do is to submit computation jobs to server and wait for reply from server.

What if generators that enpower a bank, or city hall, or the entire city, break down? Things will be getting into trouble. It is similar in the context of computing. Although AWS is providing best/one of the best web hosting service, but still some people prefer not to be in the cloud -- like banks (as mentioned) , national defence(of course :p). They will have their own means for (secured) data transmission.

OK. pretty much for cloud computing. A little about FB assignment.

Frontend is near finished, backend still got a lot more to accomplish. .. get to rush to class now.. so I need to be quicker.

basically we wont be able to integrate payment features .. for now. We hope to have an up-and-running (all links are functioning, things in database can be grapped , etc) and good-looking app. We will try to implement more features (including payment) in Final Project.

Let me end with some of my thoughts. I just came up with how to change "can I ..." to "I can..."

can I? -> Just do it (dont care the result, which is probably bad) -> try to improve -> Just do it (there are a lot of trivial stuff to do, but just make your peace and finish one by one) -> I can.

Lesson 2 -- get to know team, break down the project

get to know team -- get to know what they are good at, how good at it, their ways (habits) of doing things (maybe better habits than I have, and I shall learn from them)

break down the project -- since most of the time tasks are not meant to be cracked solo -- because I am not genius.

schedule the work, do what you say -- in a software engineering project like this, it will be horrible that things do not get done ( since some people's work cant start without other people's work DONE).

figure out all the features, prioritize them -- even if you cant show the whole in the end, but you get the majority (and the most important ones) done at least. For example, when developing a game, the developers should try to get a very light-weight version done first, so that the artists can have better understanding what they are going to design the avatars, cursors, maps.... So things are prioritized, dont start with mother-of-all-designs.

These are what I learnt yesterday, hopefully can come up with some more, but I got to rush to class now. :p

3 catches -- first lesson

First lesson, as usual, the train hasn't started yet -- a comfortable "regular" NUS first lecture.

Ah... very unfortunate I had many catches today... --
1, overslept (from 2:30 all the way to 6:30! that is why I didn't set up an alarm. I was also surprise when I woke up)
2, consequently, lacking warm-up, I screwed up the show-and-tell -- forgot all I had prepared to say -- it just went "blank" -- I always do when I rush to a class after I overslept..

3, after school, returning hall the damn Fedora went "dead" -- keep poping up Nautilus windows... I was insane....

OK.. already a bad start, cant be worse, right! I got nothing to lose now -- I lost face already. :)

What I hope to learn in CS3216

Frankly speaking, I had no idea whether I will be approved to join the class since I "screw up" my 1101S final. But I do want to join the class since this is a cross-faculty module and I will be able to work with non-computing people. This is a good chance to experience *real* working life. I convinced myself again after I read from the 3216-info.pdf that we will work with different people in different assignments. -- I hope to gain real-life experience to work with people more effectively and efficiently in the future.

I know 3216 is a very intensive course. Prof Ben said we can get 3 A's elsewhere with the effort put in 3216 to get an A. But I won't regret. Joining uni is not all about CAP, but more importantly learning some stuff, including all those programming stuff , working with peers, scheduling the project, managing people... These are things that will benefit myself even if I do not leave uni as a programmer. I think this matters, and this is the truth of uni education -- most of the things ( programming stuff ) learnt at school are pretty useless. So I come to improve my social skills.

Um... seems I haven't talked about learning CS stuff at all. Computing/ programming stuff I can learn outside 3216, I would say. Learning PHP/mySQL/... is not my major aim -- I think I get the basics , if not the core idea, of all those through the training assignment.

"Bricks wall are there to let you prove how hard you want it." 3216 is intense; 3216 is full of treasure, so prove yourself that you want it.