
“Your program is stupid. It doesn't work,” my wife told me (2010) - dsego
http://stevehanov.ca/blog/index.php?id=101
======
koliber
Happy wife == happy life.

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.

~~~
Drdrdrq
Yes, except... What if saturation is 0.001? Or 0.01? Where is the limit?

I don't have a better solution though.

~~~
tejaswiy
The reasoning there is if the saturation was at 0.001 someone made a conscious
decision to put it at 0.001 and we shouldn't be messing with it.

------
whiddershins
I've seen casual users get confounded by that aspect of the color wheel more
often than not. Basically every casual user who I've seen try a color wheel
for the first time makes that same mistake and gets a little confused and
frustrated.

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.

~~~
kstenerud
My biggest pet peeve is greyed out buttons. No explanation as to why you can't
push the button. Just the inactive control, sitting there, taunting you.

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...

~~~
marssaxman
Curiously enough, an attempted solution for this problem was one of Apple's
flagship features in Macintosh System 7, way back in 1991. It all ended up
being more work than it was worth.

[https://en.wikipedia.org/wiki/Balloon_help](https://en.wikipedia.org/wiki/Balloon_help)

------
tyingq
Watching playback from session recording services (getjaco.com or similar) can
be soul crushing, but educational.

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.

~~~
Nadya
I agree 100%! This is probably one of the worst things I've learned the hard
way. You begin to notice that many of the hardest things to "get just right"
are completely skimmed over by nearly everyone. That fancy section you spent 3
days making perfect? Nobody even looks at it.

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!

~~~
tyingq
Search is especially hard. People are so used to how smart Google is that they
type long, natural language queries into our search boxes...

 _" red widget for under $100 with free shipping"_ (which, of course, doesn't
work...)

------
woliveirajr
Sometimes it's good to have a sincere feedback from a user that won't refrain
to use the exact words that crosses his/her/their mind when a problem arises,
and you can trust that the _normal_ user from your app would use the same
words and then look for another app. (Or site, for what it matters).

Otherwise, how would you know that _n_ users dropped off without telling you
why?

------
jacobriers
I like mine better :)
[http://codepen.io/JacoBriers/pen/EjKgJQ](http://codepen.io/JacoBriers/pen/EjKgJQ)

~~~
Ruphin
It is really difficult to select a full black or white on that color wheel. I
feel I would never want to use it in a drawing tool for that reason alone.

~~~
jacobriers
That's true. We usually combo the wheel with a palette picker to overcome that
problem. Something like this:
[http://jsfiddle.net/jacobriers/hhsfj4tf/1/](http://jsfiddle.net/jacobriers/hhsfj4tf/1/)

------
amelius
I think it is silly that the triangle actually touches the circle at three
places instead of just one (i.e., the place indicative of the selected hue).

~~~
throwanem
Beats me why, but every picker I've seen use a ring-and-triangle UI does that.
Maybe it's for the same reason that primary colors are always 120° apart on a
color wheel?

~~~
theoh
I can't speak with authority about the origins of that kind of color picker,
but I'm 100% sure that is not the reason. It's just for geometrical neatness.
The adjacent colors at the "back" corners are not useful or relevant.

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...](http://www.greynotgrey.com/blog/wp-
content/uploads/2012/06/herings_color_wheel.jpg)

~~~
abritinthebay
I didn't know I needed this... but I need this.

------
yakshaving_jgt
Computer nerds are a special breed, aren't they? I mean, who has the audacity
to begin a comment with “Your wife is stupid.” ?!?!?!

~~~
pbhjpbhj
Subtlety isn't their strong suit but they have a sort-of point. Perhaps he
should have just shown her how to use that generic UI element: "click the
outer ring to select the colour, click the triangle to select the tone".

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.

~~~
koliber
Let's say that, as you say, his wife is now frustrated with every other color
wheel that uses the standard behavior. She now feels that his program is
distinctly better, at least in regard to color picker behavior than other
programs that use what is now considered the standard. This is what I would
call a competitive advantage.

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.

~~~
taneq
Except unless most of those users are like his wife, they'll already be
familiar with the standard colour wheel. And so if his works differently,
they'll be annoyed by it, because goddamnit people we have standard widgets
for a reason. And then by pandering to the few, you annoy the many.

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.

------
Jaruzel
Why is he coding in a Color Picker anyway?

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.

~~~
vertex-four
If you're developing a half-way complex web application, you largely don't
want to depend on OS default dialogs. They can be buggy, detract from the UX
of the rest of your application, require additional support as now you need to
explain how to use the different dialogs on N different operating systems, and
it's often the case that your application is the first time the user comes
into contact with that dialog anyway - they're usually not nearly as commonly
used as you'd think.

~~~
taneq
I'm trying to think of a cross-platform framework that didn't eventually do
away with native widgets, at least optionally. Java went from AWT to Swing,
wxWidgets has wxUniversal, even the <button> tag got custom skinning.

Is this becoming a pattern? "Cross Platform Requires Owner Drawn Widgets."

------
rocky1138
Many of these comments are about the colour wheel, when in fact the real
discussion should be about whether or not it was correct to change the colour
wheel to satisfy his wife.

~~~
freehunter
I made an infinite runner recently to try out Phaser.js, and I let me wife try
it. She loves infinite runners, plays them all day. Her comment? "I hate it."
Why do you hate it?

"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.

~~~
cvs268
Are U sure its the game that's bothering her?...

[https://your-comic-
stop.wikispaces.com/file/view/SL010624.gi...](https://your-comic-
stop.wikispaces.com/file/view/SL010624.gif/173756639/492x315/SL010624.gif)

~~~
cocktailpeanuts
haha I agree with this, in my experience this is 90% of the case when your
partner responds that way

------
douche
Maybe I'm just used to it, but I never had much trouble with the old Paint
color-picker, that was sort of like a 2D spectrum[1].

[1]
[http://media.tumblr.com/tumblr_ls9s60OkvV1qz9jbw.jpg](http://media.tumblr.com/tumblr_ls9s60OkvV1qz9jbw.jpg)

~~~
drb311
> the old Paint

That's not the old Paint, that's the new Paint!

~~~
ygra
It's Paint, not Paintbrush. In any case, that's simply Windows' colour picker
dialog that can be used by any application.

------
munificent
Another option would be draw the hue right using the currently selected
saturation. That would mean that the color you click is the color you get,
whatever the current saturation is. If the saturation is zero, then the entire
ring becomes a uniform gray bar, making it clear that clicking anywhere isn't
going to have an immediate effect.

~~~
qb45
But then the triangle shows only one hue. I wonder if some people wouldn't at
this point decide that there is no visible way to choose other hue and give up
without trying.

~~~
munificent
The triangle always only shows a single hue. It's two dimensions vary the
saturation and brightness (or lightness). Hue is fixed.

------
wtbob
His webpage certainly doesn't work with JavaScript disabled.

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.

~~~
Retr0spectrum
We've gone full-circle:
[https://news.ycombinator.com/item?id=12949986](https://news.ycombinator.com/item?id=12949986)

------
vorotato
sounds like an example of complicated defaults more than a poor behavior
pattern.

