It may seem like Christian nations have made some progress, in reality a lot of those nations where hatred and overall violence have diminished have adopted more secular values over the years.
Exactly. The greatest moral progress of the western civilization happened when people stopped taking their religion too seriously.
It was very much country on country hate, religion just happened to also be a convenient divider - and remember Wolfe Tone was a protestant...
What makes you think that islamic terrorism is any different?
Up to this point, I don't really have a problem. For all its flaws, this pretty much works as intended (though there should be some penalties - beyond the hypothetical-but-never-enforced perjury - for filing false DMCA claims). I've used this to take down content people stole from me.
There is no perjury for false copyright claims. The penalty of perjury only applies to lying about your identity. If you state your true identity in the takedown request, the law allows you to claim copyright over absolutely anything.
- if (a = b) assigns the contents of b to a and executes the code following if b <> 0. Who the hell thought that would be a good idea?
Somebody who thought that adding unnecessary special cases to otherwise very simple and straightforward language was a bad idea. And he was absolutely right.
- sizeof(string) (I may have got the name of the function wrong) returns the length of a single byte rather than the length of the entire string. Who the hell thought that would be a good idea?
First of all, sizeof is a compile-time operator. The compiler replaces it with a fixed constant which indicates how many bytes are needed to store the argument (which is either a symbol or another constant) in memory. If you pass a pointer, you'll get the size of the pointer (4 bytes on x86). If you pass a statically allocated array, you'll get the total size of the array (int foo; sizeof foo; will give you 36 on x86). If you pass a constant, you'll get the total size of the given constant in memory (sizeof "foo bar baz"; will give you 12). But all of that happens at compile time.
When foo is a variable of simple type or instance of structure, sizeof tells you the size of foo itself. But when foo is a pointer, you want sizeof to tell you the size of some completely unrelated block of memory? The fact that foo can point somewhere to the middle of the memory block makes the idea even more ridiculous. Now tell me, who the hell would ever think that making sizeof behave inconsistently like that is a good idea?
- strings terminated by a binary zero rather than their physical size. Who the hell thought that would be a good idea?
Somebody who realized that zero-terminated strings have the lowest possible overhead for the most common string operations. Both from the machine's point of view and from the programmer's point of view. And it also avoids artificial limits on string length (Pascal's 255-byte strings say hi!).
I am not confused at all. I never wrote "formal language", I wrote "formal specification language", which is a completely different beast. You fail.
"Formal specification language" is "formal" because it's a formal language in the same sense that any of the many dialects of "regular expressions" or even PHP itself is a formal language. Nothing more, nothing less. The fact that you keep calling C/C++ standard specifications "informal" means that you're just parrotting buzzwords without actually understanding them. When you talk about formal specification languages or any formal languages at all, the word "informal" is inapplicable because it's a completely different kind of formality (syntactic formality) than the word "informal" implies (semantic formality). The word "informal" has meaning only when you want to make a distinction between formalised natural language and non-formalised natural language.
The test looks for a set of 10 proteins in the blood. I suspect that part is fairly reliable which means the theory that those proteins are markers for Alzheimer's is probably incorrect or incomplete.
Whether or not those 10 proteins are markers for Alzheimer's is not the issue at all. When you look for markers, the search goes this way: disease => chemicals. But when you start testing patients for markers, you're actually using the inverse of that relationship: chemicals => disease. If the disease is rare, false positives will vastly outnumber the number of patients really afflicted by the disease even though you test for the right markers.
There are 3 important percentages for disease tests:
- How many people are afflicted by the disease in the general population?
- How many afflicted people get positive result?
- How many healthy people get positive result (false positive)?
I'll give you an example. Let's say we have some test with perfect accuracy (100% of people afflicted by the disease get positive test) but the test has 10% rate of false positives. We'll test 1000 people.
If the disease afflicts 50% of the population, about 550 people will get positive result but about 50 of them are healthy.
If the disease afflicts 10% of the population, about 190 people will get positive result but about 90 of them are healthy.
If the disease afflicts 1% of the population, about 109 people will get positive result but about 99 of them are healthy.
If the disease afflicts 0,1% of the population, about 101 people will get positive result but about 100 of them are healthy.
Is the problem clear now?
Off the top of my head, if any agreement is negotiated in secret, it has a much higher chance of agreement then if it is negotiated in public or by commitee. So the idea is that people you elect to represent you do it, and do it in secret in order to get things accoplished.
Democracy is slow and it takes tons of work to agree on anything. That's not a bug, that's a feature.
When were they actually accountable to the people?
When the people were marching right outside their front door wielding pitchforks and torches.
Your code should be more efficient!