Posterous
James is using Posterous to post everything online. Shouldn't you?
N3101777_33384447_8881__1__thumb
 

Out of James Aguilar

UI comparison - when talking about personal preferences just doesn't make sense

I'm planning on taking a little time to do an in-depth comparison of the Android and iPhone UIs some time in the near future.  Before that, I want to say a word about subjectivity and UI "goodness".
 
When I talk about one UI being better than another, I often hear back things like, "I prefer it this way."  Before I go into a whole lot of detail on reviewing these UIs, I just have to point out that this response is totally irrelevant.  How you feel about a UI is not the same as how good a UI is.  And when I say that one UI is better than another, I'm not expressing my personal attraction to it.  I'm evaluating how well it serves all people.

Here's a metaphor.  You and I are present at the beginning of the world, and we have to choose a single domestic animal that will be the only available pet in the new world we are creating.  Much like a UI, we're going to have to make a decision for other people, and they won't have the option of meaningfully changing it in the future.  Let's say that we're limiting our choices to cats and pigs.
 
So we do all the user studies and things come back ambiguous (or we just don't know how to interpret the results, which I think is a far more common problem).  In the end, you and I as designers are going to have to make a decision about which pet would be preferable.  That's why they pay us the big bucks.  In a sense, this is very similar to a UI decision about what font to use or the size of the padding, the interaction model, or any number of other aspects of a system.  While discussing it, I present my case: cats are cute, they are furry, they've been shown to have a mild positive impact on their owners' life span and stress levels.  They are relatively low on maintenance and expense, not too fragile, and they are clean.  They purr.  They would make a better pet species, I claim, than pigs, which are better for eating.
 
You shoot back with, "But I prefer pigs."  It's not hard to see how irrelevant that is.  We're not discussing our personal preferences.  We're trying to divine and shape the way our world will be experienced by its users.  (And it's especially irrelevant if you are an engineer, because your personal preferences in technical matters are probably a lot further from normal people than you realize.)  Although there's no scientific proof of this, I think there's a lot of evidence that a world with pigs as the only allowable pet would not be as good as a world with only cats.
 
So when I talk about one UI being better, it's true that that's open to debate.  And it's possible that my taste is the one that is broken and that other people have better ideas about which UIs will most please our customers.  But if you are still embracing the idea that no one is right, that everyone is entitled to their opinions and that no one way is better than another, then you and I are working toward different goals.  I'm trying to create a UI that people will love and that will grow my business.  You are just fiddling around.

Loading mentions Retweet
Posted July 8, 2009
// 0 Comments

Consulting is a really hard life

Loading mentions Retweet
Posted July 7, 2009
// 0 Comments

Considering an iPhone at the iStore, looking at a Macbook Pro

Why do these machines look and feel so dang beautiful.  Drooooool.

Loading mentions Retweet
Posted July 3, 2009
// 0 Comments

GUI is working, now on to the challenge

This is a screenshot of the GUI, which I now have working.  The little square is my satellite.  The circle is the Earth.  I will have to tweak the GUI, perhaps to skip some frames as it renders.  Nonetheless this is the basic thing.


Now it's time to start working on the hard part: my first transfer orbit.

Loading mentions Retweet
Filed under  //   icfpc  
Posted June 27, 2009
// 0 Comments

VM done, starting on GUI

Finished the VM after a small forgotten assignment bug and a movie with Sie Deen.  Now I'm working on a GUI so I can visualize what's happening in the system.  Hopefully it won't take too long.  After that, it's time to start working on the Hohmann transfer algorithm.

Loading mentions Retweet
Filed under  //   icfpc  
Posted June 26, 2009
// 0 Comments

ICFPC Entry 1

Starting work on an entry for the International Conference on Functional Programming Contest.  I don't expect to be a contender but it should be fun.  I plan to post all source code here after I finish.


Right now I'm half way through what I believe to be a working VM.  After that I plan to build a simple UI to allow me to visualize the game state, then get to work on the first problem.

Loading mentions Retweet
Filed under  //   icfpc  
Posted June 26, 2009
// 1 Comment

Things are getting seriously recursive

This is a picture of me posting a picture of Steve posting a picture of Steve's posterous to Posterous to Posterous.  I believe there are the right number of prepositional phrases in the previous sentence.

Loading mentions Retweet
Filed under  //   foolishness  
Posted June 20, 2009
// 0 Comments

My friend Steve posts a picture of his own posterous to Posterous

This is a picture of that, possibly to be used as evidence against him should he ever choose to enter politics.  What a goof.

Loading mentions Retweet
Posted June 20, 2009
// 1 Comment

Dear keyboard manufacturers

1. What the hell is wrong with you?

Loading mentions Retweet
Filed under  //   ux  
Posted June 18, 2009
// 3 Comments

Doing a little TopCoder today

I haven't done TopCoder in a little while.  For various reasons I've been worrying that my algorithm and fast analytic skills have been getting rusty, so I went to work on some practice problems from there this evening.  I've also been wanting to try my hand at C#.


I'm happy to say that I did OK on the problems I've tried so far.  C# is another story.  I had an "Aha!" moment on the latest problem I was working on and belted it out in .Net 3.5 in just a couple of minutes.  It didn't compile on TC's compiler, which was all kinds of frustrating -- you get more points for finishing the problem quickly.  I eventually figured out that they were using .Net 3.0 rather than 3.5, so I changed my compilation settings only to find that my Set emulation functions that had been working so well in 3.5 worked no longer in 3.0.  I hacked together a solution to the problem and still got a fairly respectable score.  It would have been stellar if I had been able to submit right away, but OK.

Then I went to the internet and found out that before .Net 3.5, C# people had to write their own Set classes.  There is none provided in the standard library as far as I can find with Google.  There are also no built in Intersect, Union, etc. functions available to work on other types of collections.

How do you ship a language for three major versions without a Set class?  Who does that?  My mind: blown.

Loading mentions Retweet
Posted June 14, 2009
// 0 Comments