HN user

asgard1024

1,234 karma
Posts1
Comments651
View on HN

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.

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.

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.

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.

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.

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?

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).

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.

I think that Trump believes that Snowden is a Russian spy, because he cannot imagine (given their different personalities) that somebody would do what Snowden did just for intrinsic reasons.

So Trump is trying to make a deal with Snowden - find some dirt on Democrats (Obama administration) during election, and I will pardon you.

However, Snowden is most likely not a spy, so no way this is gonna happen.

I come from a former communist country. Non-existence of free speech didn't always mean that somebody will disappear you. It might also have meant that you lose your cushy job and get a less cushy job. Which is not really all that different from what can happen if you openly criticize the CEO of your corporation, even internally.

Corporations usually sell goods and services, but do not have control over individuals most fundamental rights including those of freedom, health or even life - like governments often do.

And yet in the U.S., your health care and pension is often tied to your employment at a corporation. For some people, for example those on work visa, having employment in a particular corporation is tied to living in the same country.

Vice versa, a democratic government has less control over your life than you might think.

And if we look at things like free speech - I can freely criticize the government but criticizing the corporation is often difficult.

When I was a kid in the early 90s (in Czechoslovakia), I watched Wargames and Short Circuit, and they influenced me a lot to become interested in artificial intelligence. I found the idea of intelligent computers fascinating. Although the anti-war message in these movies sorta went over my head at the time.

I still like Wargames today, although I appreciate very different things about it. I also really like the library montage, which just so nicely captures the effort sometimes needed to solve a problem.

I think what you have to understand is that monad is quite an abstract concept. It is possible to give a specific example of a monad, but from the specific example, you won't fully understand it.

Here's the first sentence in the documentation for Java's Comparable interface: "This interface imposes a total ordering on the objects of each class that implements it."

This assumes people know what a total ordering is. Total ordering is an abstract mathematical concept, not really more or less abstract than a monad. Clearly then, people don't have problems grasping abstract concepts. They just learn the definition and possibly bunch of examples and they're done.

I think the real divide happens because people in programming praxis are simply skeptical to the claim that monads are a useful abstract concept to learn and use in programming. Many years ago, some of them probably thought they don't need to know what a total ordering is.

I don't think anything can be done with the skepticism other than either take the claim at a face value, and accept that monads are a useful concept, or verify that claim by learning Haskell for instance.

I would question your assumption that "clean code" that you describe is really modularization and abstraction. (In particular, separating everything into small scattered pieces, which is IMHO a horrible Java habit that I have to endure now.)

I mean, both modules and abstractions should have purpose.

The purpose of modules is to "do one task well" so to speak. So if for a typical change you need to modify several of them, you're not modularizing it right.

The purpose of abstraction is to provide another "language" which lets you forget certain technical details, while clarifying the bigger picture. Again, unless this language has been designed wrong, you shouldn't have to touch the abstraction.

Addendum: Of course, there is also the classic https://gbracha.blogspot.com/2011/06/types-are-anti-modular.... (and we can consider types to be a form of abstraction), so to some extend these things go against one another.

We have actually solved a lot of problems like that through ecological and other regulations. Just from the top of my head:

- worst pesticides (DDT)

- sulfate aerosols from coal

- CFCs

- chloride based plastics

- asbestos and dust

- leaded gasoline

- heavy metals

- nuclear non-proliferation

We have also made strides in monitoring our environment.

So it might look like lots of doomsday predictions, but the reason why these didn't pan out was that humans actually put the work in to prevent that from happening.

It's hard to tell, but it can be because most maths research is published in Chinese, while these rankings are little anglocentric. Also lot of Chinese probably migrate to the US as soon as they can. Anyway, I was just pointing out that the ranking is not such a simple argument.

"It's an interesting question when you consider that in at least two university mathematics department rankings[1][2], the US holds 7 of the top 10 global spots."

It's a fallacy. US is a large country, so those talented students concentrate in fewer universities. In Europe for instance, due to language and culture barriers, talented students from Czech Republic do not very often go to Cambridge. You need to look at mean or median if you want accurate assessment.