"What a Terrible Failure: Report an exception that should never happen."
http://developer.android.com/reference/android/util/Log.html..., java.lang.String)
342 karma · joined September 4, 2012
"What a Terrible Failure: Report an exception that should never happen."
http://developer.android.com/reference/android/util/Log.html..., java.lang.String)
But how can a national discussion take place about a secret program??
He never addressed this issue of why the program needs to be secret in the first place.
(note that this happened in 2012, before the ruling in this article)
Also, it doesn't need to be a crypto failure. Just a divergence of the clients on how they handle the protocol. Possibly a discrepancy that would be very unlikely to occur by chance or in testing, and only manifests itself when a malicious user triggers it. This is the threat model bitcoin has to worry about now...
Here's the scary thing revealed by this bug however: Causing (intentionally) a fork is WAY easier than I thought!
You don't need to control a majority of mining. All you need is to craft a block such that some large % of the mining clients will fail on it. This could be a failure at any point in the bitcoin software. If there is a size limit discrepancy between versions (in this case the DB), or maybe a unicode parsing bug in some library used, or whatever. It doesn't need to be an exploitable code bug. It just needs to cause some % of mining clients to fail and reject a particular block.
It's relatively easy to find a bug that causes some software to crash. Most of the time these bugs are minor, and don't allow any remote execution or anything, so programmers don't necessarily worry about them most of the time. But in bitcoin they could potentially cause a blockchain fork! Which could be exploited, as this incident proves. This seems to lower the bar considerably to exploit BTC.
With Akka you get most of the concurrency benefits you would get from a language like Erlang, but with the benefits of having access to the entire JVM ecosystem.
Amazon, heroku etc aren't fast enough for us due to spin-up time. Basically when we get a particular command from a user, we need to do a LOT computation on many parallel machines, but for a short burst of time.
Keeping a whole cluster of machines reserved would be prohibitively expensive at this stage. We would prefer to keep a small base-load capacity reserved, and then spin up a large number of instance for a short time. Response time is key here.
It would be best if they were already up and running, waiting for a command, but idle most of the time. Fine if it's shared with others. Kind of like a computation insurance for short bursts of high-demand.
Anyone know any services like that?
The author argues that any AI will consist of two parts, the machine learning program L and the training set T, which combine to form the "intelligent" program M. And thus by information theory, k(L) + k(T) >= k(M) [where k is the kolmogorov complexity]. Thus M is bounded by the information in L and also bounded by T. The author argues that since these both depend on humans supplying them, we are limited by the human factor.
But how much information does one really need for AI? Well, how much information is necessary for human intelligence? Assuming that L is our genome (ignoring epigenetics), and T is our life experiences. The amount of data in our genome is on the order of around 3gb. I would argue that's certainly within the realm of feasibility for programmer's output. How about the training set T? That's harder to say; does it include video, audio, touch, etc? How many years until a human is considered intelligent (by AI standards)? I think it's safe to say that a 10 year old blind human could pass a Turing test. So if we ignore tactile and olfactory feedback, we basically just need 10 years of compressed audio as the training set. Generously encoding the audio at 128kbps 24/7 for 10 years = 4.7 terabytes. Which is easily within the realm of current machine learning. We have far more information than that (and much more densely encoded as text), but still aren't close to True AI.
I think the problem is not that we don't have enough Information, I think it's that we have not yet searched enough of the problem space. And that's where more hardware can help us.