UI tip: maybe don't round percentages to 0% or 100%
43 points
15 hours ago
| 6 comments
| evanhahn.com
| HN
lmpdev
15 hours ago
[-]
There is an inverse to this though

I sell 12-24V fridges with adjustable temperatures on them

More than a handful of times I’ve had customer returns because the fridge is “broken” and when I inquire further they refuse to use a fridge which deviates from the set temperature for any amount of time (even by one or two degrees)

By giving users the affordance of knowing the exact temperature - they’re appalled to realise it’s not a magic black box, and that the compressor kicks in to bring it back to temperature, and kicks out when it reaches it

They no doubt have no issue with their domestic fridge, which does not afford them the ability to see the exact temperature, despite functioning the same under the hood

reply
bhaney
15 hours ago
[-]
For the same reason, nearly every consumer thermostat will just lie about the measured ambient temperature (often by more than a whole degree F).
reply
mminer237
12 hours ago
[-]
Digital scales are notorious for this. Rather than show natural weight fluctuations, plenty will just lie and say you weigh the same every day until it's a couple pounds different.
reply
crazygringo
15 hours ago
[-]
Might be easier not to round at all, only take the floor. Then you never get to 100% until you're actually at 100%. You never get to 50% until you're actually at 50%.

And then in terms of the 0% vs 1% thing... my preference is to show 0% but keep an animated indicator so you know it's in progress, if you don't have something else that does the same (like showing the current download speed or current frame). Showing 1% done when it's only at 0.0001% done doesn't feel quite right to me.

reply
alpaca128
15 hours ago
[-]
An animated indicator by itself shows absolutely nothing other than the fact that animations are working.

I have seen animated indicators running forever with no progress so often that I usually assume something went wrong as soon as I see one for more than a couple seconds. Animated spinners are the most fundamental UI element of bloated software that barely works.

Just show the 1% or whatever else that tells the user it's not stuck.

reply
underwater
15 hours ago
[-]
The 0.001% case would really benefit from this though. For example it helps me to know if requests are failing or are just slow. There is a difference between the application trying (loading indicator) and failing (0% success).
reply
PebblesHD
15 hours ago
[-]
I agree, and in the space I spend most of my time in regulatory compliance, the adage ‘its not done until its done’ applies, so showing 100 is almost never helpful unless it actually is absolutely complete.

Most of my reporting tools implement similar logic to the python in the article, so handy to keep around for those use cases…

reply
comrade1234
15 hours ago
[-]
Counting down too. My clothes washer will count down from 1 minute left to 0 minutes left and then I have to wait for a minute for it to actually reach zero. Why can’t 1 be :59 to 0 instead of 1:59 to 1? And 0 be actually zero?

Yes I sit waiting in front of the washer when I do laundry counting down the seconds. Don’t you?

reply
crgwbr
14 hours ago
[-]
Luxury. My washer and dryer both display numbers the appear to be minutes remaining, but do not tick down with any discernible relation to time. They start around 55, then over the course of 90 minutes decrement down to 10 in random steps. Then it hangs at 10 for another 10-20 mins, then eventually goes to 0 and shuts off. Are these supposed to be minutes? Is there any reason for their disconnection from the passage of time? Who knows? The manual certainly doesn’t say.
reply
crazygringo
15 hours ago
[-]
That's hilarious. My air fryer switches from minutes left to seconds left, but that's also confusing because at a quick glance I have no idea of "7" means 7 minutes left or 7 seconds left.

My inner monologue, many times: "How the HELL has it still got 7 minutes, wait 6, ohhhhhh and it's done."

reply
yjftsjthsd-h
8 hours ago
[-]
> Yes I sit waiting in front of the washer when I do laundry counting down the seconds. Don’t you?

Only until I realized that the time it displayed wasn't accurate enough to do that. Likewise the dishwasher, though that one is kinda nice in that it always overestimates things.

reply
Numerlor
15 hours ago
[-]
Still better than my washer that shows 1 minute and then did on for 6 more, instead of adjusting the time in the middle of the load
reply
smallnix
15 hours ago
[-]
Could use some non-linear transformation to not be "stuck" too long on 1% and 99%. I.e. reaching 2% in ui while actual progress is still below 0.01.

Maybe fast in the beginning and end and slow in the middle, "ease-in-out" or the inverse with sigmoid

reply
ed_mercer
15 hours ago
[-]
Ah yes. I vividly remember Windows file transfer dialogs saying 100% completed while clearly still hard at work doing something.
reply