I kinda hate to point this out, but English has already enough common names that it's impossible to tell without some kind of official ID that a particular guy isn't actually John Smith. And with "photo of ID card" stuff there comes the issue of "whose ID card", photoshop and what-not being what they are.
See now, that's what you get for your lack of education.
Prevention of multithread-related bugs is exactly as dead simple as prevention of bugs related memory addressing, or array indexing. The answer is: only do things that have a defined meaning in terms of the concept space of the bug category at hand. So for array indexing, ensure that your index variable is always known to be in a valid range; for memory access, design the program in such a way that for each pointer it's known what they're supposed to point to, if the pointer variable can be NULL, and what that means if true or what ensures non-NULLness otherwise.
For multithreaded programming, the programmer must ensure that shared data is only accessed under exclusion. This is easily achieved by making each operation a distinct function with an API that communicates its conclusion so that the caller can adjust its behaviour accordingly. There are sexy newfangled methods around like RCU and atomics and transactional memory, but they're rather complex compared to just plain old mutexes. The main complexity of multithreading comes from the primitives which are used to achieve exclusion, such as for mutexes the requirement of a consistent locking order and trylock failure handlers for operations that would violate that order.
Multithreading's issues in particular are a matter of education, not technology. The rest are related to programming only vaguely; in particular, NP-completeness is mostly a CS thing and very rarely encountered in software engineering.
There's the 2% who figure that "autopilot" does in fact mean that the car's built-in computer does what the owner means. They may be the same 2% who figure that "cruise control" does that very same thing, but let's forgive them for this one: autopilot does literally mean that the car controls itself, much as automobile means that it moves itself.
And 2% of all drivers is tens of thousands of cars in Germany alone. By virtue of being heavy machinery, cars can cause terrible damage when they e.g. plow into oncoming traffic, or crowds of pedestrians. Or just a single deadly accident each, for those of us whose horror meters peg out at somewhere around four to six people dead.
Changing the nomenclature to something that's not quite as marketing-sexy is fairly fucking low a price for even one person not killed by a well-moneyed idiot's misconception. Trust the American billionaire not to see it this way, of course.
They still support the wars in Iraq and Afghanistan, despite overwhelming evidence that the US is and continues to be exactly the cynical torturer that the worst voices in Europe have said. That is to say: YOU'RE ALL BLEEDING HYPOCRITES.
Dude, it's a long-term study. It doesn't matter if their metric isn't the absolute bestest metric you could come up with to measure impact etc. right now. What matters is that their metric works over several decades and that the results remain comparable between then and now.
tl;dr -- you want to look at the graphs, not the numbers.
Remember Rimonabant, the wonder anti-obesity drug that messed with the endocannabinoid system? That made people suicidal for fuck's sake. (It was an endocannabinoid receptor antagonist, see -- "anti-munchies", basically.)
Except that with multiprocess concurrency (i.e. non-multithreaded Apache on Unix), you actually gain in a NUMA setup like the Opterons have been from day 1. See, in the optimum case in a NUMA environment, the server process that handles a request gets an entire memory bus for itself. That's far more scalability than with multithreading in the absence of memory duplication, which AFAIR Linux doesn't implement on a per-thread basis in the same address space.
This is why Opterons practically own the 4-socket x86 space: unlike with Intel's older "hub-style" busses, on a NUMA system aggregate memory bandwidth goes up as sockets are added because the number of memory busses increases also.
Yeah, to blacks and whites of your choosing. Arguing with you becomes like a game of chess where you start with 16 pieces and the opponent starts with a king and a pawn: that is to say, your intellectual dishonesty extends to redefining the rules in order to have some kind of a Righteous Victory.
You, sir, are a fop and an arse-bandit, and I spit on you.
I kinda hate to point this out, but English has already enough common names that it's impossible to tell without some kind of official ID that a particular guy isn't actually John Smith. And with "photo of ID card" stuff there comes the issue of "whose ID card", photoshop and what-not being what they are.
Such as for example?
See now, that's what you get for your lack of education.
Prevention of multithread-related bugs is exactly as dead simple as prevention of bugs related memory addressing, or array indexing. The answer is: only do things that have a defined meaning in terms of the concept space of the bug category at hand. So for array indexing, ensure that your index variable is always known to be in a valid range; for memory access, design the program in such a way that for each pointer it's known what they're supposed to point to, if the pointer variable can be NULL, and what that means if true or what ensures non-NULLness otherwise.
For multithreaded programming, the programmer must ensure that shared data is only accessed under exclusion. This is easily achieved by making each operation a distinct function with an API that communicates its conclusion so that the caller can adjust its behaviour accordingly. There are sexy newfangled methods around like RCU and atomics and transactional memory, but they're rather complex compared to just plain old mutexes. The main complexity of multithreading comes from the primitives which are used to achieve exclusion, such as for mutexes the requirement of a consistent locking order and trylock failure handlers for operations that would violate that order.
Now you know. Go, and fear threads no more.
Multithreading's issues in particular are a matter of education, not technology. The rest are related to programming only vaguely; in particular, NP-completeness is mostly a CS thing and very rarely encountered in software engineering.
That's the Idiot's America alright: doubling down on teh dumb.
There's the 2% who figure that "autopilot" does in fact mean that the car's built-in computer does what the owner means. They may be the same 2% who figure that "cruise control" does that very same thing, but let's forgive them for this one: autopilot does literally mean that the car controls itself, much as automobile means that it moves itself.
And 2% of all drivers is tens of thousands of cars in Germany alone. By virtue of being heavy machinery, cars can cause terrible damage when they e.g. plow into oncoming traffic, or crowds of pedestrians. Or just a single deadly accident each, for those of us whose horror meters peg out at somewhere around four to six people dead.
Changing the nomenclature to something that's not quite as marketing-sexy is fairly fucking low a price for even one person not killed by a well-moneyed idiot's misconception. Trust the American billionaire not to see it this way, of course.
It's rather that you didn't get permission!
And in China, there's likely quite enough Chen Dongs that the realname policy translates quickly to "yeah... whose real name?"
So now we're just negotiating the number of people we're running over. Offers, anyone? Five is clearly too low.
They still support the wars in Iraq and Afghanistan, despite overwhelming evidence that the US is and continues to be exactly the cynical torturer that the worst voices in Europe have said. That is to say: YOU'RE ALL BLEEDING HYPOCRITES.
Dude, it's a long-term study. It doesn't matter if their metric isn't the absolute bestest metric you could come up with to measure impact etc. right now. What matters is that their metric works over several decades and that the results remain comparable between then and now.
tl;dr -- you want to look at the graphs, not the numbers.
In the parent comment, you can see the common North American Power Fanboy having a reaction.
Man, that can't be a good idea.
Remember Rimonabant, the wonder anti-obesity drug that messed with the endocannabinoid system? That made people suicidal for fuck's sake. (It was an endocannabinoid receptor antagonist, see -- "anti-munchies", basically.)
If you can't stay ahead in the game, you wouldn't have deserved a patent either. You would sit on your pile of gold and retard progress.
And too many damned sudo-mites tagging along.
Fool.
I wondered about that. No offense taken.
It's general then.
heh heh heh butthole heh heh heh heh heh
This mouse is a good metaphor of American Liberty and Freedom. Too many choices and very confusing interfaces. Good job, Stalin!
How the dick is that generic?
How can a 6DOF controller ever be "generic"?
The CyberMan 2 (which you described above) was seen in Farscape. Tarted up in gold spray paint and everything, but instantly recognizable.
Mine still works, too.
Except that with multiprocess concurrency (i.e. non-multithreaded Apache on Unix), you actually gain in a NUMA setup like the Opterons have been from day 1. See, in the optimum case in a NUMA environment, the server process that handles a request gets an entire memory bus for itself. That's far more scalability than with multithreading in the absence of memory duplication, which AFAIR Linux doesn't implement on a per-thread basis in the same address space.
This is why Opterons practically own the 4-socket x86 space: unlike with Intel's older "hub-style" busses, on a NUMA system aggregate memory bandwidth goes up as sockets are added because the number of memory busses increases also.
So you would rather judge a person on whom they are rather than by what they do?
How contrarian of you. Idiotic, but admirably contrarian.
Yeah, to blacks and whites of your choosing. Arguing with you becomes like a game of chess where you start with 16 pieces and the opponent starts with a king and a pawn: that is to say, your intellectual dishonesty extends to redefining the rules in order to have some kind of a Righteous Victory.
You, sir, are a fop and an arse-bandit, and I spit on you.