5 ms·
As I opened the website, the “16” changed to “17”. This looked interesting, as if the data were being updated live just as I loaded the page. Alas, a refresh (a
by latexr 1y ago
As I opened the website, the “16” changed to “17”. This looked interesting, as if the data were being updated live just as I loaded the page. Alas, a refresh (and quick check in the Developer Tools) reveals it’s fake and always does the transition. It’s a cool effect, but feels like a dirty trick.
- pessimizer 1y agoReminds me that the reason that loading spinners spin is so that you knew that the loading/system hadn't frozen. That was too hard (you actually had to program something that could understand that it had frozen), so it was just replaced everywhere with an animation that doesn't tell you anything and will spin until the sun burns out. Progress!
- Wowfunhappy 1y ago…although in many cases you kind of don’t have a choice here, right? If you’re waiting for some API to return data, there’s basically no way to know whether it has stalled. Presumably there will be a timeout, but if the timeout is broken for some reason, the spinner will just spin.
- pessimizer 1y agoYou can't figure out how to fix that? Does that problem seem impossible to you? Maybe don't start an animation, and instead advance a spinner when a thing happens, and when an API doesn't come back, the thing doesn't get advanced?
- frotaur 1y agoSolve the halting problem to show accurate spinners
- wrs 1y agoLong ago (I first remember doing it in about 1985 with the original Mac watch cursor) this was the standard way to do spinners: somewhere in your processing you incremented the spinner. It was hard to put the increments in the right places to keep the spinner going even when progress was happening, and nearly impossible to make it animate smoothly. This technique is even harder to get right when the processing in question is multithreaded, or if the spinner is part of the UI (as opposed to a cursor) so it has to trigger a redisplay to show up. So programmers didn’t like it because it was complex, and designers didn’t like it because the animation was jerky. As a result, the standard way now is to have an independent animation that you just turn on and off, which means you can’t tell if there’s actually any progress being made. Indeed, in modern MacOS, the wait cursor, aka beach ball, comes up if the program stops telling the system not to show it (that is, if it takes too long to process incoming system events). This is nice because it’s completely automatic, but as a result there’s no difference between showing that the program is busy doing something and that the program is permanently frozen.
- zestyping 1y agoYou have a strange idea of what "right" means. Showing a true reflection of the actual, irregular, progress is getting it right. It's honest and informative.
- wrs 1y agoThat’s exactly what I’m saying is hard to do when progress is being made on multiple threads.
- kevinventullo 1y agoWhat’s funny is the jerky animation actually communicates so much more than the smooth animation.
- wrs 1y agoYeah, same with progress bars — especially the Windows Installer progress bar that goes backwards when it’s backing out after a failure! Of course, progress bars based on increments have a whole other failure mode, the eternally 99% progress bar…
- Wowfunhappy 1y agoBut if you expect the request to take some amount of time, how do you communicate that to the user? Even if you don’t know the actual progress, the spinning cursor still provides useful information, namely “this is normal”. Edit: Fwiw, I would agree with you if we were discussing progress bars as opposed to spinners. Fake progress bars suck.
- gpm 1y agoI've definitely had systems freeze badly enough that our modern dumb spinners stop spinning... so at least they're still some sort of signal.
- ehnto 1y agoI worked on a system that did some calculations for a user after submitting a form. It took milliseconds to crunch the numbers. Users thought we were faking the data because it was "too fast", after enough complaints and bad reviews they added a fake loading bar delay, and people stopped complaining.
- dominicrose 1y agoI once found a "+1 subscriber" random notification on some page and asked the LinkedIn person who sent me the page to knock it off. It was obviously fake even before looking at the code for proof. But there's self-advertised "Appeal to popularity" everywhere. Have you noticed that every app on the play store asks you if you like it and only after you answer YES send you to the store to rate it? It's so standard that it would be weird not to use this trick.
- thoroughburro 1y agoMy bank app asks me to review it every time, and only when, I deposit money. It’s so transparent in its attempted manipulation: you just got some money and are likely to be in a better mood than other times you’re using the app! Literally every deposit. Eventually, I’ll leave a 1-star nastygram review for treating me like an idiot. (It won’t matter and nothing will change.)
- mwigdahl 1y agoIt could also be that they really care that the experience of _sending_ them money is frictionless, but they don't care so much about other actions (such as withdrawals...)
- thoroughburro 1y agoIt could be, but having worked on big mobile apps before, I find that very generous interpretation to be much less likely than my interpretation.
- latexr 1y ago> Eventually, I’ll leave a 1-star nastygram review for treating me like an idiot. (It won’t matter and nothing will change.) If enough people give it 1 star with the same complaint, it might. After all, like you said they’re trying to manipulate you to a specific behaviour but if it has the opposite effect it’s in their best interest to reverse it.
- tempodox 1y agoCould it be this happens only in Chrome? In Safari I just see a zero that doesn’t change.
- stuartjohnson12 1y agoIt is fetching data from an API though - it's just the live updates that are a trick.
- tantalor 1y agoIt's a dark pattern
- jstummbillig 1y agoI am missing a victim
- lemonberry 1y agoThey're everywhere these days.
- arduanika 1y agoTruth
- School-Cotton 1y agoDeceiving someone and breaking their trust already counts as victimizing them, inherently, even if they suffer no other harm.
- recursive 1y agoIf I see it and get misled, I am the victim.
- pessimizer 1y agoNo, it's just the kind of dishonesty that people who create dark patterns start with. It's meant to give the believable impression that something that is not happening is happening, to people hopefully too ignorant to investigate. Of course, in the tech industry, you can safely assume that anyone can detect your scam would happily be complicit in your scam. They wouldn't be employed otherwise. ----- edit: the funniest part about this little inconsequential subdebate is that this is exactly the same as making a computer program a chirpy ass-kissing sycophant. It isn't the algorithms that are kissing your ass, it's the people who are marketing them that want to make you feel a friendship and loyalty that is nonexistent. "Who's the victim?"
- zeroxfe 1y agojeez, this is a fun website, can't believe how quickly we're godwining here!
- yoavfr 1y agoSorry if that felt dirty - I thought about it as a signal that the data is live (it is!).
- pbaehr 1y agoI think it's a perfect (and subtle) way to signal that refreshing is unnecessary to see the latest data without wasting UI space explicitly explaining it. It was my favorite thing about the UI and I will be borrowing it next time I design a real-time interface where the numbers matter more than the precise timing.
- CjHuber 1y agoreally? it left a bad aftertaste for me
- jcul 1y agoIt's not that it's a fake number. They are saying the number is real, just it goes to current_value - 1, and then current value to indicate the value is updating live. Not sure if that was clear. Edit: I don't know if it's a real number but that's the claim in the comment above at least
- zestyping 1y agoIt's a lie, though. When I see it, I know the interface is lying to me, and then I trust it less henceforth. I'll never build a lie into my work. It's not worth it.