Showing posts with label interfaces. Show all posts
Showing posts with label interfaces. Show all posts

Credit where Credit is due



Ok let's please stop the Microsoft versus Apple flaming for many reasons; it is really not doing anybody any good besides creating lots of anger and worthless arguments that lack substantive backing to them. People, in general, cannot argue the Microsoft vs Apple discussion properly because they let it get personal. One side of the argument is part of their identity, and nobody can argue about things in their identity objectively (PG: Keep your Identity Small).

These two companies have two completely different outlooks on business, customers, and goals. Let's begin with a metaphor. You have two choices when it comes to the country and government you live under. One is a police state. Here you are very limited, and live under rules like "must drive on the right side of the road", which are restrictive but guarantee you a number of standards and expectations. You are guaranteed to have roads where they matter. Guaranteed to have some form of social service and guaranteed to be on the road with mostly competent drivers. On the other hand in this state at the age of 14 You cannot hop into a truck and drive  it to earn some money or for any other reason. Nor can you at the age of 20 drink wine with the gourmet meal you spent 2 hours cooking. Some may argue that is it good that people cannot do those things, while others may argue that you should be able to choose. Obviously people do break these rules but these are all exceptions and they happen all the time.

The other side of this story is a free state. Here you can do whatever you want. Drive a car, fly a plane, ride a bike without anybody bothering you or asking you for credentials. However with all this freedom comes the problem of no guarantees. I no longer have the guarantee that everybody on the road is a safe and reliable driver. (Granted this guarantee did not hold before, but there was a high confidence level that the rules would be enforced).

This is really what the microsoft vs apple argument comes down to. A choice of freedoms versus guarantees. I can install Windows anywhere, ranging from the brand new computer i got from dell, to the computer i built myself from random parts, to the computer i had 10 years ago. I however have no guarantee that these will have the ability to run with windows properly. Microsoft lets you do whatever you want. If you have windows you are their customer and they will support you, effectively forever. People who bought a windows 10 years ago, are still considered customers, and there is still code to support their legacy hardware and software. Microsoft does not force them to upgrade for new things, does not force them to use limited hardware or do anything. Apple on the other hand said if you bought something from us 10 years ago, you are no longer a customer, they do not need to support your old hardware and software. They will not support you, so you need to upgrade your hardware, your software to follow us. Your old code will not work on the new platform. You cannot buy a random computer from dell and put OS X on it (well you can, but that is a different story, similar to people driving without a license),and  you can't put OS X on your 10 year old PC.

Apple is fully controlled and at the expense of freedom they guarantee you a number of functionalities and securities. The OS will always function the same way. It will be compatible with everything, all the UI's will look the same, and none of the programs will be harmful.

This applies to mobile solutions as well. Windows mobile is designed for a WIDE variety of hardware. Hardware that may support a camera, 3G, GPS, touch screen, Wi-Fi, accelerometer and a bunch of other features, or may not support any of them. iPhone OS is designed for the iPhone and iTouch. It is designed to work exactly with that hardware, the Wifi, the Touch Screen, accelerometer a specific screen size and resolution. They do not need to worry about platforms that do not support this, they do not write code to work outside of this platform, they do not care if it works outside this platform.

In the end you are trading guarantee of stability versus freedom and sacrificing bugs and bloatware for this freedom to handle any situation or platform you want.

I respect both companies equally. I love the design of apple, and some of the features or stability of their OS X. I also love the ability to use Windows XP on an ancient machine, move it to a new machine and never upgrade hardware or software. OS X has many wonderful features, (UNIX base, spotlight, etc.) that are great to use. The limitation is that i need to spend $1500 to get this on a decent machine bothers me. Windows also has a number of features (simplicity, task bar, massive amount of ready to install programs etc.) that make my life simpler. I also have the ability to use it on a 200$ computer, or a 3000$ computer.

You may have noticed that i left out a side of this argument, the linux side. I did this for a number of reasons, mostly personal issues that keep me from objectively judging linux due to my experience with it is personal, and i would be very biased (biased with, or biased against does not matter). Linux has its place, but it is not really developed by a company as a product.

In the end let's stop the war. You are on one side or another because of personal reasons, the choice is part of your identity, and in the end your arguments will be a large flame war. 

Acknowledge the fact that both of these companies accomplish something orders of magnitude more complicated and better than anything you could ever do, so stop criticizing without providing viable solutions.

Designing with "White" Space

Some of today's hottest new trends are touch screens. iPods have touch screens, blackberries have touch screens, android has touch screens, and various other phones and devices have touch screens. 

Just like regular screens, touch screens need some way of navigating, selecting and scrolling. Scrolling could be done via an ugly scroll bar that is bulky to be used by a finger, or tiny to be used by a pen. This is ugly and serves limited purpose. In order to combat touch scrolling and navigating and moving around, many phones have adapted gestures. Swipe your finger left to right to turn pages or move across pages. Swipe it downwards to scroll. Pinch to zoom in and out. These are all really nice. However there is one problem. Somewhere you need to start. While you are touching to start the gesture, you don't want to click any button. Interfaces that are clean, and have plenty of white space work perfectly. Users get to place their finger somewhere, with no worry of accidentally clicking, and then perform their gesture. 

On Windows Mobile 6.1 (6.5 does look very promising) there is very empty little space. In some interfaces it becomes incredibly difficult to figure out where you can start your gesture. Windows Mobile also has the issue of not having a clear definition of the button. A lot of the targets are fancy icons, icons that have no clear border. Personally, I feel my finger is outside the button, however the program does not.  On iPhone and iPods this white space is still rather scarce. There is space at the bottom and the sides. While not much more empty space compared to windows, here there is a clear definition of the buttons. Each icon has a very easily noticed border. I know where I can and cannot stray. 

Obviously "white" space is important in the main interface of mobile devices. They help us use the navigation and tools of the phone. However this concept still applies to web pages and other programs you do. If your entire web site is a mass of buttons, stuff, and links, when i go to it on my touch screen i have a problem. There is nowhere for me to start my gestures. If i try to zoom in and out of the webpage i cant without clicking something. 

This argument is completely from a usability perspective. There are enough people far better at designing aesthetically pleasing interfaces who can tell you the importance of white space. It provides for a break for the eyes, separates content, relieves cognitive load, allows the user to concentrate on the content and many other advantages. Design is a very tricky thing, when it comes to new interfaces it gets even more complicated.

"Design like you give a damn"
-TED Conference

Human Computer nteraction (Part 2)

This is a continuation of Part 1 showing some very preliminary results. 

A very important aspect of conducting research is ethics, and when in a university environment this is handled through the internal review board (IRB). They make sure that any project dealing with human subjects is conducted ethically, and that all the subjects are treated properly, their rights not disrupted, and privacy is handled properly. After two months of handling the IRB paperwork, I finally have the go ahead to recruit subjects and see some data.

This data is simple, long logs recording the pixel (x,y) location of a users mouse cursor. The main point of this is to determine various user habits. If we can look at how users behaved, we can try to predict where they will be, and place all interfaces in the right spot. By placing navigation, and content in the right part of a computer program, we can make users life easier. 

Now we go back to the question asked in the previous section. Where is the location of the mouse over a period of a month? Does it trend towards the center of the screen? The upper left? The upper right? Maybe towards the bottom? How does a mac user differ from a windows user? how does a programmer differ from a secretary, or from somebody who uses the computer only for entertainment. 



What can we tell from this image. Obviously it s a a lot of data, and shows little detail. However it does point to a few very important habits. I tend highly to the upper left. I am also a very heavy user of the task bar, browser tabs, and close buttons. What happens if we look at all this data over shorter periods of time. More details, less proper averaging. 



This image shows the results from just a few hours of usage. I can't tell as much about where my mouse tends to live. I can however identify independent paths. What was the point of these paths, are they straight, or do i go down round-about paths. How fast do i go between targets.


Finally lets analyze another unknown user. I can not say anything abotu this user, but what can you tell from it. How does this user compare to me. Obviously if we were designing an interface for me, it would be of best use to put my navigation in the upper left but how about for this user.

I asked a lot of questions and posted some data. Comment, give me some ideas, theories, answers, and suggestions. Please cite me anytime you use this data. Suggest ideas and things you notice or want answered. All of this data is just now coming in, and we are still coming up with new analysis to run. 

Finally, I really need more participants for this. If you want to contribute to the academic filed contact me (razvan.orendovici@gmail.com). I would ask you to run a program on your computer which logs your mouse position. It does not log any personal data or key strokes. Doing this for me would be a great benefit.

Human Computer Interaction (Part 1)


I never really introduced the purpose of this blog, so let me take a second to do that. I spend a large amount of time reading various articles; I am what some might call a knowledge gatherer. At the same time I try to apply this knowledge, however it is difficult. My head is filled with too many things I am working on, want to work on, or am figuring out how to do. Needless to say there are a few simple things to describe what i will talk about: DESIGN, TECHNOLOGY, BUSINESS, and every now and then a little bit of politics, and social work.


Design to me has two components aesthetics, and usability. Both are equally important. This article i will cover usability through a few basic issues of Human Computer Interaction (HCI).


One of the major theories of HCI is Fitts's Law. Simply put, the time it takes for a person to hit a target (with their hand, with a mouse cursor, with their eyes etc) depends on 2 factors. Distance to target, and Size of target. The closer you are to a target, the quicker you can get there. DUH obvious. The larger the target is the quicker you can hit it. This is slightly less obvious but equally important. The main reason this works is because when its size increases, you will not overshoot as much, thus can go with much faster speed towards it, without having to worry about overshooting or slowing down as early. On a computer, a location on the edge of the screen is considered to be of infinite size. 


A target can be anything, the link the user wants to go to next, the save button, the button to close a window, the fact they were searching for, the search result that is most optimal. Mostly we deal with navigation and control, we want the user to be able to use the menu as quick as possible.


There are 5 spots on a computer screen that are optimal. The four corners all have infinite size. Thus i can move my mouse incredibly fast towards them without worry of overshooting. I will hit the corner, my cursor will stop there, and i can keep moving till i slow down. The fifth spot is the spot i am at. Distance to it is 0, thus i don't need to travel at all.


Following these five optimal points, there is a ranking, points on the edge are considered to be of infinite size in 1 direction, but can still be missed on the other axis, and the rest of the screen depends on the distance from "home."


So let's try to use this to figure out where to place our navigation and most useful information. Windows has the start button in the bottom left, and the clock in the bottom right (actually i lie, in the corner of the bottom right there is nothing). Most windows application have the close button in the top right, and another menu in the top left. OS X has the top corners eaten by its task bar, but the bottom corners are open (however, few things can go that low in OS X without getting in the way of the dock menu and complicating things). Linux just goes ahead and uses all four corners. All 3 operating systems own the current spot through the right click, and all application have their own right clicks. All 5 spots are gone. Perfection is out of the question.


Let's try to optimize. We have two variables to play with, the size, and location. I can easily change my button from being 50x50 pixels, and make it 200x200 pixels. That will make it easy to see, and easy to hit. How many buttons can i have on my screen then without them taking up the entire screen and leaving no room for content. Size is important, but can be difficult to work with. I can try to put my buttons closer to where the mouse is. 


Hold on.... WHERE IS THE MOUSE. We don't really have any idea where the mouse is actually in its home position. We could assume its dead center of the screen, or anywhere else.


That will be the focus of Part 2 coming sometime later this week. Until then, please feel free to leave comments, and possibly discuss where you think the mouse is at home, and how it behaves. I can probably test all of these hypotheses later, maybe even include them in part 2, or a later part.