Operant Conditioning by Software Bugs (2012)
blog.regehr.org
blog.regehr.org
It genuinely would have never occurred to me that a browser's edit-paste functionality would _know_ which textfield to paste text into. Likewise, it genuinely never occurred to her that a copied essay would be pasted into anything other than the only text field large enough for an essay, and the only text field which was labeled "essay".
Speaking of frequent rebooting, I always thought the lack of support for orthogonal persistent state, seamless application checkpointing and built-in dynamic software upgrade facilities represented a failure in modern mainstream computing.
When a system is in a complex, poorly-tested state, problems often occur. Rebooting solves these problems by putting the system back to a simpler, more predictable state. With orthogonal persistent state, the system remains in the complex state across reboots, and these problems become much more difficult to solve.
As a user, I agree that persistence is really nice, but I think we need to address the existence of these complex, poorly-tested states before we start transparently persisting them.
This because they were for the most part single task, and usually had a full reboot done before a new task was initiated.
As for the other, personal experience indicates that it is of questionable value at best.
I have seen way too many apps either not come back up, or come back up in some insane state. As such i consider it no better than the autosave on a wordprocessor.
I suspect that if NVRAM fulfills the promise of DRAM-speed and DRAM-price with persistence, that will become the natural model, which will require a bit of a revolution.
it's about wanting what you know.
And this in part is what has kept MS on the desktop, as they used to bend over backwards to make sure old binaries ran on new OS releases.Supposedly the DOS version of SimCity had a bug/oversight where it accessed a ram segments after freeing it. This because while DOS was supposed to enforce access restrictions, it has failed to do so in early versions.
But rather than let said game crash on newer versions, MS put in a conditional that disabled the enforcement if it was the SimCity binary that was running.
You also find this in the "do not break userspace" that Torvalds enforce within Linux kernel development. Once code is in the kernel, its APIs are to behave the same for perpetuity. Thus it can be damn hard to get new code in the door if it adds a bunch of new APIs.
Sadly userspace devs are less conservative about API breakage...
And for some reason i have it mentally attributed to Apple...
That's why I like QuickCheck so much. It'll try all the corner cases, I wouldn't reliably think of.
Eg instead of confirmation dialogs make as much undoable as possible. GMail goes so far into that territory (originally by accident) as to introduce a delay before sending your message to give you time to undo.