Try some type of sync tool or use a network-attached filesystem, if appropriate.
That's exactly my point. With any other version control system, this simply isn't an issue, because all other version control systems are fine with creating multiple working copies on multiple computers that all reference the same remote repository. In fact, synchronizing changes between computers is a large part of what they do. But not git. Suddenly I'm supposed to set up a file sync system to solve a problem that only exists because of an architectural flaw in git.
Of course, that's just a workaround. If you look through git documentation, it will never tell you to do that. It will claim git is a great tool for people who work on multiple computers, and that nothing more is required than a "git push" and "git pull" each time you switch computers... before diving into all the problems that come up and all the things you need to do to work around them. Workarounds that are so painful, you've decided it's easier to just sidestep them and use a completely different tool instead.
No, I'm actually using Github. So there's the main repository for the project, and then I've created my own personal fork, also on Github. And I'd really like to just create a working copy on each computer, all pointing to my personal repository on Github. But I can't. Instead I have to create yet another repository on every computer I work on, and then keep all of them in sync with each other. This just creates extra steps, and extra opportunities to make mistakes.
I can't count how many times I've committed changes on one computer, then gone over to another computer to test them, only to discover I forgot to also do a "git push", so then I have to walk back over to the other office to push them up to Github.
Or I try to do a "git pull", but it fails because I have uncommitted changes, so I have to stash them, then do the pull, the reapply them from the stash. Very very irritating.
And every time you do a "git push" or "git pull", you have to specify the branch. And it's really really easy to accidentally pull changes into the wrong branch, which creates a mess.
Speaking of branches, there's another "feature" that makes all of these problems far worse. (I'm not sure whether this is actually a feature of git, or something specific to Github.) When you send a pull request, you only intend it to refer to a particular set of changes. But it doesn't actually specify them. All it specifies is the branch, and if you commit more changes on that branch before the pull request gets merged, those will get merged too. So you are basically forced to create a new branch for every single change you make, no matter how trivial. If I commit a one line bug fix, I first have to create a new branch for that one line bug fix. Otherwise, there's a risk that whatever I check in after it will get added to the same pull request, even though it's unrelated and not yet ready to be merged.
Working with svn, I only create branches very rarely, perhaps once every few months. There's no need for them the rest of the time. Working with git, you're creating and deleting and merging branches almost continuously.
I'm sure this will be an unpopular opinion, but I seriously loath git. Its distributed development model is nice for certain types of projects, but aside from that, doing almost anything in git is more complicated and more work than doing the same thing in svn.
I think the fundamental architectural flaw in git is that it insists on a 1:1 correspondence between repositories and working copies. If you want a working copy, you absolutely must have a unique repository to go along with it, and that repository must be on your local disk. You can't have a local working copy based on a remote repository, and you can't have multiple working copies based on the same repository. And of course, each repository comes with its own revision history and its own distinct set of branches. I switch back and forth between several computers over the course of a day, and keeping all those repositories properly in sync with each other is a nightmare.
Computer science is a field of math. If you're majoring in the field, you really ought to already know that. Computer science does not mean "writing computer programs". It does not mean "the set of skills needed to get a job in IT". If those are what you really want, you're in the wrong place. Computer science (note the word "science" in its title) is a field of math that studies the process known as "computation" from a theoretical perspective. If that isn't what you want to study, you need to find a different major.
Microsoft has a majority market share in the new desktop PC marketplace.
Wait... you mean there's still a market for desktop PCs? I had no idea! And how many of them get sold compared to laptops, tablets, phones, and even servers?
Then again, there's probably someone somewhere who still uses floppy disks.
You know, I once had an experience with AT&T that was somewhat similar to this. The details were a bit different, but like you, they wanted me to pay a ridiculous amount for an international phone call. I spoke to a customer service rep who was very helpful, switched around some details on my plan, and told me the bill would be lowered to a much more reasonable amount.
Shortly after, I got another bill from them, still asking for the same ridiculous amount. I called them up, and after much grief was eventually told that no, my plan had not been modified and could not be modified, and I had to pay the whole amount. So in the end I paid it, then switched away from AT&T and have never done business with them again.
A few months later, they notified me I had a large surplus in my account, because the adjustment to the bill the first person had made actually did eventually go through. So they ended up refunding most of what I paid them.
Bureaucracy. It can be a powerful force for both good and evil. Unfortunately, it seems to be completely random which one it does in any case.
This is basically correct. Most people state the 2nd law of thermodynamics backwards. There isn't any fundamental law of nature that causes entropy to increase with time. Rather, we define "forward in time" to mean, "the direction of increasing entropy." In our local region of spacetime, that translates to, "away from the big bang."
What's surprising is how few physicists really understand this. None of my textbooks ever described it that way. Yet Boltzmann understood this perfectly well in the 19th century, and described the situation very clearly.
If you're interested in learning more, a good book on the subject is From Eternity to Here by Sean Carrol. The author has also given a couple of TED talks on the subject.
As far as we can tell, yes. This is known as retrocausality, and experiments have been done that it's at least plausible to interpret as having observed it.
This is a very thorny subject because we have so many biases about how the universe "ought to" be, and it's hard to even talk about the subject, much less interpret an experiment, without bringing in all those biases. But I'll describe the interpretation that I find the cleanest, simplest, and most appealing. Other people have other views.
First, you need to let go of your presentist way of thinking about time ("only this moment exists") and accept an eternalist, block-universe viewpoint: space-time is a continuum that all exists "at once", and what you call "the present" is merely an arbitrary slice through it. The arrow of time is likewise arbitrary: the future affects the past in precisely the same way that the past affects the future, and information propagates in both directions according to exactly the same equations.
Once you accept that, all the strange features of quantum mechanics disappear. Entanglement is an illusion created by ignoring the information flowing in one direction. The collapse of the wavefunction isn't a change to the thing you're measuring, just a change in what you know about it. The uncertainty principle is just a limit on how much you can learn by doing an experiment.
If you want to learn more about this subject, this article is a good place to start.
According to this article, it actually is much faster than conventional computers... but only for problems that can be mapped to it well, and currently a lot of problems don't fall into that category.
"global warming" as you state it is not yet settled science, nor is global anthropomorphic-caused climate change as the IPCC's political wing would have you believe it.
Ummm... I think you just perfectly illustrated his point about the "magical balance fairy". One party has become so divorced from reality, most of the people they elect refuse to believe in basic truths like evolution and global warming, for which the evidence is absolutely overwhelming. On the other hand, you saw some drivers who you assumed were Democrats (though you had no way of actually knowing) insulting some protesters. Therefore, both sides are equally bad.
It appears to me that one of these is not like the other.
To be specific, it adds the following text to the anti-circumvention provision of the DMCA:
It shall not be a violation of this section to circumvent a technological measure in connection with a work protected under this title if the purpose of such circumvention is to engage in a use that is not an infringement of copyright under this title.
So if you're doing something that's fair use, this provision no longer applies to it. That's a huge improvement.
Sometimes, trying to remain undecided just isn't an option. At least, not a morally acceptable one. In this case, whatever we do or don't do will have a profound impact on the lives of billions of people. So how do you respond? Well, there are a few options:
1. "This is a really important issue, so I'm going to study the science involved. That'll take a lot of work, but this issue is so important I have a responsibility to do it."
2. "I don't have time to study the science involved and really understand it. Therefore, I'll accept the judgement of the people who do study it."
3. "I don't have the time or interest to study this issue and form an educated opinion, but I don't really want to accept anyone else's opinions either. Therefore I'll just use this as an opportunity to look down on people on both sides of the issue."
I submit that what you are doing is basically #3. I also submit that in this case, that's a morally reprehensible way to respond.
Also note my signature quote, which is remarkably appropriate to this topic.
The difference, of course, is that I paid for Solyndra. I didn't pay for the venture capitalists.
That's a nonsequitor. The earlier poster's point was that you benefited from all the value generated by that program. You need to look at the program as a whole, and ask how successful it was.
The principle followed by venture capitalists (which the earlier poster was using as an analogy) is that some of the projects you fund should fail. If none of them do, that means you aren't taking enough risks. And if you aren't willing to take risks, you're unlikely to have the huge successes that make the whole business worth while. A common rule of thumb is that for every ten companies they fund, five should fail, four should be modest successes, and one should be a blockbuster.
Most decent supermarkets in the US (at least in the areas where I've lived) sell quite good bread, along with the inedible prepackaged stuff. This definitely depends where you live, of course. I'm close to downtown in a small city, and there are seven supermarkets (plus a few smaller groceries) I can walk to within 20 minutes. Of those seven, there are two that have a large selection of what I consider "good" bread, and another two that have a small selection. The remaining three I probably wouldn't go to if bread was on my shopping list.
I can't wait for the day when we can replace our legislators with computers! I mean, talk about a job that humans are totally unqualified to perform!
Of course there will be some initial resistance to the idea. The first step will be to replace most of the support staff, but we'll still let humans make the final vote. It will take a generation for people to get comfortable with the idea. But eventually it will become obvious that computers are so much better than humans at making these decisions, it would simply be stupid (not to mention immoral) for any human to ignore the advice of the far more competent computer.
So maybe we're moving toward a future where humans spend all their time hanging out with their children and playing sports and putting on entertainment for each other. Not because we actually need humans to do those things, but just because that's how we want to spend our time. I can imagine worse futures.
This time is different because we're approaching a time when machines can do almost anything better than humans. Before, when machines displaced people, those people moved to something else they could still do better than machines. But today, machines are making dramatic progress in a huge range of fields across the entire spectrum of human activities. It's not just manufacturing, but service industries as well. And it's not just low skilled jobs getting replaced, but highly skilled ones as well. Teachers, truck drivers, tax preparers, pharmacists, travel agents, etc. All of them are either actively seeing their jobs replaced, or can detect the first hints of it on the horizon. Local retail is being decimated by online stores that employ a fraction as many people (and even those people will probably eventually lose their jobs to automation). How long before a computer can do a better job of diagnosing an illness than any human doctor?
Pick any job you want - literally any - and ask yourself how soon a computer or robot will be able to match the performance of a human at it. The answer will almost certainly be less than 50 years. In many cases, much less.
An important difference with open source is that, if a component you rely on is abandoned, you have the choice of maintaining it yourself. I'm not suggesting you want to take over development of large projects, but in some cases this is a real option. It's especially relevant to the last category mentioned in the post: "Projects that have had no updates but are highly stable and do what is necessary, but are risky because they may not interoperate with future upgrades to other components." If you're using a library that's stable and does what you want, and your only concern is keeping it working when other things change in the future, that may be quite easy to do yourself.
There's absolutely no reason for them to exist. They don't provide any benefit at all to society, and abolishing them would save industry tens of billions of dollars a year.
That sentence was badly written. This is what I think they were trying to say: you put in both chemical energy (in the sugar) and thermal energy, and get out chemical energy (hydrogen gas). The amount of chemical energy you get out is greater than the amount of chemical energy you put in. The excess came from the thermal energy you put in. The reference to driving it with low temperature waste heat in the next sentence supports this interpretation.
Cost to build and install several square kilometers of solar panels: HUGE Cost to mow several square kilometers of grass or small plants and send it to your processing facility: minimal
It's not just about how much sunlight we can turn into electricity. There's way more sunlight than we need. It's about how we can do that cheaply and easily.
I guess that depends on what you consider to be "spooky".:) But there are no cats that are alive and dead at the same time, and no mysterious actions at a distance with no apparent mechanism to cause the action, so that's unspooky in my book.
The only assumption behind special relativity is that the laws of physics (including the speed of light) are the same in all inertial reference frames. I'm not sure what "causality" means in this case (it's a notoriously hard word to define), but there's no requirement that one direction in time be singled out as special. As you say, the equations are completely symmetric with respect to time reversal. Furthermore, relativity tells us that "the present" isn't well defined. What you call "the present" is a particular slice through spacetime, but it's not the same slice I call "the present". There are infinitely many ways you could slice it, and all of them have an equal right to be called "the present".
But while relativity on its own is consistent with retrocausality (information flowing backward in time), it doesn't require it. It's only when you add quantum mechanics (or at least, certain interpretations of it) that time reversibility requires retrocausality. This article discusses why that is true: http://arxiv.org/abs/1002.0906
Retrocausality is neither a theory nor an interpretation: it's an element that appears in several different models, some of which make novel predictions and others of which merely reproduce the predictions of standard QM. Here's one of my favorites: http://arxiv.org/abs/0706.4075. It's still at a very early stage, but I love the direction he's going in. It would be amazing if it can be shown to really work for all cases, since it suggests QM is way more complicated than it really needs to be.
Try some type of sync tool or use a network-attached filesystem, if appropriate.
That's exactly my point. With any other version control system, this simply isn't an issue, because all other version control systems are fine with creating multiple working copies on multiple computers that all reference the same remote repository. In fact, synchronizing changes between computers is a large part of what they do. But not git. Suddenly I'm supposed to set up a file sync system to solve a problem that only exists because of an architectural flaw in git.
Of course, that's just a workaround. If you look through git documentation, it will never tell you to do that. It will claim git is a great tool for people who work on multiple computers, and that nothing more is required than a "git push" and "git pull" each time you switch computers... before diving into all the problems that come up and all the things you need to do to work around them. Workarounds that are so painful, you've decided it's easier to just sidestep them and use a completely different tool instead.
No, I'm actually using Github. So there's the main repository for the project, and then I've created my own personal fork, also on Github. And I'd really like to just create a working copy on each computer, all pointing to my personal repository on Github. But I can't. Instead I have to create yet another repository on every computer I work on, and then keep all of them in sync with each other. This just creates extra steps, and extra opportunities to make mistakes.
I can't count how many times I've committed changes on one computer, then gone over to another computer to test them, only to discover I forgot to also do a "git push", so then I have to walk back over to the other office to push them up to Github.
Or I try to do a "git pull", but it fails because I have uncommitted changes, so I have to stash them, then do the pull, the reapply them from the stash. Very very irritating.
And every time you do a "git push" or "git pull", you have to specify the branch. And it's really really easy to accidentally pull changes into the wrong branch, which creates a mess.
Speaking of branches, there's another "feature" that makes all of these problems far worse. (I'm not sure whether this is actually a feature of git, or something specific to Github.) When you send a pull request, you only intend it to refer to a particular set of changes. But it doesn't actually specify them. All it specifies is the branch, and if you commit more changes on that branch before the pull request gets merged, those will get merged too. So you are basically forced to create a new branch for every single change you make, no matter how trivial. If I commit a one line bug fix, I first have to create a new branch for that one line bug fix. Otherwise, there's a risk that whatever I check in after it will get added to the same pull request, even though it's unrelated and not yet ready to be merged.
Working with svn, I only create branches very rarely, perhaps once every few months. There's no need for them the rest of the time. Working with git, you're creating and deleting and merging branches almost continuously.
I'm sure this will be an unpopular opinion, but I seriously loath git. Its distributed development model is nice for certain types of projects, but aside from that, doing almost anything in git is more complicated and more work than doing the same thing in svn.
I think the fundamental architectural flaw in git is that it insists on a 1:1 correspondence between repositories and working copies. If you want a working copy, you absolutely must have a unique repository to go along with it, and that repository must be on your local disk. You can't have a local working copy based on a remote repository, and you can't have multiple working copies based on the same repository. And of course, each repository comes with its own revision history and its own distinct set of branches. I switch back and forth between several computers over the course of a day, and keeping all those repositories properly in sync with each other is a nightmare.
Computer science is a field of math. If you're majoring in the field, you really ought to already know that. Computer science does not mean "writing computer programs". It does not mean "the set of skills needed to get a job in IT". If those are what you really want, you're in the wrong place. Computer science (note the word "science" in its title) is a field of math that studies the process known as "computation" from a theoretical perspective. If that isn't what you want to study, you need to find a different major.
A laptop (which happens to run Mac OS).
Microsoft has a majority market share in the new desktop PC marketplace.
Wait... you mean there's still a market for desktop PCs? I had no idea! And how many of them get sold compared to laptops, tablets, phones, and even servers?
Then again, there's probably someone somewhere who still uses floppy disks.
You know, I once had an experience with AT&T that was somewhat similar to this. The details were a bit different, but like you, they wanted me to pay a ridiculous amount for an international phone call. I spoke to a customer service rep who was very helpful, switched around some details on my plan, and told me the bill would be lowered to a much more reasonable amount.
Shortly after, I got another bill from them, still asking for the same ridiculous amount. I called them up, and after much grief was eventually told that no, my plan had not been modified and could not be modified, and I had to pay the whole amount. So in the end I paid it, then switched away from AT&T and have never done business with them again.
A few months later, they notified me I had a large surplus in my account, because the adjustment to the bill the first person had made actually did eventually go through. So they ended up refunding most of what I paid them.
Bureaucracy. It can be a powerful force for both good and evil. Unfortunately, it seems to be completely random which one it does in any case.
This is basically correct. Most people state the 2nd law of thermodynamics backwards. There isn't any fundamental law of nature that causes entropy to increase with time. Rather, we define "forward in time" to mean, "the direction of increasing entropy." In our local region of spacetime, that translates to, "away from the big bang."
What's surprising is how few physicists really understand this. None of my textbooks ever described it that way. Yet Boltzmann understood this perfectly well in the 19th century, and described the situation very clearly.
If you're interested in learning more, a good book on the subject is From Eternity to Here by Sean Carrol. The author has also given a couple of TED talks on the subject.
Can an "after" happen _before_ a "before" ?
As far as we can tell, yes. This is known as retrocausality, and experiments have been done that it's at least plausible to interpret as having observed it.
This is a very thorny subject because we have so many biases about how the universe "ought to" be, and it's hard to even talk about the subject, much less interpret an experiment, without bringing in all those biases. But I'll describe the interpretation that I find the cleanest, simplest, and most appealing. Other people have other views.
First, you need to let go of your presentist way of thinking about time ("only this moment exists") and accept an eternalist, block-universe viewpoint: space-time is a continuum that all exists "at once", and what you call "the present" is merely an arbitrary slice through it. The arrow of time is likewise arbitrary: the future affects the past in precisely the same way that the past affects the future, and information propagates in both directions according to exactly the same equations.
Once you accept that, all the strange features of quantum mechanics disappear. Entanglement is an illusion created by ignoring the information flowing in one direction. The collapse of the wavefunction isn't a change to the thing you're measuring, just a change in what you know about it. The uncertainty principle is just a limit on how much you can learn by doing an experiment.
If you want to learn more about this subject, this article is a good place to start.
But did you know...?
Robots are SMARTER than you.
Robots work HARDER than you.
Robots are BETTER than you.
Volunteer for testing today!
According to this article, it actually is much faster than conventional computers... but only for problems that can be mapped to it well, and currently a lot of problems don't fall into that category.
"global warming" as you state it is not yet settled science, nor is global anthropomorphic-caused climate change as the IPCC's political wing would have you believe it.
Yes it is. We passed that point long ago.
Ummm... I think you just perfectly illustrated his point about the "magical balance fairy". One party has become so divorced from reality, most of the people they elect refuse to believe in basic truths like evolution and global warming, for which the evidence is absolutely overwhelming. On the other hand, you saw some drivers who you assumed were Democrats (though you had no way of actually knowing) insulting some protesters. Therefore, both sides are equally bad.
It appears to me that one of these is not like the other.
To be specific, it adds the following text to the anti-circumvention provision of the DMCA:
It shall not be a violation of this section to circumvent a technological measure in connection with a work protected under this title if the purpose of such circumvention is to engage in a use that is not an infringement of copyright under this title.
So if you're doing something that's fair use, this provision no longer applies to it. That's a huge improvement.
Sometimes, trying to remain undecided just isn't an option. At least, not a morally acceptable one. In this case, whatever we do or don't do will have a profound impact on the lives of billions of people. So how do you respond? Well, there are a few options:
1. "This is a really important issue, so I'm going to study the science involved. That'll take a lot of work, but this issue is so important I have a responsibility to do it."
2. "I don't have time to study the science involved and really understand it. Therefore, I'll accept the judgement of the people who do study it."
3. "I don't have the time or interest to study this issue and form an educated opinion, but I don't really want to accept anyone else's opinions either. Therefore I'll just use this as an opportunity to look down on people on both sides of the issue."
I submit that what you are doing is basically #3. I also submit that in this case, that's a morally reprehensible way to respond.
Also note my signature quote, which is remarkably appropriate to this topic.
Silly me! And I thought Segways failed to catch on because they cost 10 times more than bicycles while having no significant advantages!
The difference, of course, is that I paid for Solyndra. I didn't pay for the venture capitalists.
That's a nonsequitor. The earlier poster's point was that you benefited from all the value generated by that program. You need to look at the program as a whole, and ask how successful it was.
The principle followed by venture capitalists (which the earlier poster was using as an analogy) is that some of the projects you fund should fail. If none of them do, that means you aren't taking enough risks. And if you aren't willing to take risks, you're unlikely to have the huge successes that make the whole business worth while. A common rule of thumb is that for every ten companies they fund, five should fail, four should be modest successes, and one should be a blockbuster.
Most decent supermarkets in the US (at least in the areas where I've lived) sell quite good bread, along with the inedible prepackaged stuff. This definitely depends where you live, of course. I'm close to downtown in a small city, and there are seven supermarkets (plus a few smaller groceries) I can walk to within 20 minutes. Of those seven, there are two that have a large selection of what I consider "good" bread, and another two that have a small selection. The remaining three I probably wouldn't go to if bread was on my shopping list.
I can't wait for the day when we can replace our legislators with computers! I mean, talk about a job that humans are totally unqualified to perform!
Of course there will be some initial resistance to the idea. The first step will be to replace most of the support staff, but we'll still let humans make the final vote. It will take a generation for people to get comfortable with the idea. But eventually it will become obvious that computers are so much better than humans at making these decisions, it would simply be stupid (not to mention immoral) for any human to ignore the advice of the far more competent computer.
So maybe we're moving toward a future where humans spend all their time hanging out with their children and playing sports and putting on entertainment for each other. Not because we actually need humans to do those things, but just because that's how we want to spend our time. I can imagine worse futures.
This time is different because we're approaching a time when machines can do almost anything better than humans. Before, when machines displaced people, those people moved to something else they could still do better than machines. But today, machines are making dramatic progress in a huge range of fields across the entire spectrum of human activities. It's not just manufacturing, but service industries as well. And it's not just low skilled jobs getting replaced, but highly skilled ones as well. Teachers, truck drivers, tax preparers, pharmacists, travel agents, etc. All of them are either actively seeing their jobs replaced, or can detect the first hints of it on the horizon. Local retail is being decimated by online stores that employ a fraction as many people (and even those people will probably eventually lose their jobs to automation). How long before a computer can do a better job of diagnosing an illness than any human doctor?
Pick any job you want - literally any - and ask yourself how soon a computer or robot will be able to match the performance of a human at it. The answer will almost certainly be less than 50 years. In many cases, much less.
An important difference with open source is that, if a component you rely on is abandoned, you have the choice of maintaining it yourself. I'm not suggesting you want to take over development of large projects, but in some cases this is a real option. It's especially relevant to the last category mentioned in the post: "Projects that have had no updates but are highly stable and do what is necessary, but are risky because they may not interoperate with future upgrades to other components." If you're using a library that's stable and does what you want, and your only concern is keeping it working when other things change in the future, that may be quite easy to do yourself.
There's absolutely no reason for them to exist. They don't provide any benefit at all to society, and abolishing them would save industry tens of billions of dollars a year.
That sentence was badly written. This is what I think they were trying to say: you put in both chemical energy (in the sugar) and thermal energy, and get out chemical energy (hydrogen gas). The amount of chemical energy you get out is greater than the amount of chemical energy you put in. The excess came from the thermal energy you put in. The reference to driving it with low temperature waste heat in the next sentence supports this interpretation.
Cost to build and install several square kilometers of solar panels: HUGE
Cost to mow several square kilometers of grass or small plants and send it to your processing facility: minimal
It's not just about how much sunlight we can turn into electricity. There's way more sunlight than we need. It's about how we can do that cheaply and easily.
I guess that depends on what you consider to be "spooky". :) But there are no cats that are alive and dead at the same time, and no mysterious actions at a distance with no apparent mechanism to cause the action, so that's unspooky in my book.
The only assumption behind special relativity is that the laws of physics (including the speed of light) are the same in all inertial reference frames. I'm not sure what "causality" means in this case (it's a notoriously hard word to define), but there's no requirement that one direction in time be singled out as special. As you say, the equations are completely symmetric with respect to time reversal. Furthermore, relativity tells us that "the present" isn't well defined. What you call "the present" is a particular slice through spacetime, but it's not the same slice I call "the present". There are infinitely many ways you could slice it, and all of them have an equal right to be called "the present".
But while relativity on its own is consistent with retrocausality (information flowing backward in time), it doesn't require it. It's only when you add quantum mechanics (or at least, certain interpretations of it) that time reversibility requires retrocausality. This article discusses why that is true: http://arxiv.org/abs/1002.0906
Retrocausality is neither a theory nor an interpretation: it's an element that appears in several different models, some of which make novel predictions and others of which merely reproduce the predictions of standard QM. Here's one of my favorites: http://arxiv.org/abs/0706.4075. It's still at a very early stage, but I love the direction he's going in. It would be amazing if it can be shown to really work for all cases, since it suggests QM is way more complicated than it really needs to be.