The real problem for Firefox is not the interface changes that people like you whine about, it's mobile. Now 30% of traffic is mobile and Firefox doesn't have an app for any Apple mobile devices and is effectively excluded from Android by Google's Microsoft-like illegal anti-competitive licensing deals with manufacturers (you can get the app, but it's not preloaded and only a few geeks ever would).
Huh? It's in the Google Play Market and is no harder to install than any other app. Once it's installed, the first time you click on a link from another app you're asked to choose the app that will handle links. I fall into the geek category (and so installed it from F-Droid, not Google Play), but found it trivial to switch to Firefox on the mobile. I mostly did because Chrome has spectacularly bad cookie management and I'd been trying to find a browser that did it better. Early Firefox ports were as bad, but now it's quite nice and with the Self Destructing Cookies add-on does exactly what I want.
The mobile is actually the only place I use Firefox...
For some reason, people in the second category describe themselves as 'religious'. And yet you'll be hard-pressed to find, for example, a Christian who requires the same standards of evidence for the non-existence of the Norse, Egyptian, Greek or Hindu gods as he requires that an atheist from the first category provides for the non-existence of the Abrahamic god.
Would you prefer that mega-corps not make their videos available for streaming at all?
No, I'd rather that copyright on music and video be contingent on distribution in a form that does not lock customers into a particular platform.
You're comparing apples and oranges as far as the technical details. I'm saying Win 3.x let me continue when it saw problems, and NT could also do that.
Not really. The kind of situations where Windows 3.x let you try to continue, Windows NT just handles transparently. In Windows 3.x, with cooperative multitasking, a single application can refuse to relinquish the CPU. If this happens, you have three choices (outlined by the dialog box):
In a system with protected memory and preemptive multitasking, an application that refuses to relinquish the CPU will just have its priority downgraded and the only thing that you'll notice is the CPU getting warm. Eventually, you may choose to kill the program, but it never affects system stability.
I'd like to have the *option* to continue to save my work even if there was a chance of data corruption. For example, take the common NT blue screen IRQL_NOT_LESS_OR_EQUAL. That fact that my buggy network driver tried to access paged memory in the wrong sequence is miles away from catastrophic. And it certainly doesn't take priority over something I've been working on for hours. IRQ 0 is me, motherfuckers!
It means that there's a high probability that something has damaged some kernel data structures. If you continue, there's a good chance that this corruption will spread to the buffer cache and you'll end up writing invalid data to disk. If you kill the system, the corruption is limited to the RAM.
Also I'm not sure about your phone but with mine I can disable data over cellular in the swipe down settings. It's literally a swipe and a single click, so if you really want to restrict everything and then only use it as required that would be the easy way to do it system wide and is about as complicated as turning on screen rotation.
You didn't read my post, did you? You can turn it off globally, but it's really hard to then turn it on for a subset of applications. You have to individually disable each one's access (and they all default to 'on', so you have to remember to do it again after installing each new app). If I turn on mobile data somewhere expensive to look something up urgently (or, for example, to get an updated boarding pass for a flight) then suddenly a dozen applications will say 'whee, Internet! Let's download a load of updates!'
Honestly, even if I'm doing it a on a million items, O(N^2) vs O(N) isn't a big deal
If you're doing a million items, then the difference between O(N) and O(N^2) is a factor of a million. If each operation takes one cycle to complete, then on a 2GHz CPU you're going to take 500 microseconds. More plausibly, if each iteration takes 10 cycles, then it will take 5ms. The O(n^2) version, assuming the same ten-cycles per operation (which is pretty small - even a bubblesort on integers in an array will be hard pressed to be that quick), will take one hour and 23 minutes.
If you really think that the difference between 5ms and almost an hour and a half is irrelevant, then I really hope that I never use any code that you write.
De Morgen's laws are widely known and trivial to automate. Any vaguely modern compiler knows about them and will do the transform for you. Not only will it do it for you, it will do it for you everywhere and base on knowledge of the target architecture.
That said, it won't rearrange things that might have side effects. In C, for example, you have short-circuit evaluation, so if you have something cheap on the left of an or and something expensive on the right, then it will be faster unless the compiler can determine that the expensive thing has no side effects. If you have a negation of a long string of ands, the arguments to each of which is expensive to compute, then turning it into a string of negated ors is faster, because the compiler can stop computing once it's found one that's failed.
This restaurant was advertising breakfast any time. So I ordered french toast in the renaissance. - Steven Wright, comedian