Now Compiz, Beryl is all over the place and there are massive discussions about it. But I have a few doubts about it.
First of all, how do we benchmark an interface, especially its efficiency. I would like to propose a few speculations that could hopefully evolve into some sort of quantifying standards of a desktop interface.
In an interface, I think there are two important elements. The capacity of active working area and the convenience to approach something else useful.
More specifically. First, we could have a factor a = number of normal size characters contained times area per character (font size) / the area of the whole screen. In my opinion, the larger the working area, the better because ideally, the whole screen is usable and should be utilized for current purpose. So the larger the better. Suppose this percentage is a (active window percentage or AWP).
Suppose you are in your favorite house and you want to cook your favorite food. You have a microwave and an oven. What's a good expectation of how long it will take you to cook. Well, the proportion of times you cook with a microwave times the time it takes to cook with a microwave plus the proportion of times you cook with an oven times the time it takes to cook with an oven.
So what's your efficiency of cooking?
The longer it takes you to cook, the lower your efficiency of cooking is. It is, the weighted average of 1 over the time it takes for you to cook, ie. the proportion of times you cook with a microwave times 1/ the time it takes to cook with an oven. plus the proportion of times you cook with an oven times 1/ the time it takes to cook with an oven.
What if you have two microwaves.
If you have two microwaves, your efficiency of cooking go up. Now, I assume your efficiency goes up "twice". In the microwave cooking case. Within a reasonable range, it is valid.(If you have 100 microwaves, it's not likely you're 100 times efficient because it simply blocks your way.) So your efficiency index is weighted average of the first term, 1 over 1st microwave's cooking time plus 2nd microwaves cooking time and the second term 1 over the oven's cooking time.
Now, you're all ready to go.
Second, we should see how fast we can switch to another task. I feel that this is much more involved than the above one because this is a much more complicated concept. There are different ways to start a task and the frequency at which we want to start certain tasks differ. So my construction is : for the nth way, we use ebn to denote its complexity level. And bn is defined to be : if you can reach it by clicking. Then if it's m click away. Then bn is m. If it's a command with m parameters. Bn is m. If it's a hotkey, then bn is the number of keys you have to hold simultaneously. (Emacs is a special case where you've got hotkeys following each other...let's not worry about that at first. They are all one key.)
So the computer interface efficiency index(CIEI for short) I propose is a times (summation of (1/eb1+1/eb2+.....) times the frequency of task b used) . A little more explanation about validity. The larger the active window, the happier we are. So it's proportionate to a. The more complex it is to start a new task, the more unhappy we are. So it's 1/ebn. The more ways to start a task, the better even though we should probably only use a few, but the other possibilities are worth consideration because sometimes we may have already navigated away from the desktop. Oh, by the way, the numbers ebn, which is the number of clicks away etc. should all be counted from the desktop right after startup. We need to have it weighted because there are tasks that we seldom use and there are tasks we often use. And it just makes sense to put more weight on the ones we usually use.
So the formula is CIEI = AWP * weighted average of task b (over all tasks) times b's efficiency index (which is 1/eb1 + 1/eb2+ ...) So with a computer that does two major tasks b, c (others are just too rare so we approximate it with a 2 case) 1/3, 2/3 of the times and there are 2 and 3 ways to start each application respectively.
CIEI = AWP * ((1/3)*(1/b1+1/b2) + (2/3)*(1/c1+1/c2+1/c3))
What I have in mind is that by the product of these two numbers, the index should convey some message about the balance between a larger active window and a more direct access to other functions. For example, the POS machines we usually have most its buttons on the interface few menus. Because there are so few functions. If we had large menus and stuff, it increase the active window space but make us go many steps which is rediculous. But if we had all possible functions displayed on our computer, we have direct access to everything but we have no active window space.
The case I considered is more applicable to a computer. I think there should be a few amendments made to make it more general. In a menu-click kind of situation, a factor c should be timed to bn each time we have c choices. Because the more choices you have, the harder it is going to make for you to go forward. And in a command-line situation, the number of letters you usually need to type before hitting tab for auto complete should also be multiplied similarly reasoned as above. The AWP should also be made 1 if it's a small function that is already fully shown. You don't need a full window for volume control right? Oh, considering this, the AWP should be weighted averaged too because the AWP may differ from each application. So, the product of weighted average of both numbers.
That's what I thought after I see compiz-beryl. I don't know if its 3D design and everything will actually increase the productivity. But it certainly is something we can just play with for fun :).
People suggested various functionalities that compiz-beryl could be increasing productivity with. I haven't been able to explore them all. So it may not be fair to make a judgement. But what I suggested is a standard to measure efficiency of an interface. The if the efficiency of compiz-beryl is really increased, then compared to bare GNOME, we should see an increase in the index. (Assuming the index is correct.) So if someone have any suggestions against the way the index is computed or if someone is familiar with compiz-beryl, why don't we see what we've got in numerical terms. It may differ from the little highlights that strike us. (Again, I'm just saying all we know should be we don't know anything yet.)
Suppose you have 100 windows. The windows are going to appear in expose quite or relatively small right? Then it'll probably take you longer to go through all these windows. to find the one you actually want. Which corresponds to my multiplying a factor to the number of click amendment. Under that circumstance, windows categorizing similar windows could beat Expose in its efficiency. But we're not just opening 100 windows daily, so that's why we need an index to achieve a straight answer, ie, on average, which is better.
I received various feedbacks and comments. I will selectively reply to some.
1. "There is feature A that is improving productivity". "There's plugin B that is improving productivity." Yes. And it should be reflected in numerical terms in every task's efficiency index. The efficiency index is the summation of 1 over bn, the complexity to invoke b the nth way, over all possible ways. If you have one new feature or plugin that makes something much easier, then we have a new term 1/c where c is the complexity of this feature of plugin which is supposedly small. And 1/c is then large and when you time a large number to another number, the CIEI gets much bigger. Which means again, the number shows the efficiency. Thanks for bringing up a case I can show how the number works. If you want to dig into features of compiz-beryl, there's a blog that has been keeping an eye on it.
2. "You haven't referred to X", X being "real quantified human brain analysis information" or "software engineering" of "User Interfaces". Yes, I didn't refer to them. However, These two fews are mainly for constructive reasons. Like in Economics, you don't explain how Economics works and how the industries are interacting but you sum up price times quantity and arrive at a unique number GDP. It's fairly possible that software engineering provides other measurements too but all measurements are part of the truth. And when simplicity and effectiveness is in consideration, we make a choice. You always hear about CPI but you less hear about PPI. That means we think overall, CPI is a better index than PPI (for various reasons). CIEI that I proposed is a measurement. Can you say GDP doesn't depend our knowledge on accounting?
Disclaimer:
This is not a judgment but a disposal. I am just putting forward a way that I think is sensible to make a judgment about a desktop's efficiency. My opinion is: This should be a good benchmark. Whatever any interface scores on it, this should be in some sense, a reasonable estimate of its efficiency, in relative to other interfaces (The index alone gives no information. It is only the comparison of the numbers that contains information.)
Leatherboard1
Compiz, Beryl, eyecandy vs. productivity. My approach to quantify interface efficiency
Subscribe to:
Post Comments (Atom)
1 comment:
Hey Paul!
This is great! The formula actually makes sense, and fairly accurately represents how efficiency is determined in a desktop environment. Keep up the great work! I love the blog!
-linnerd40
Post a Comment