“Your program is stupid. It doesn't work,” my wife told me (2010)
stevehanov.ca
stevehanov.ca
I think the author handled it brilliantly. He only changes the saturation component to 1.0 only if it was zero and the user clicked on the outer wheel. His reasoning is that clicking on the outer wheel is a leading indicator that the user will end up changing the saturation in order to see the effective color.
This way he anticipates the needs of users. I think it is a nice usability tweak with minimal negative effects.
I don't have a better solution though.
I am not familiar with this particular color picker and the resolution on the saturation. I would imagine that setting the saturation to zero is easy by clicking on the triangle and dragging into the corner, in order to corral the picker into the point at which saturation is 0. Picking a close-to-zero saturation involves a dedicated effort.
I wonder if we can generalize a UI antipattern:
- A control that the user can change
- but which has no effect due to the setting of another control
- but does nothing to indicate that state
This is one of the top reasons audio synthesizers (real and virtual) can be frustrating for even very expert users. You get caught in a situation where you are adjusting a control over and over, trying to perceive the effect, only to realize that it is doing nothing unless you change some other control that may be located far away (visually/physically/menu-wise/tabs/categories/etc) from the thing you are changing.
I find the whole discussion fascinating.
Macs are especially bad in this regard.
Would be nice if at least a mouse over would pop up an explanation for how to reactivate it...
I did this on one of my ecommerce sites and was surprised to see how many of my assumptions on how people use a website were wrong.
You get a good idea of how some people have been "conditioned" for how they search for things. Depending on the market - the only thing they are looking for us a phone number or a contact form. Even when the phone number is in the header, we see people scroll straight to the bottom of the site and look for a phone number in the footer!
"red widget for under $100 with free shipping" (which, of course, doesn't work...)
Otherwise, how would you know that n users dropped off without telling you why?
Dealing with color is tricky, I'm sure I made a lot of mistakes..
One interesting bug I think I found is with NSColor/UIColor. If you set the hue for a color, and then proceed to drop the saturation/brightness to 100%/0%, it'll wipe out the hue when you change the saturation/brightness back to sensible values. It could just be something with color spaces that I don't understand, but it seems like a bug to me (data is destroyed).
I read a lot about color working on that app, and it is a pretty deep subject. You can read all about the science aspects of color, light spectrums etc. Then you read something else and realize that color is just a human sense, that is all about perception and not set in stone. All the color spaces and representations seem to have their flaws and certain adjustments don't match expectations.
To summarize I tried to learn and understand color, but in the end it all seems like a mess. I don't have an academic background, so maybe this is just a lack of understanding.
So basically, if you're writing an application that exposes HSB colors to the user, you should be storing the HSB values yourself rather than relying on UIColor/NSColor to preserve them, because it won't.
It's odd I couldn't find information about this anywhere. The NSColor/UIColor docs don't mention it, but there is a clue I guess. They note that NSColor/UIColor is stored as CGColor internally, and CGColor doesn't have an HSB init.
Thanks again, I searched everywhere for the answer to this.
Some colour wheels do not put primaries at 120% angles. The "opponent" theory of colour perception from the early 20th C, which has been essentially validated, led to this example:
http://www.greynotgrey.com/blog/wp-content/uploads/2012/06/h...
By fixing it instead his wife will now be frustrated with every other colour wheel that uses the de facto standard behaviour.
Also, it should only jump/slide to a higher saturation if the saturation is 0, otherwise moving around the colours with a fixed but non-zero saturation wouldn't be possible.
If enough users feel the same way as his wife, his competitive advantage will be so much bigger.
This is why some programs are considered easier to use, or even "better" than others. It's the sum of these tiny little behavior differences that add up to a better user experience.
Over time, some of them end up being standard. This is evolution at work.
Of course, if he can find an unobtrusive tweak (as it seems he did) which maintains the standard behaviour while eliminating a failure mode, then good on him and it deserves to become part of the standard.
[1] never use a big word where a diminutive one shall suffice!
HTML5 has the input type of 'color' which uses the OS's default color picker dialog.
Edit: Oops, it's dated 2010 isn't it.
Is this becoming a pattern? "Cross Platform Requires Owner Drawn Widgets."
"I don't know." Well try to find one thing you don't like and tell me that.
"It's too hard."
What's hard about it? "I don't know."
If I made the player jump father when you tap the screen, would that help? "I don't know."
What about if you got more coins as you went along? "I don't know."
I showed it to a group of kids in the family, and they went nuts for it. And their feedback was much more useful! After I saw how they played it and heard their complaints and tips to each other, I changed it up and presented it to my wife again and she loved it.
Still couldn't quantify why though.
https://your-comic-stop.wikispaces.com/file/view/SL010624.gi...
You're not married are you ...?
He didn't make the change to satisfy his wife. He felt that his wife's underlying point: the wheel didn't work the way she expected, was valid, and made an adjustment.
That's not the old Paint, that's the new Paint!
But then again I'm not a designer...
What an exciting world we live in, when I have to give a stranger execute access on my computers in order to read his words. If only there were some way for him to send me text instead of a program.