That is why the dynamic language ccrowd 'invented' (rediscovered, cough cough) unit tests and test driven development.
Oh, no. You can thank the Extreme Programming Gurus (now known as "Agile") for this.
The system that I work on now is an API, so unit testing it is necessary. For external APIs, you absolutely need to know if any user-visible behaviour has changed.
For internal APIs, the main job of unit testing is to make refactoring sufficiently expensive that it will never happen.
Or does the "top talent" in this area prefer static typing?
Yes.
My experience is that dynamically typed languages make you feel more productive but lower your productivity overall. It takes longer for a programmer to persuade a Haskell or C++ or Java compiler to accept their program. Python programmers interpret this as "satisfying the arbitrary whims of the compiler", where C++ programmers interpret this as "finding and squashing bugs before deploying".
If you don't mind deploying bugs because time-to-market is more important than software quality, that may not be a concern for you. But you won't attract "top talent" with that attitude.
ChaiScript. A header-only library that implements an scripting layer for C++. If you saw the words "header-only library" and felt a warm glow, then this is for you.
GameMonkey Script. Essentially Lua, but easier to integrate as a scripting layer.
Squirrel. Similar to Lua/GameMonkey. It does have built-in OOP brain damage, though.
Pawn. The lightest-weight scripting layer you will ever see.
Companies want flashy pretty webpages. Developers prefer to produce something else.
My first thought was that I don't want to be anywhere near a potential employer who wants to use JavaScript or a potential colleague who wants to use Python.
Pick any Clint Eastwood film. How about Invictus? The message is: "A good leader with the power of persuasion can make the world a better place far better than coercion ever could."
No, I think we all get it. Just that most of us believe it isn't true, or that it's strange that people would prefer repressed hostility to actual cooperation.
You want to know the most insincerely polite society? It's Iran. And they don't need guns to achieve it.
Conservatives hate his view on government because he didn't buy into legislating morality.
Oh, no. You have to think back to the world of 1959. This was before the Powell Memorandum, before Watergate, before fundamentalists took over the NRA, before conservative politics got in bed with Christian fundamentalism (and, indeed, before they had taken over the SBC too).
This was the era between Brown v. Board of Education and the passing of the Civil Rights Act. American conservative politics back then had little to do with legislating morality and everything to do with opposing desegregation. It was still at least a decade and a half before abortion would be chosen as the new wedge topic.
No, no, not at all. Russia is just the only foreign actor that we have some evidence for. It's very possible that others are trying with varying levels of success and varying levels of having been caught.
I deleted the one that made the comment look a bit stupid.
Of course not. Russia doesn't have to run MSNBC or Fox News. Americans have mostly turned on each other on their own after there was no common enemy left at the end of the Cold War (although this round of division has its origin in the 1970s in the wake of the Southern Strategy, Watergate, and the Powell Memorandum). Russia only has to nudge things a little.
You can't actually make someone cheat on their partner. You can only amplify what is already there.
Russia's goal is probably to keep the American voting public disunited. It is in their best interest to keep each half of the population thinking that the other half are un-American traitors.
What should make you angry is that it doesn't take much, since the politicians, cable commentators, and Internet comment sections do most of the work already. Just a few nudges are required.
At the risk of stating the bleeding obvious, it makes perfect sense to scrutinise tactics more closely if they actually worked. If Russians had hypothetically meddled to try to get a "yes" in the Scottish independence vote, that wouldn't be as big a deal because it didn't work.
Same if they had tried to engineer a Bernie Sanders victory.
The only thing that's been said which "sort of" justifies this patent is that this is the reduction of a known algorithm (interval arithmetic) to a hardware implementation.
If you read TFA, it's clear that there are at least two things which can reasonably be called "new": a compact representation of a value-plus-bounds (i.e. an interval), and some way to mark (analogous to quiet NaNs, if I'm reading it correctly) a calculation that may have violated its precision requirements.
Maybe if you're working in a safety-critical field it might help with some calculations, but I can't see how it would help with most numeric problems.
If you read TFA, it is a novel variant of interval arithmetic. You can think of this as interval arithmetic using a more compact representation, plus something like quiet/signalling NaNs if a computation exceeds programmer-defined error bounds.
I can see a few use cases (e.g. maybe some safety-critical environments), but it isn't "the floating-point problem".
That's not the only flaw, of course. If you take a workhorse numeric problem like integrating an ordinary differential equation, interval arithmetic can give you a bound on how accurate the calculation is relative to an infinite-precision calculation, but not on how accurate the calculated solution is relative to the true solution. I'll give you one guess which bound is the one you actually want.
In the case of ODE solving or numeric quadrature, the thing that determines the accuracy of the solution is how well-behaved the function is in the regions that fall between your samples. Neither interval arithmetic nor this "bounded floating point" is going to help you here.
Now having said that, I did read it, and the method described is not quite interval arithmetic. It's a little more subtle than that: the programmer sets the desired error bounds on the solution, and the FPU does something like a quiet NaN if the calculation exceeds those bounds.
And yes, just like with interval arithmetic, all our floating point libraries will need to be rewritten.
the result of a large calculation is NEVER well-characterized if you propogate worst-cases.
That's true, but TFA is talking up the safety-critical aspect, which I suppose is the one place where worst-case behaviour is what you want. TFA also mentions weather simulations, and that's exactly the case where the distribution of solutions is the answer you want, not worst-case bounds.
It's a little bit interesting, but Betteridge's Law definitely wins this round. I can see this as being slightly more useful than existing techniques (e.g. interval arithmetic) in some safety-critical systems, but I'd rather just have finer rounding control on a per-variable basis. We've had SIMD instructions on commodity hardware for almost two decades now, so I don't know why we don't already have essentially-free interval arithmetic within a register.
This doesn't "solve" "the floating-point error problem", as if there's only one problem outstanding. The full-employment theorem for numeric analysts has not been violated.
That is why the dynamic language ccrowd 'invented' (rediscovered, cough cough) unit tests and test driven development.
Oh, no. You can thank the Extreme Programming Gurus (now known as "Agile") for this.
The system that I work on now is an API, so unit testing it is necessary. For external APIs, you absolutely need to know if any user-visible behaviour has changed.
For internal APIs, the main job of unit testing is to make refactoring sufficiently expensive that it will never happen.
Here, let me give you the email address of my competitor. Please take them down.
bash + sed + awk == Perl
Or does the "top talent" in this area prefer static typing?
Yes.
My experience is that dynamically typed languages make you feel more productive but lower your productivity overall. It takes longer for a programmer to persuade a Haskell or C++ or Java compiler to accept their program. Python programmers interpret this as "satisfying the arbitrary whims of the compiler", where C++ programmers interpret this as "finding and squashing bugs before deploying".
If you don't mind deploying bugs because time-to-market is more important than software quality, that may not be a concern for you. But you won't attract "top talent" with that attitude.
Let me throw out a few more suggestions for you:
ChaiScript. A header-only library that implements an scripting layer for C++. If you saw the words "header-only library" and felt a warm glow, then this is for you.
GameMonkey Script. Essentially Lua, but easier to integrate as a scripting layer.
Squirrel. Similar to Lua/GameMonkey. It does have built-in OOP brain damage, though.
Pawn. The lightest-weight scripting layer you will ever see.
Companies want flashy pretty webpages. Developers prefer to produce something else.
My first thought was that I don't want to be anywhere near a potential employer who wants to use JavaScript or a potential colleague who wants to use Python.
If you've been using Boost for five years, you pretty much have five years' experience on the most recent standard.
Pick any Clint Eastwood film. How about Invictus? The message is: "A good leader with the power of persuasion can make the world a better place far better than coercion ever could."
Hollywood isn't great at portraying a liberal message either.
In general, Hollywood is terrible at making an intelligent film with a point. Clint Eastwood is one of the few who can do it well.
It's Parisians that are unmitigated assholes, they give the whole nation a bad name.
Yeah, large city culture is a universal experience no matter which country you come from.
No, I think we all get it. Just that most of us believe it isn't true, or that it's strange that people would prefer repressed hostility to actual cooperation.
You want to know the most insincerely polite society? It's Iran. And they don't need guns to achieve it.
Conservatives hate his view on government because he didn't buy into legislating morality.
Oh, no. You have to think back to the world of 1959. This was before the Powell Memorandum, before Watergate, before fundamentalists took over the NRA, before conservative politics got in bed with Christian fundamentalism (and, indeed, before they had taken over the SBC too).
This was the era between Brown v. Board of Education and the passing of the Civil Rights Act. American conservative politics back then had little to do with legislating morality and everything to do with opposing desegregation. It was still at least a decade and a half before abortion would be chosen as the new wedge topic.
Oh, yes. America's culture of insincere politeness has nothing on Iran.
Cool, let's make some.
And while I think of it, here's an example from Australia of another country trying and not quite getting caught.
No, no, not at all. Russia is just the only foreign actor that we have some evidence for. It's very possible that others are trying with varying levels of success and varying levels of having been caught.
So Russia is running Huffpo, Fox, etc?
I deleted the one that made the comment look a bit stupid.
Of course not. Russia doesn't have to run MSNBC or Fox News. Americans have mostly turned on each other on their own after there was no common enemy left at the end of the Cold War (although this round of division has its origin in the 1970s in the wake of the Southern Strategy, Watergate, and the Powell Memorandum). Russia only has to nudge things a little.
You can't actually make someone cheat on their partner. You can only amplify what is already there.
Russia's goal is probably to keep the American voting public disunited. It is in their best interest to keep each half of the population thinking that the other half are un-American traitors.
What should make you angry is that it doesn't take much, since the politicians, cable commentators, and Internet comment sections do most of the work already. Just a few nudges are required.
At the risk of stating the bleeding obvious, it makes perfect sense to scrutinise tactics more closely if they actually worked. If Russians had hypothetically meddled to try to get a "yes" in the Scottish independence vote, that wouldn't be as big a deal because it didn't work.
Same if they had tried to engineer a Bernie Sanders victory.
Please go back to undergraduate computer science and re-learn the difference between accuracy and precision.
"3" is a representation of pi accurate to the last digit. It's just very imprecise.
The only thing that's been said which "sort of" justifies this patent is that this is the reduction of a known algorithm (interval arithmetic) to a hardware implementation.
If you read TFA, it's clear that there are at least two things which can reasonably be called "new": a compact representation of a value-plus-bounds (i.e. an interval), and some way to mark (analogous to quiet NaNs, if I'm reading it correctly) a calculation that may have violated its precision requirements.
Maybe if you're working in a safety-critical field it might help with some calculations, but I can't see how it would help with most numeric problems.
If you read TFA, it is a novel variant of interval arithmetic. You can think of this as interval arithmetic using a more compact representation, plus something like quiet/signalling NaNs if a computation exceeds programmer-defined error bounds.
I can see a few use cases (e.g. maybe some safety-critical environments), but it isn't "the floating-point problem".
That's not the only flaw, of course. If you take a workhorse numeric problem like integrating an ordinary differential equation, interval arithmetic can give you a bound on how accurate the calculation is relative to an infinite-precision calculation, but not on how accurate the calculated solution is relative to the true solution. I'll give you one guess which bound is the one you actually want.
In the case of ODE solving or numeric quadrature, the thing that determines the accuracy of the solution is how well-behaved the function is in the regions that fall between your samples. Neither interval arithmetic nor this "bounded floating point" is going to help you here.
Now having said that, I did read it, and the method described is not quite interval arithmetic. It's a little more subtle than that: the programmer sets the desired error bounds on the solution, and the FPU does something like a quiet NaN if the calculation exceeds those bounds.
And yes, just like with interval arithmetic, all our floating point libraries will need to be rewritten.
That's true, but TFA is talking up the safety-critical aspect, which I suppose is the one place where worst-case behaviour is what you want. TFA also mentions weather simulations, and that's exactly the case where the distribution of solutions is the answer you want, not worst-case bounds.
It's a little bit interesting, but Betteridge's Law definitely wins this round. I can see this as being slightly more useful than existing techniques (e.g. interval arithmetic) in some safety-critical systems, but I'd rather just have finer rounding control on a per-variable basis. We've had SIMD instructions on commodity hardware for almost two decades now, so I don't know why we don't already have essentially-free interval arithmetic within a register.
This doesn't "solve" "the floating-point error problem", as if there's only one problem outstanding. The full-employment theorem for numeric analysts has not been violated.
It's a Parliamentary system, so things are a little different. The government goes into what is known as caretaker mode.
Good point. It's more fair to say the system means we shouldn't have a shutdown, and there is punishment for not following the system.
And yeah, Australian politicians are not paragons of selflessness.