The better comparison would be to Babbage's analytical engines.
I don't think that would be a fair comparison, either. When Babbage was building his computers, there was no theory of computation, and most of the criticism was from people who doubted that machines could "think". What we today think as "simply" building a machine that makes decisions according to pre-determined instructions, at his time it probably looked like magic to most people. Babbage even wrote in his autobiography:
On two occasions I have been asked,—"Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?"... I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
The current objections to D-Wave are very different. Everyone has a pretty good idea of how an adiabatic quantum computer is supposed to work. Most of the criticism is coming from people who actually believe it is possible in principle. The discussion and the objections are about whether the D-Wave machine is actually working as the way we think an adiabatic quantum computer should work.
Just a small nitpick (to remind people that quantum mechanics is even weirder than that): when you rotate an electron by 360 degrees, its wavefunction gets the opposite phase (i.e., it's multiplied by -1), but other than that, it remains exactly the same. That means that if the electron is all alone, there's no way to tell if it's been rotated or not -- because probability is the square of the amplitude, and so an opposite phase will yield the same probabilities. It's only by interference of the wavefunction with other stuff that you'd be able to tell if the electron has been rotated or not.
People watch people play Starcraft? Oh this is just a Korean thing...
Actually, a lot ofpeoplewatchother people play Starcraft 2 professionally and non-professionally outside of Korea. Look at the number of views in the videos in these channels: most of them have tens of thousands, some exceed 100,000. These are just some of the biggest channels, there are many others in youtube.
Not to mention the SC2 competitions outside of Korea: MLG, NASL and IPL -- these are the big leagues, there are many other smaller competitions going on every week.
And the dozens of SC2 streams in justin.tv and other streaming sites (TeamLiquid has a list on the right side of the page).
I don't know why, but I never really noticed that. You appear to be correct. However, the 14th amendment has been used to rectify this, has it not?
The 14th amendment is not as clear as the 1st (regarding free speech). In the end, it all depends on what the supreme court thinks a "privilege" (as mentioned in the 1st section of the 14th amendment) is, and this has changed over time. The point is: currently, some state laws do restrict some kinds of free speech, and these laws have been used recently to convict people.
Since the constitution mentions nothing about exactly what is free speech and what isn't, it is assumed that all speech is free. By free, it means you can say it without consequences.
This is completely wrong. I invite you to read the relevant part of the US constitution:
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances. (my emphasis)
It doesn't mean you can say whatever you want without consequences, it just means that the congress can't make laws that prevent free speech.
Obviously some speech is not free. Just as an easy and uncontroversial example, many states in the US have criminal defamation laws that are at odds with free speech. These laws are not unconstitutional because they're not made by the congress.
In the specific case of the story from the article, though, things don't seem to be as clear-cut. I have no idea if this specific speech can indeed be regarded as disorderly conduct in Illinois or not, or even if it's desirable that such speech should be stopped or not.
This is extremely off-topic, but I can't resist...:)
Additionally, I'd just like to point out that the term "Garbage Collection" alludes to a ridiculous analogy. Seriously. When's the last time the garbage man came into your house, decided you didn't use something based on the amount of dust on it, then hauled it away without asking? Never... (GC should be called Maid Service, or perhaps Vengeful Mother-in-Law Disposal instead).
Well, I always imagined a program in a "garbage collected" language as someone using stuff and dropping it on the ground when they don't need it anymore, without paying too much attention to what they're doing. Eventually, the "garbage collection" service comes over and collects what was dropped.
IRL, You decide what you want in the garbage, then place the collection of those items in the designated receptacle prior to a garbage collection pass.
That is close to what happens in languages without automatic garbage collection: calling C's "free" and C++'s "delete", for example, is the equivalent of taking the time to decide something is garbage and placing it in the garbage can.
Additionally -- DON'T THROW AWAY THE RESOURCES! PLEASE RECYCLE THEM! -- THEY SHOULD NOT END UP IN A LANDFILL! (Garbage Collection would be a more fitting name for a "memory leak")
In almost all situations, the system "recycles the garbage" immediately after it recognizes it. Some exceptions: run a garbage collected language with the garbage collector disabled, or replace C's "free()" with an empty function (people sometimes do this when they *really* need performance). In those circumstances, if the program generates enough garbage, eventually it runs out of resources (memory) because the generated garbage is not collected and recycled.
I used to think that, too, but actually the grandparent is right: all cryptosystems invented so far rely on something more than P!=NP.
It's true that some cryptosystems reduce to NP-hard problems, but that doesn't mean they rely solely on P!=NP to be secure.
The problem is that when you have a NP-hard problem, that doesn't mean that all its instances are hard to solve. For a cryptosystem based on NP-hardness, this means that not all messages are hard to decode, only that there exists at least one message that is hard to decode. To prove the system is really secure, you need to rely on some other assumption, or you'd need to find a way to use only instances of the NP-hard problem that are actually hard, and there's no known way to do that yet.
Also, lattice-based cryptography is not known to be NP-hard: as far as I understand, to break it you must find an approximate solution to SVP, you don't need to solve it exactly (which would be NP-hard). Still, it's believed that lattice-based cryptography it's harder to break than factoring.
Designing a game that would be fun for beginners/casual players and challenging for experts at the same time is extremely difficult. Ten or twenty years ago there were no games like that.
Funny you should day that, because Starcraft 1 (which existed 13 years ago) is still a huge professional sport in South Korea (there are two cable TV channels specialized in it).:-)
But I think that most of what you said is actually true, but is not what the interview is about. The challenge for experts is in playing with other people, because all professionals and most hardcore players find the single-player campaign ridiculously easy (in both Starcraft 1 and 2). The story is about the balance of making a game that is fun for beginners (in single-player and maybe multi-player) and also has the qualities that make it suitable for high-level competition between professional players.
There's an easy way to combine the best of both worlds (metric and imperial): just start using base 12. We'd just have to invent digits for 9+1 and 9+2 (10 and 11 in the old base 10). Then suddenly we could have 1000 (actually 1728 in the old base 10) meters in 1 km, and yet be able divide a meter by 3 without having repeating decimals. Remember, now 3*4=10.
The only problem would be that people wouldn't be able to count to 10 using their fingers. Also, keyboards would have to be a bit wider to accommodate the new digits. But other than that, it should be a simple change!
Sure, you can point at things like brains and say "that's too complex, we don't understand it". But right now we have no reason to believe we need new physics to explain it, and we have a pretty good reason to believe we don't: at the most basic level (which we do understand reasonably well), the brain works with electrochemical reactions, and we have a pretty good understanding the fundamentals of that. [Although it's possible that quantum effects are important, as we have found that it's the case with photosynthesis (http://www.youtube.com/watch?v=wcXSpXyZVuY).]
But, as far as we know, it's likely that understanding brains will need something other than a breakthrough in our understanding of the fundamental working of the universe at a very low level (which is what quantum mechanics is). There's so much we don't understand of biology that will probably ultimately need no new physics to understand. Of course, it's not a settled matter -- science never is, and there's always a chance that understanding something will need a radically different way of thinking.
But that's beside the point I was trying to make, which is this: our current understanding of the universe, using quantum mechanics, is a hell of a lot better than shrugging and saying "we just don't know how the universe is put together", although it's easy to be tempted to believe so if all you know about quantum mechanics is that it's about "magical forces communicating through infinite distances".
Isn't it easier to assume that they're not separate entities and that we just don't know how the universe is put together [...]
Sure, you can do that. But if you stop there, you'll know nothing; so we have to go on and keep trying to understand.
[...] than to assume that we understand the universe and there's a 'magical' force communicating across infinite distance?
The thing is, that's not what physicists are saying -- that's just a bastardized explanation used when you can't make someone take a few classes that require quite a bit of math to understand[1]. In fact, most physicists, if pressed, will admit no one knows what is really going on. For example, there's a famous quote by Richard Feynman: "I think I can safely say that nobody understands quantum mechanics".
What physicists do know is a theory that allows us to very successfully predict the outcome of many experiments and understand many phenomena better than any classical (completely understood) theory; and certainly better than if we just give up and assume that "we just don't know how the universe is put together", as you suggest. The amazing thing is that this theory can explain every phenomena we have ever seen (except gravity) and predict the outcome of any experiment we can perform.
The problem is, this theory (quantum mechanics) just doesn't make clear what's really going on. There are many tentative interpretations that are consistent with the theory and the experimental results, each of them having at least one very strange feature (instant collapse of the wavefunction -- which I guess would be the "magical force" you mentioned --, or parallel universes, etc.) that fails to convince most people, including physicists.
Most (all?) physicists working with quantum physics know this very well. But since "what's really going on" is not very important to do research, they don't think about it that much. What they really want is to predict more stuff and come up with new ways to use the strange behavior we see for our advantage.
[1] By the way: there's an excellent very basic course on YouTube about quantum entanglement: http://www.youtube.com/view_play_list?p=A27CEA1B8B27EB67. It only requires high-school algebra (including complex numbers, I don't know it everyone takes that in high school), and patience to follow it through. I guarantee you that you'll end up having a good idea of how this quantum stuff works (at a very basic level) without any mention of magical forces communicating across infinite distances.
Even among FOSS software, there's a good chunk that is non-trivial to port to a non-x86 architecture.
Can you give some examples, please? (I'm not trolling, I'm just curious.) I've heard that Debian and recently Ubuntu have ARM ports, but I've never used them. What's missing from these ports that's commonly available in the "normal" x86 distributions?
Now I understand, that seems more reasonable than what I thought you had proposed before.
I think that would probably be acceptable with the following extra requirement (you probably already thought of this): the browser should only allow the "fake" CA (from the self-signed cert) to sign other certificates for the domain you originally accepted it for. After all, you don't want to be in the situation where you accept a self-signed cert for foo.com and then suddenly you're unknowingly and silently accepting a bad certificate for amazon.com because foo.com is not trustworthy.
Still, that leaves the problem of how to revoke a self-signed cert (for when your site gets hacked, for example). Browsers can't make it too easy to remove the current self-signed cert and accept a new one (otherwise the whole system becomes useless), but it has to be easy enough so that when the old certificate gets compromised, almost every user can understand what's going on and do it on their own. I think that's a very hard problem, unless you're dealing with tech-savvy users (as is usually the case with SSH).
That's an interesting suggestion. SSL without authentication (i.e., with self-signed certificates), while vulnerable to MITM, is certainly better than no SSL at all. And I believe a lot of people would probably switch from plain HTTP to HTTPE given the option (using SSL without paying for a certificate and having no ugly warning/error messages when connecting seems like a good deal).
But there's still the danger of "lulling people into a false sense of security" mentioned originally by dgatwood: people might think that HTTPE is safe enough and never bother with HTTPS, even in situations where MITM is a real problem.
This should not be in the form of a scary "this site may be masquerading as another site" dialog, but rather as a legitimate alternative that establishes encryption without establishing identity.
The problem is that this does not ensure no one is eavesdropping. That is: how do you know that you're not actually connecting to an attacker that is relaying traffic between you and the real server? (i.e., a MITM) The CA role in SSL exists specifically to prevent this sort of thing.
In the case of SSH, to prevent this sort of thing you must check that the fingerprint you got matches the one you had previously obtained from the server (how often people do that is another story...) In the case of a web browser, what percentage of people will do that check before clicking "Proceed"?
So, in practice, your proposal would also lull people into a false sense of security, although it would be arguably worse. With the current scheme, an attacker has to fool a CA into signing something for them. This is not impossible (as shown by this story), but is much harder than fooling an user into clicking "Proceed", because most users don't know enough to understand what's going on.
Yes, but that's beside the point. Factorization and discrete log are in NP (well, technically, their decision problems are, anyway).
The point is: if P=NP, then everything in NP is equally hard. So, it's useless to talk about the hardness of factorization compared to something else in NP.
I've RTFA, though not the research paper. I don't understand what prevents someone from compiling some C with a malicious nacl compiler (one that makes no bones about, say, jumping to evil memory locations) and serving it up?
You should really read the paper, they address this concern and many others. Basically, they have a way to validate the binary (regardless of where it came from) that ensures it can't break out of the sandbox. The validator allows only a limited subset of instructions ("ret" is not allowed, and jumps are severely restricted, for example). It's simple enough (600 lines of code) to be easily checkable by hand by many different people, so we can be reasonably sure it contains no nasty bugs.
You're missing the point: if P=NP, then any problem that is in NP (e.g., prime factorization) is also obviously in P (since, well, NP=P), and so, solvable in polynomial time. In fact, if P=NP, there is no "hard for NP", since it's all really P.
Maybe you're confusing it with the converse: if P!=NP, then, sure, it doesn't follow that it's hard to solve (for instance) prime factorization -- it might be in P, in NP-complete or neither.
(Dammit, I just wrote a long reply to your original post, and now I realize I mostly missed the point -- now I see the point you're trying to make.)
My view is that, when you buy a hat in the store, you don't necessarily know where the store bought it, but presumably you know other stores that sell the same hat (or a similar, if you're not interested in the exact model). So, you can compare prices and see if the first store is asking for an abusive price.
The case of the Blender repackager seems (to me) equivalent to a store that sells, at a high price, cheap imitations of an expensive hat, i.e., they're misleading the customer into thinking that the price is reasonable. The analogy is not perfect because a "cheap imitation" indicates low quality, which might not be the case of Blender, but the essential point is that the seller is misleading the customer into paying more than they would otherwise.
I think it's OK to sell free software, under any circumstances, provided you never mislead anyone -- for example, by making it look like what you're selling is not freely available via other channels, if it actually is (it's possible it's not, for example if it's some old obscure software that hardly anyone is interested anymore). In any case, you should also never mislead anyone into thinking that *they* would be unable to further distribute it.
I don't see how you'd manage to tell just your customers; you'd have to tell the truth about what you're selling *before* making the sale, otherwise it seems clear you're being unethical.
The businessman example is a little more complicated. In principle, I'm inclined to say that it's OK to buy hats for $1 and sell them for $12, even without adding any value (transportation or whatever). In a perfect world, it would not be a problem: only people who *wanted* to pay $12 for a hat would buy from him, because someone else would realize this situation and start competing for the profit of reselling hats, until the profit is nowhere near as abusive as $11 per hat (as seems to be the implication of your example). This, as I understand, is the promise of the "free market".
In practice, however, there are many factors that can prevent this competition from happening -- it might be very expensive to start a hat reselling business, or the first businessman might have an exclusive contract with the hat maker, or all of the businessmen reselling hats might agree to fix a price higher than what would be reached by competition, etc.
I don't think it's OK for the businessman to abuse any of these factors to make more profit than promised by the ideal "free market".
But none of these complications seem to apply to the sale of free software, so I don't think it's bad.
It probably reached the limit of the CPU floating point precision -- unfortunately javascript doesn't have arbitrary precision.
If each zoom step is 2x (as it appears to be), at the 54th zoom level the distance between each adjacent pixel is 1/2^54 of the same thing at the starting zoom level. 64-bit precision floating point numbers (probably what javascript uses) have 53-bit precision for the mantissa, so at zoom level 54 the precision is not enough to tell apart two adjacent pixels. You probably see the problem before that because the calculations done probably lose some precision, so even if you can barely tell apart two adjacent pixels, while iterating the function to calculate a pixel's color, you lose enough precision to make the color come out wrong for at least some pixels.
Take General Relativity. It is a theory that makes some predictions, is getting increasing support, but is not as testable as the photoelectric effect which has many practical applications. These practical applications are key because such routine use of theory tends to validate it. Any theory that remains in the lab is simply going to be that, a theory. General Relativity is supported, it describes the way the universe might be, and is the simplest explanation, but it certainly does not explain how the universe has to be. This unlike QM, which due to the practical applications seems to describe how the universe works, at least within the domain.
Whoa, hold on. I agree with the sentiment of your post, but you picked the wrong example.
General Relativity is very well tested and extremely established. Besides the "gravitational lensing" effect that we observed to confirm it for the first time, we have by now tested it in several other ways. Every time you use a GPS device you're depending on it (to see why, look for "relativity" here). Beyond that, we're still testing it in the lab and confirming it with increasing confidence (see here, for example.)
So, while it's true that Quantum Mechanics is much more tested (mainly due to the fact that it's much easier to test it in many different ways), General Relativity is not on shaky ground by any standard -- unlike these early-universe hypotheses like this one of "multiverses", etc.
(Sorry for the long post, but it seems that you're really trying to understand this, so I'll try to explain the best I can)
We each send a series of entangled particles to/from a distant location. We carefully time observing the particles or not observing the particles so as to send bits of information.
That's not how it works. The people in the distant location won't ever know whether you observed your particle or not. What they can know for sure is the state of your particle AFTER they observe theirs (regardless of whether you observed your particle or not).
One way to understand this is the following (but note that it's already an interpretation). Before any observation is done, the state of both particles is the superposition "(50% both 0) plus (50% both 1)". When someone (either you or the people in the distant location) observes one particle, the state of both particles instantly becomes either "100% both 0" or "100% both 1". There's no way to predict which one will happen, each has 50% probability.
A good question to ask (which, as I understand, you asked in your first post) is: why do we think the state before anyone observes the particle is the weird "(50% both 0) plus (50% both 1)" and not simply a classical "100% both 0 or 100% both 1, we just don't know which"?
To understand the answer, you must know that to observe a particle you actually have to decide on a "basis" to make the observation (for example, in the case of an electron spin, the basis is just a direction in space). The quantum state "(50% both 0) plus (50% both 1)" yields 50% of probability for each of "both 0" and "both 1" in any basis, but the classical "100% both 0 or 100% both 1, we just don't know which" only works in one basis and will give different results in other basis. John Bell devised a clever manipulation of basis that you and the distant people have to use to make your observations in order to know for sure whether the particles are in the classical state or in the quantum state (if it even exists). It turns out that the quantum state exists and is really different from the classical one.
The lecture linked in my previous reply explains what is Bell's "clever manipulation" that you have to make, but to understand it and why it works, you'll need math.
That's a good question. The answer is that your proposed explanation for quantum phenomena (fixed correlated spins) simply don't account for what is observed. That's exactly what is made crystal clear by John Bell's paper where he shows that the "fixed spin" explanation yields some equations (known today as Bell's inequalities), and then shows that quantum mechanics predicts that these equations are violated in some circumstances.
A couple of decades later, Alain Aspect finally made the experiment and saw that quantum mechanics is right and Bell's inequalities are actually violated. This experiment was of course reproduced a many times by many other people.
To really understand the difference between the classical and the quantum explanation, you have to get a little technical, but a bit of linear algebra suffices to understand the basic idea. I find that a really good explanation is found in the first lecture of this course: http://www.eecs.berkeley.edu/~vazirani/f04quantum/notes/lecture1.pdf
The really complicated (where there's no consensus even today) is what is actually happening. Some people insist in explanations called "non-local hidden variables" (Bohm's interpretation), and other go for "instantaneous collapse of the wavefunction" (Copenhagen and a few others), and others prefer "many worlds" (Everett's).
The better comparison would be to Babbage's analytical engines.
I don't think that would be a fair comparison, either. When Babbage was building his computers, there was no theory of computation, and most of the criticism was from people who doubted that machines could "think". What we today think as "simply" building a machine that makes decisions according to pre-determined instructions, at his time it probably looked like magic to most people. Babbage even wrote in his autobiography:
On two occasions I have been asked,—"Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" ... I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
The current objections to D-Wave are very different. Everyone has a pretty good idea of how an adiabatic quantum computer is supposed to work. Most of the criticism is coming from people who actually believe it is possible in principle. The discussion and the objections are about whether the D-Wave machine is actually working as the way we think an adiabatic quantum computer should work.
Just a small nitpick (to remind people that quantum mechanics is even weirder than that): when you rotate an electron by 360 degrees, its wavefunction gets the opposite phase (i.e., it's multiplied by -1), but other than that, it remains exactly the same. That means that if the electron is all alone, there's no way to tell if it's been rotated or not -- because probability is the square of the amplitude, and so an opposite phase will yield the same probabilities. It's only by interference of the wavefunction with other stuff that you'd be able to tell if the electron has been rotated or not.
People watch people play Starcraft? Oh this is just a Korean thing...
Actually, a lot of people watch other people play Starcraft 2 professionally and non-professionally outside of Korea. Look at the number of views in the videos in these channels: most of them have tens of thousands, some exceed 100,000. These are just some of the biggest channels, there are many others in youtube.
Not to mention the SC2 competitions outside of Korea: MLG, NASL and IPL -- these are the big leagues, there are many other smaller competitions going on every week.
And the dozens of SC2 streams in justin.tv and other streaming sites (TeamLiquid has a list on the right side of the page).
I don't know why, but I never really noticed that. You appear to be correct. However, the 14th amendment has been used to rectify this, has it not?
The 14th amendment is not as clear as the 1st (regarding free speech). In the end, it all depends on what the supreme court thinks a "privilege" (as mentioned in the 1st section of the 14th amendment) is, and this has changed over time. The point is: currently, some state laws do restrict some kinds of free speech, and these laws have been used recently to convict people.
Since the constitution mentions nothing about exactly what is free speech and what isn't, it is assumed that all speech is free. By free, it means you can say it without consequences.
This is completely wrong. I invite you to read the relevant part of the US constitution:
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances. (my emphasis)
It doesn't mean you can say whatever you want without consequences, it just means that the congress can't make laws that prevent free speech.
Obviously some speech is not free. Just as an easy and uncontroversial example, many states in the US have criminal defamation laws that are at odds with free speech. These laws are not unconstitutional because they're not made by the congress.
In the specific case of the story from the article, though, things don't seem to be as clear-cut. I have no idea if this specific speech can indeed be regarded as disorderly conduct in Illinois or not, or even if it's desirable that such speech should be stopped or not.
This is extremely off-topic, but I can't resist... :)
Additionally, I'd just like to point out that the term "Garbage Collection" alludes to a ridiculous analogy. Seriously. When's the last time the garbage man came into your house, decided you didn't use something based on the amount of dust on it, then hauled it away without asking? Never... (GC should be called Maid Service, or perhaps Vengeful Mother-in-Law Disposal instead).
Well, I always imagined a program in a "garbage collected" language as someone using stuff and dropping it on the ground when they don't need it anymore, without paying too much attention to what they're doing. Eventually, the "garbage collection" service comes over and collects what was dropped.
IRL, You decide what you want in the garbage, then place the collection of those items in the designated receptacle prior to a garbage collection pass.
That is close to what happens in languages without automatic garbage collection: calling C's "free" and C++'s "delete", for example, is the equivalent of taking the time to decide something is garbage and placing it in the garbage can.
Additionally -- DON'T THROW AWAY THE RESOURCES! PLEASE RECYCLE THEM! -- THEY SHOULD NOT END UP IN A LANDFILL! (Garbage Collection would be a more fitting name for a "memory leak")
In almost all situations, the system "recycles the garbage" immediately after it recognizes it. Some exceptions: run a garbage collected language with the garbage collector disabled, or replace C's "free()" with an empty function (people sometimes do this when they *really* need performance). In those circumstances, if the program generates enough garbage, eventually it runs out of resources (memory) because the generated garbage is not collected and recycled.
I used to think that, too, but actually the grandparent is right: all cryptosystems invented so far rely on something more than P!=NP.
It's true that some cryptosystems reduce to NP-hard problems, but that doesn't mean they rely solely on P!=NP to be secure.
The problem is that when you have a NP-hard problem, that doesn't mean that all its instances are hard to solve. For a cryptosystem based on NP-hardness, this means that not all messages are hard to decode, only that there exists at least one message that is hard to decode. To prove the system is really secure, you need to rely on some other assumption, or you'd need to find a way to use only instances of the NP-hard problem that are actually hard, and there's no known way to do that yet.
Also, lattice-based cryptography is not known to be NP-hard: as far as I understand, to break it you must find an approximate solution to SVP, you don't need to solve it exactly (which would be NP-hard). Still, it's believed that lattice-based cryptography it's harder to break than factoring.
For more information: http://stackoverflow.com/questions/311064/are-there-public-key-cryptography-algorithms-that-are-provably-np-hard-to-defeat
Designing a game that would be fun for beginners/casual players and challenging for experts at the same time is extremely difficult. Ten or twenty years ago there were no games like that.
Funny you should day that, because Starcraft 1 (which existed 13 years ago) is still a huge professional sport in South Korea (there are two cable TV channels specialized in it). :-)
But I think that most of what you said is actually true, but is not what the interview is about. The challenge for experts is in playing with other people, because all professionals and most hardcore players find the single-player campaign ridiculously easy (in both Starcraft 1 and 2). The story is about the balance of making a game that is fun for beginners (in single-player and maybe multi-player) and also has the qualities that make it suitable for high-level competition between professional players.
There's an easy way to combine the best of both worlds (metric and imperial): just start using base 12. We'd just have to invent digits for 9+1 and 9+2 (10 and 11 in the old base 10). Then suddenly we could have 1000 (actually 1728 in the old base 10) meters in 1 km, and yet be able divide a meter by 3 without having repeating decimals. Remember, now 3*4=10.
The only problem would be that people wouldn't be able to count to 10 using their fingers. Also, keyboards would have to be a bit wider to accommodate the new digits. But other than that, it should be a simple change!
Sure, you can point at things like brains and say "that's too complex, we don't understand it". But right now we have no reason to believe we need new physics to explain it, and we have a pretty good reason to believe we don't: at the most basic level (which we do understand reasonably well), the brain works with electrochemical reactions, and we have a pretty good understanding the fundamentals of that. [Although it's possible that quantum effects are important, as we have found that it's the case with photosynthesis (http://www.youtube.com/watch?v=wcXSpXyZVuY).]
But, as far as we know, it's likely that understanding brains will need something other than a breakthrough in our understanding of the fundamental working of the universe at a very low level (which is what quantum mechanics is). There's so much we don't understand of biology that will probably ultimately need no new physics to understand. Of course, it's not a settled matter -- science never is, and there's always a chance that understanding something will need a radically different way of thinking.
But that's beside the point I was trying to make, which is this: our current understanding of the universe, using quantum mechanics, is a hell of a lot better than shrugging and saying "we just don't know how the universe is put together", although it's easy to be tempted to believe so if all you know about quantum mechanics is that it's about "magical forces communicating through infinite distances".
Isn't it easier to assume that they're not separate entities and that we just don't know how the universe is put together [...]
Sure, you can do that. But if you stop there, you'll know nothing; so we have to go on and keep trying to understand.
[...] than to assume that we understand the universe and there's a 'magical' force communicating across infinite distance?
The thing is, that's not what physicists are saying -- that's just a bastardized explanation used when you can't make someone take a few classes that require quite a bit of math to understand[1]. In fact, most physicists, if pressed, will admit no one knows what is really going on. For example, there's a famous quote by Richard Feynman: "I think I can safely say that nobody understands quantum mechanics".
What physicists do know is a theory that allows us to very successfully predict the outcome of many experiments and understand many phenomena better than any classical (completely understood) theory; and certainly better than if we just give up and assume that "we just don't know how the universe is put together", as you suggest. The amazing thing is that this theory can explain every phenomena we have ever seen (except gravity) and predict the outcome of any experiment we can perform.
The problem is, this theory (quantum mechanics) just doesn't make clear what's really going on. There are many tentative interpretations that are consistent with the theory and the experimental results, each of them having at least one very strange feature (instant collapse of the wavefunction -- which I guess would be the "magical force" you mentioned --, or parallel universes, etc.) that fails to convince most people, including physicists.
Most (all?) physicists working with quantum physics know this very well. But since "what's really going on" is not very important to do research, they don't think about it that much. What they really want is to predict more stuff and come up with new ways to use the strange behavior we see for our advantage.
[1] By the way: there's an excellent very basic course on YouTube about quantum entanglement: http://www.youtube.com/view_play_list?p=A27CEA1B8B27EB67. It only requires high-school algebra (including complex numbers, I don't know it everyone takes that in high school), and patience to follow it through. I guarantee you that you'll end up having a good idea of how this quantum stuff works (at a very basic level) without any mention of magical forces communicating across infinite distances.
Even among FOSS software, there's a good chunk that is non-trivial to port to a non-x86 architecture.
Can you give some examples, please? (I'm not trolling, I'm just curious.) I've heard that Debian and recently Ubuntu have ARM ports, but I've never used them. What's missing from these ports that's commonly available in the "normal" x86 distributions?
Now I understand, that seems more reasonable than what I thought you had proposed before.
I think that would probably be acceptable with the following extra requirement (you probably already thought of this): the browser should only allow the "fake" CA (from the self-signed cert) to sign other certificates for the domain you originally accepted it for. After all, you don't want to be in the situation where you accept a self-signed cert for foo.com and then suddenly you're unknowingly and silently accepting a bad certificate for amazon.com because foo.com is not trustworthy.
Still, that leaves the problem of how to revoke a self-signed cert (for when your site gets hacked, for example). Browsers can't make it too easy to remove the current self-signed cert and accept a new one (otherwise the whole system becomes useless), but it has to be easy enough so that when the old certificate gets compromised, almost every user can understand what's going on and do it on their own. I think that's a very hard problem, unless you're dealing with tech-savvy users (as is usually the case with SSH).
That's an interesting suggestion. SSL without authentication (i.e., with self-signed certificates), while vulnerable to MITM, is certainly better than no SSL at all. And I believe a lot of people would probably switch from plain HTTP to HTTPE given the option (using SSL without paying for a certificate and having no ugly warning/error messages when connecting seems like a good deal).
But there's still the danger of "lulling people into a false sense of security" mentioned originally by dgatwood: people might think that HTTPE is safe enough and never bother with HTTPS, even in situations where MITM is a real problem.
This should not be in the form of a scary "this site may be masquerading as another site" dialog, but rather as a legitimate alternative that establishes encryption without establishing identity.
The problem is that this does not ensure no one is eavesdropping. That is: how do you know that you're not actually connecting to an attacker that is relaying traffic between you and the real server? (i.e., a MITM) The CA role in SSL exists specifically to prevent this sort of thing.
In the case of SSH, to prevent this sort of thing you must check that the fingerprint you got matches the one you had previously obtained from the server (how often people do that is another story...) In the case of a web browser, what percentage of people will do that check before clicking "Proceed"?
So, in practice, your proposal would also lull people into a false sense of security, although it would be arguably worse. With the current scheme, an attacker has to fool a CA into signing something for them. This is not impossible (as shown by this story), but is much harder than fooling an user into clicking "Proceed", because most users don't know enough to understand what's going on.
Yes, but that's beside the point. Factorization and discrete log are in NP (well, technically, their decision problems are, anyway).
The point is: if P=NP, then everything in NP is equally hard. So, it's useless to talk about the hardness of factorization compared to something else in NP.
I've RTFA, though not the research paper. I don't understand what prevents someone from compiling some C with a malicious nacl compiler (one that makes no bones about, say, jumping to evil memory locations) and serving it up?
You should really read the paper, they address this concern and many others. Basically, they have a way to validate the binary (regardless of where it came from) that ensures it can't break out of the sandbox. The validator allows only a limited subset of instructions ("ret" is not allowed, and jumps are severely restricted, for example). It's simple enough (600 lines of code) to be easily checkable by hand by many different people, so we can be reasonably sure it contains no nasty bugs.
You're missing the point: if P=NP, then any problem that is in NP (e.g., prime factorization) is also obviously in P (since, well, NP=P), and so, solvable in polynomial time. In fact, if P=NP, there is no "hard for NP", since it's all really P.
Maybe you're confusing it with the converse: if P!=NP, then, sure, it doesn't follow that it's hard to solve (for instance) prime factorization -- it might be in P, in NP-complete or neither.
I am Tolkien and so is my wife!
There, now Monty Python can sue too.
(Dammit, I just wrote a long reply to your original post, and now I realize I mostly missed the point -- now I see the point you're trying to make.)
My view is that, when you buy a hat in the store, you don't necessarily know where the store bought it, but presumably you know other stores that sell the same hat (or a similar, if you're not interested in the exact model). So, you can compare prices and see if the first store is asking for an abusive price.
The case of the Blender repackager seems (to me) equivalent to a store that sells, at a high price, cheap imitations of an expensive hat, i.e., they're misleading the customer into thinking that the price is reasonable. The analogy is not perfect because a "cheap imitation" indicates low quality, which might not be the case of Blender, but the essential point is that the seller is misleading the customer into paying more than they would otherwise.
I think it's OK to sell free software, under any circumstances, provided you never mislead anyone -- for example, by making it look like what you're selling is not freely available via other channels, if it actually is (it's possible it's not, for example if it's some old obscure software that hardly anyone is interested anymore). In any case, you should also never mislead anyone into thinking that *they* would be unable to further distribute it.
I don't see how you'd manage to tell just your customers; you'd have to tell the truth about what you're selling *before* making the sale, otherwise it seems clear you're being unethical.
The businessman example is a little more complicated. In principle, I'm inclined to say that it's OK to buy hats for $1 and sell them for $12, even without adding any value (transportation or whatever). In a perfect world, it would not be a problem: only people who *wanted* to pay $12 for a hat would buy from him, because someone else would realize this situation and start competing for the profit of reselling hats, until the profit is nowhere near as abusive as $11 per hat (as seems to be the implication of your example). This, as I understand, is the promise of the "free market".
In practice, however, there are many factors that can prevent this competition from happening -- it might be very expensive to start a hat reselling business, or the first businessman might have an exclusive contract with the hat maker, or all of the businessmen reselling hats might agree to fix a price higher than what would be reached by competition, etc.
I don't think it's OK for the businessman to abuse any of these factors to make more profit than promised by the ideal "free market".
But none of these complications seem to apply to the sale of free software, so I don't think it's bad.
It probably reached the limit of the CPU floating point precision -- unfortunately javascript doesn't have arbitrary precision.
If each zoom step is 2x (as it appears to be), at the 54th zoom level the distance between each adjacent pixel is 1/2^54 of the same thing at the starting zoom level. 64-bit precision floating point numbers (probably what javascript uses) have 53-bit precision for the mantissa, so at zoom level 54 the precision is not enough to tell apart two adjacent pixels. You probably see the problem before that because the calculations done probably lose some precision, so even if you can barely tell apart two adjacent pixels, while iterating the function to calculate a pixel's color, you lose enough precision to make the color come out wrong for at least some pixels.
Take General Relativity. It is a theory that makes some predictions, is getting increasing support, but is not as testable as the photoelectric effect which has many practical applications. These practical applications are key because such routine use of theory tends to validate it. Any theory that remains in the lab is simply going to be that, a theory. General Relativity is supported, it describes the way the universe might be, and is the simplest explanation, but it certainly does not explain how the universe has to be. This unlike QM, which due to the practical applications seems to describe how the universe works, at least within the domain.
Whoa, hold on. I agree with the sentiment of your post, but you picked the wrong example.
General Relativity is very well tested and extremely established. Besides the "gravitational lensing" effect that we observed to confirm it for the first time, we have by now tested it in several other ways. Every time you use a GPS device you're depending on it (to see why, look for "relativity" here). Beyond that, we're still testing it in the lab and confirming it with increasing confidence (see here, for example.)
So, while it's true that Quantum Mechanics is much more tested (mainly due to the fact that it's much easier to test it in many different ways), General Relativity is not on shaky ground by any standard -- unlike these early-universe hypotheses like this one of "multiverses", etc.
(Sorry for the long post, but it seems that you're really trying to understand this, so I'll try to explain the best I can)
We each send a series of entangled particles to/from a distant location. We carefully time observing the particles or not observing the particles so as to send bits of information.
That's not how it works. The people in the distant location won't ever know whether you observed your particle or not. What they can know for sure is the state of your particle AFTER they observe theirs (regardless of whether you observed your particle or not).
One way to understand this is the following (but note that it's already an interpretation). Before any observation is done, the state of both particles is the superposition "(50% both 0) plus (50% both 1)". When someone (either you or the people in the distant location) observes one particle, the state of both particles instantly becomes either "100% both 0" or "100% both 1". There's no way to predict which one will happen, each has 50% probability.
A good question to ask (which, as I understand, you asked in your first post) is: why do we think the state before anyone observes the particle is the weird "(50% both 0) plus (50% both 1)" and not simply a classical "100% both 0 or 100% both 1, we just don't know which"?
To understand the answer, you must know that to observe a particle you actually have to decide on a "basis" to make the observation (for example, in the case of an electron spin, the basis is just a direction in space). The quantum state "(50% both 0) plus (50% both 1)" yields 50% of probability for each of "both 0" and "both 1" in any basis, but the classical "100% both 0 or 100% both 1, we just don't know which" only works in one basis and will give different results in other basis. John Bell devised a clever manipulation of basis that you and the distant people have to use to make your observations in order to know for sure whether the particles are in the classical state or in the quantum state (if it even exists). It turns out that the quantum state exists and is really different from the classical one.
The lecture linked in my previous reply explains what is Bell's "clever manipulation" that you have to make, but to understand it and why it works, you'll need math.
That's a good question. The answer is that your proposed explanation for quantum phenomena (fixed correlated spins) simply don't account for what is observed. That's exactly what is made crystal clear by John Bell's paper where he shows that the "fixed spin" explanation yields some equations (known today as Bell's inequalities), and then shows that quantum mechanics predicts that these equations are violated in some circumstances.
A couple of decades later, Alain Aspect finally made the experiment and saw that quantum mechanics is right and Bell's inequalities are actually violated. This experiment was of course reproduced a many times by many other people.
To really understand the difference between the classical and the quantum explanation, you have to get a little technical, but a bit of linear algebra suffices to understand the basic idea. I find that a really good explanation is found in the first lecture of this course: http://www.eecs.berkeley.edu/~vazirani/f04quantum/notes/lecture1.pdf
The really complicated (where there's no consensus even today) is what is actually happening. Some people insist in explanations called "non-local hidden variables" (Bohm's interpretation), and other go for "instantaneous collapse of the wavefunction" (Copenhagen and a few others), and others prefer "many worlds" (Everett's).