What needs to happen here is pressing the button needs to immediately register the press elsewhere in the code. The UI animations and the button tap should be decoupled entirely.
Then the user can tap away as fast as their heart desires and only the animations are going to continue on. That’s an easy problem to solve... by doing as you say and aborting them or shortening them.
But you should NEVER have UI animations and effects block your logic path. They should be parallel operations not serial.
This goes well beyond UI design, and there are even physical analogs - for example, the crash of Turkish Airlines flight 981 in Paris could have been prevented if the device to prevent the cabin being pressurized if the cargo door was not properly closed had been operated by the door locking pins sliding home all the way, rather than by a side-linkage off the linkage that was supposed to drive in the pins.
https://en.wikipedia.org/wiki/Turkish_Airlines_Flight_981#Ca...
But I feel my first suggestion was exactly what you're suggesting -- immediately register the input and apply the operator -- I just phrased it in terms of what happens to the animation.
Also! I certainly feel there are times when letting an animation block your logic is valid. That would be any time when an animation has the UI in a potentially confusing state, such that the meaning of an input is ambiguous. (You should avoid these states as much as possible, of course. And this sort of button-flash comes nowhere even near that category.)
You don’t want the switch activated until it’s all the way left or right.
The buffer in question is, for a tty, a driver-level buffer that holds on to the data until something reads it. If a command doesn't read it (which things like apt-get update don't) then it'll get read as the next command.
Of course, most terminals these days are ptys accessed via emulators, so the buffer is actually part of the emulator, but the same idea applies.
Soo.. When he left his desk, I went in and hit SHIFT-SETUP, turned the audible BEL off in the VT-100 setup menu and enjoyed the silence.
When I came back in the office the next day, there was a technician from Digital with the terminal in what looked like 100 pieces on the desk trying to "fix" it. He was pretty upset when he realized it wasn't the speaker and the setting was just turned off (why he didn't check that first, I'll never know). Needless to say as a teenager, I kept quiet about the whole thing.. until now..
You can link two commands together with the "AND IF" operator
sudo apt update && sudo apt upgrade
Furthermore, you also have `||` which is the logical or, and also `;` which is just a separator which doesn't care what happend to the command before.I always come back to the example of WhatsApp and how it took on SMS, IM, and emails and won. People claiming WhatsApp went in mobile first are getting it only partially right. WhatsApp defined itself as a replacement for SMS: No login passwords, no chat history, cross platform and that led to them being cheaper, better, faster, frictionless. Later added MMS-esque capabilities like media and then email-esque features like Groups with super nice execution on the UX front.
Similar thing for AMP pages: It just works and it is blazing fast.
US-centric competitors would only support iOS and Android, whereas WhatsApp was running on the hundreds of millions of 2003-2010 vintage Nokia/Samsung featurephones that were in daily use in India, Indonesia, Nigeria, etc.
That is also part of UX. When it comes to messaging apps, Snapchat is one extreme of the spectrum -- iPhone-focused, cryptic UI, teen-oriented, majority of users in USA -- and WhatsApp is the very opposite. Both are successful examples of UX focus.
These things go hand-in-hand by the way. And that's not a complaint, it's just funny how "only teens bother to figure this out" can be an honest-to-goodness feature under specific circumstances. Especially if you (basically) need to be "introduced" to a program and all of its quirks through your friends.
It is already blazing fast with only HTML and CSS, as the Web was designed to be.
EDIT: typo
Only mobile, the web version is shitty because it hosts a web server on your phone which is unreliable. And even with that you can only access the web version from one computer and it does not work well on tablets.
Lag doesn't necessarily have anything to do with performance. I really don't think people are talking about performance at all. No one would seriously think that a modern smartphone could be dwarfed by a 35 year old calculator in terms of raw performance.
One reason I moved from Windows phone was the massive delay in switching apps.
Now on iPhone the animations are annoying, yes, but they are at least consistent in length, meaning I expect them and know how long to take a (tiny) pause. I know some work is happening that’s being disguised and that’s why they can’t (all) be turned off.
It also takes about 20 seconds to disable all animations in Windows, which makes it feel as snappy as XFCE (even on my 5-year-old machine).
For what I do now (Office, email, programming using IDE hooked into Docker containers), it really doesn't hinder me to be on a non-*nix OS.
(The last time I brushed-but-didn't-quite-hit some interesting info was in https://news.ycombinator.com/item?id=15136939, which I quoted (very tangentially, as a footnote) in https://news.ycombinator.com/item?id=15153262.)
The numbers have the same animation, but it's both shorter and interruptible, so the people who built the app seem perfectly aware of the problem and how to "fix it".
This seems deliberate, as if somebody figured that, while it's a legitimate use case to rapidly tap digits to input a longer number, tapping an operator multiple times is likelier to be an input error, so they purposefully block it. Clearly a mis-feature, but a feature nonetheless, rather than a bug.
trivial to fix the bug in the calculator app. not trivial to deploy that fix. this would be a full system update, right?
But, also conveniently, iOS 11.1 is in beta at the moment. They just released beta 5 today, so it's not like they couldn't slip a fix for this in before the final release if they wanted to.
Whether they will or not, well...
That means updates still need to be a part of a system update.
I haven’t measured data usage, but I suspect this means that removing Calculator’s icon actually removes its code from the system. If that is true, it is potentially upgradeable independent of the iOS system, at least from a technical perspective.
I suspect Apple’s QA and release processes cannot take advantage of this, though.
Re-enabling the app will basically restore the ROM version. You can then install updates from the store, which I think is basically a full install and the ROM version is ignored again, based on the consumed space of such apps.
The event loop is processing events during the animation. It is up to the programmer to decide if events are ignored or processed during animations because what that means depends on what you want to happen: is the animation interactive and reversible? Does tapping reset the animation or does it start animating to the new state from its existing state?
CoreAnimation does the work based on the policies you select (eg: interpolating between a half-complete animation and the new desired end state).
No they're not. The linked thread is literally discussing what you describe as "the actual issue".
> The actual issue is that some developer at Apple screwed up their animation configuration when implementing the calculator redesign, and nobody tested adding more than two numbers together quickly. Multiple failures, none involving system performance.
Unless you were talking about the discussion here on HN? I haven't read most of the discussion here yet. I just wanted to point out that the Redditors get it right just fine, since there's a lot of unheeded shitting on Reddit on HN (has always been the case and I think it's sad. HN has got its own community smells, but at least I hardly ever see Reddit dumping on HN and when they do it's in good natured fun poking and not vitriol like here) (btw your remark wasn't vitriolic, but others are very much so).
The numbers are the operands.
I can't come up with a good UX reason for that restriction, so either it's an oversight or a technical limitation.
If they really didn't test at any statistically significant extent, people would really notice it.
Thing is, bugs happen, and no amount of tests will ever squash them completely.
Especially for some small insignificant part of the OS, assigned to 1 or 2 people at most like the calculator.
What's happening is: the operator buttons have an animation on them, and they don't register inputs while the animation is running. The animation is pretty long, so it's quite easy to tap an operator, tap a number, then tap the operator again and have your input be missed.
Conveniently, this should be a trivial fix. Just abort the animation when a second input is received while it's still running and register the touch. (Or, lazily, make the animations a lot faster.)
Edit: I got operator/operand mixed up while writing this. :P