Nation is very different from a household. There is lot more people, they are anonymous. You need money to track who owns to whom, in household everybody knows. The worker specialization is much more relevant in the national economy. There is labor and trade and different political interests. I could go on and on.
Addendum: It might be true that in the nation as in the household, you should be aware if you are entering an external contract with someone, like borrowing money. But the question of internal debt between the citizens of the nation cannot be reduced to household economy, there is no such thing as an austere husband lending money to his wife.
Obviously, a nation is very different from a household.
But they aren't different in the way that the post I was responding to suggested, that a household couldn't possibly overspend for future benefit whereas a nation could.
No, that's not what the quote was about, the quote was saying that their economies should be managed the same way. Your interpretation of that quote is much narrower and in particular, it only applies to foreign debt.
I don't know what quote you are referring to as no quotations are involved in this discussion.
The post I was responding to said:
> Growth means that economically you can outspend
> your "budget" every year and still come out ahead
> because that spend this year makes next year's budget
> larger."
I pointed out that's not different between a household and a nation, both can do this.
Yes, nations are very different from households. And yes, you shouldn't run their economies the same way. But to make that point you really need to point to criteria that differ between households and nations, and not to things which aren't actually fundamentally different.
The West also has social credit system, it's called money. If you do something useful for society, you will get them. If you don't do something useful, you will not get them and die of hunger. And if you do something wrong, you can often use money to avoid harsher punishment.
I think social credit systems are wrong, the moral behavior shouldn't be tradeable. But let's face it, almost all societies have them, and they have many flaws.
I haven't read the book, but I suspect you're disagreeing with Rousseau and not Bregman here. I don't think Bregman recommends removing the civilization, but rather augmenting it based on the moral principles that we already accept as humans.
Last time I checked, it was agreed that there are no universally accepted moral principles. In fact, counting purely by headcount (India and China do exist!), quite a number of things you consider to be universally or widely accepted may actually be accepted by the minority of the people. Is it "eye for an eye" or "turn another cheek"? More than half of the world would take the first options as morally correct.
Maybe I am reading too much into this argument, but I think this is moving the goalposts. So Bregman comes and proves, presumably mostly based on history of Western civilization, that humans are (at least in some ways and on average) better than they think they are. Your response to that is, well, those darn Indians and Chinese, they are not part of Western civilization, therefore, Bregman's proof does not hold.
Not to mention that it has a little bit of a scent of white man's burden.
And BTW, I do believe in universality of human rights, I don't care what the consensus is. While I agree with Bregman, I think it is kind of a moot point (as any argument from nature), because the values we have (or rather decisions we make) are much more a function of the environment we live in.
> "universality of human rights"
That's a somewhat overcompressed term. Does it mean "the human rights, as they're generally perceived in the beginning of the XXI century in <your country>, are applicable to all humans in the past, the present, and the future, at any place on (or in, or outside of) the Earth"? Or does it allow for some human rights that will be discovered one day in the future to also cover everyone, including you and me today?
And I certainly did not intend "the white man's burden", on the contrary, "the white man's nosiness". The Western people, objectively judged by their own standards, turn out to be better than they generally tend to judge themselves by those standards? Good for them! Now could they please allow other people to judge themselves by their own, maybe different, standards?
It's not the idea itself which seems to me absurd, it's the process - let's take something from abstract mathematical field and apply it on a vaguely "topologically" similar subjective experience and think that "it's proven by math".
Topological similarities can be meaningful as in they often provide great source of inspiration.
However, it's just an inspiration and it must be proven in its newly applied field - proof in context of category theory is not valid in the context of inter-personal relations.
For what it's worth, you asserted above that you are not rude, but telling a stranger they sound like a sociopath is generally considered rude. It may genuinely be that you have transcended social norms, but the rest of us haven't, and I'm afraid you're dealing with the rest of us!
Perhaps that serves to illustrate why it is rude. If that doesn't help, then just remember that it is. Good manners don't always need to make sense to you, sometimes they only make sense to other people.
> Tests that use random input data are much more difficult to write correctly.
Interestingly, I personally find them easier to write. I actually find classic unit tests hard to write, probably because I am painfully aware of the lack of coverage.
While with property-based testing, I start from the assumption I have on what the code should do. Then the test basically verifies this assumption on random inputs.
Doing unit test with the given input seems to me backwards - it's like a downgrade, because I always start from what kind of assumption I have and based on this I choose the input. And why not encode the assumption, when you already have it in your mind anyway?
Your implementation is necessarily complex. That's why it may have bugs, and why it needs tests.
You have many more tests than implementations. In my experience, ~20x more. If your tests had bugs at the same rate as your implementation, you'd spend 95% of your time fixing test bugs and 5% fixing implementation bugs. That's why tests should be simple.
If you're going to be spending that much time on validating assumptions, I think you're better off trying to express them formally.
I think I disagree, but it really depends what you mean by "test" or "test case". I assume that test case is for a given input, expect certain output, and test verifies certain assumption, such as for a certain class of inputs you get a certain class of outputs.
I believe that you always test two implementations. For example, if I have a test case for a function sin(x), then I compare with the calculator implementation, from which I got the result. So if the tests are to be comprehensive (and automatically executed), then they have to be another implementation of the same program, you can't avoid it, and you can't avoid to (potentially) have bugs in it.
Now, the advantage is that the test implementation can be simpler (in certain cases); or can be less complete, which means less bugs, but also (in the latter case), less comprehensive testing.
In any case, you're validating the assumptions. The assumptions come from how the test implementation works (sometimes it is just in your head). And to express them formally, of course, that's the whole point.
For example, if you're given an implementation of sin(x) to test with, you can express formally the assumption that your function should give a similar result.
By formalizing this assumption, you can then let the computer create the individual test cases; it is a superior technique than to write test cases by hand.
Actually, you can get reproducible tests even with randomized tests, by setting the random seed (I always do that in e.g. Quickcheck). So this is really a moot point, not a good excuse not to do random testing (or not to use QuickCheck ;-P).
I don't believe any test frameworks in Java have built-in support for randomisation using a seed, so this is a foreign concept to most Java programmers. Which is a shame, because it's useful.
It would actually be really easy to package up seeded randomisation as a JUnit rule / extension. As far as i can tell, nobody has done that.
The way I like to explain this is to start from an intensional definition of money as "something that has no value by itself but can be potentially exchanged for something of that value". And total amount of money in economy is the total amount of these things at a given point in time.
So when somebody creates an IOU trusted enough so it could be resold, they have effectively created "money" according to the above definition, because now that IOU can be traded _independently_ of the thing it was originally exchanged for.
I think what confuses lot of people about this is that creation of money is a 3-sided transaction, and we are conditioned to think of a market economy as a sequences of 2-sided transactions.
Also, what I find very funny, some libertarians want to impose government to only create money backed by a commodity, like a gold standard. Yet their fundamental axiom is to allow any two parties to enter (almost) any contract, in particular, allow them to create and resell IOUs. However, if the government has to enforce any contract that two parties can come up with, this is already giving too much freedom for the money to be created regardless of the actual commodities in existence, and regardless what the government does.
To me, commodity money (gold/silver) is only required when the trust in the gov't enforcement of money creation doesn't exist.
and this isn't the case (yet) with the USA - despite the rampant increase in money supply. Unlike other hyper-inflating economies such as Venezuela, the USA gov't isn't printing money to meet it's obligations, but instead turning illiquid assets (such as bonds and treasuries) into liquid assets (cash), that can then be used to grease more commerce and transactions. I don't believe this can cause hyper-inflation that many fear (and thus turn to buy gold/commodities), because the money is backed by debt, which has to still be paid pack.
Addendum: It might be true that in the nation as in the household, you should be aware if you are entering an external contract with someone, like borrowing money. But the question of internal debt between the citizens of the nation cannot be reduced to household economy, there is no such thing as an austere husband lending money to his wife.