reitblatt's comments

reitblatt | 14 years ago | on: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

Not really. Complexity theory deals with many different forms of computation, from Turing Machines to RAM models to circuits to quantum computers. These are all particular concrete artifacts that we use to study the fundamental notion of computation itself.

Saying that complexity theory studies "man-made things" is like saying that chemistry studies man-made molecules. It's technically true, but it confuses the methodology with the object of study: studying particular chemicals vs the underlying laws governing them or particular models vs the underlying laws of computation.

reitblatt | 14 years ago | on: WikiLeaks begins publishing 5 million emails from Stratfor

"I wouldn't call someone an enemy and really mean it unless that enemy was deliberately trying to harm me or my family."

I didn't literally call them the enemy, I put it in scary quotes as a reply to the (IMO) naive sentiment of the OP that because they're "not the CIA", they're not a legitimate target of WikiLeaks.

Please ask for clarification next time before you cathartically lecture someone based on your own misunderstanding.

reitblatt | 14 years ago | on: WikiLeaks begins publishing 5 million emails from Stratfor

What in the world are you talking about? Politicians blackmailing each other for personal gain is unethical. And I'm pretty sure that "the electorate" doesn't qualify as a "governmental official".

"Is it not possible to profit by bribing/blackmailing a government official and benefit the public at the same time?"

The ethical content of an action is not determined by accidental effects. If I shoot a gun blindly into a street and accidentally save someone by shooting their attacker, that doesn't make my actions ethical. Bribing an official for information that you can then sell to the highest bidder is corruption. The intent matters.

"Please think these things through next time before you cathartically post that someone is "the enemy"."

I don't think that word means what you think it means.

reitblatt | 14 years ago | on: If you want reproducible science, the software needs to be open source

There is a difference between reproducibility and repeatability. Reproduction is an independent experiment producing commensurate results. Repetition is the same lab repeating the experiment and finding the same results. Sharing code actually reduces the independence of experiments. Worse, sharing buggy code introduces systematic errors across "independent experiments". Scientists already deal with similar issues due to a small number of vendors of various tools, but software is pretty different. Systematic measuring biases can be detected and calibrated, but software bugs rarely lend themselves to such corrections. Because science depends upon independent reproducibility and NOT repeatability, there's an argument to be made that blindly sharing code is actually detrimental to scientific reproducibility.

The real question we should be asking is whether opening and sharing these code bases will result in an increase in quality that offsets the loss of experimental independence.

reitblatt | 14 years ago | on: HyperDex: A Searchable Distributed Key-Value Store

"I'd like to see how they pull that off when a node goes down. I guess in "well-administered" data centers, nodes don't go down."

They offer f-fault tolerance. They can have f nodes go down in a single "zone" and keep chugging as long as no more nodes in the same zone go down before the master reconfigures. Note that the f faults are per-zone, not per-system, so in fact many more than f nodes can be down in a single system without a problem.

But, more importantly, you seem to be confusing partition tolerance and fault tolerance. CAP is about partition tolerance: offering "CA" in the presence of arbitrary partitions. They offer a specific form of fault tolerance: "CA" in the presence of any failure or partition that affects less than f nodes.

reitblatt | 14 years ago | on: HyperDex: A Searchable Distributed Key-Value Store

That blog is quite wrong about partition tolerance. First, the definition is just bizarre:

"Handling a crashed machine counts as partition-tolerance. (Update: I was wrong about this part."

He then goes on to give Stonebraker crap about claiming that "failures" never happen, simply because he doesn't understand the difference between failures and partitions.

Look, the point of "CAP" is this: if you assume nothing about the network, then you can not guarantee CA in the presence of ARBITRARY network partitions. It doesn't say that you can't provide CA under some or even many network partition scenarios. So, the question you should be asking is "what kinds of network partitions happen in practice?". Stonebraker's point was that network partitions are such rare and wholly catastrophic events that worrying about them pulls focus away from much more practical concerns. Hyperdex' point on partition tolerance (admittedly not clearly spelled out) is much more subtle. They offer tolerance of a specific class of partitions. To simply say they are "AP" or "CP" ignores the very important fact that they do in fact tolerate partitions and maintain the CA. This whole "CAP" pick any two is a gross over-simplification that obscures very real distinctions like this.

reitblatt | 14 years ago | on: How the Boehm Garbage Collector Works

Not if you build the GC with --enable-redirect-malloc to use with existing libraries/code bases. Which should be fine because, after all, this is a "conservative" garbage collector. Right?

reitblatt | 14 years ago | on: How the Boehm Garbage Collector Works

To be clearer: safety is no longer compositional in this system. To safely use the Boehm garbage collector, it's not sufficient that my own code doesn't use "disguised" pointers: I have to verify that my libraries don't either. That's impractical and contrary to good software engineering at best, impossible at worst.
page 1