The Is-Ought Distinction

As a topic, the is-ought (or fact-value) distinction has been beaten to death. It is so straightforward that it is surprising to see a very intelligent person like Sam Harris completely misunderstand it.

First, let’s go over the is-ought distinction. Famously pointed out by Hume, the idea is that no set of ‘is’ statements can lead to an ‘ought’.

For example:

The person is dying.
This medicine on the counter can save her.
-> the person ought to take the medicine

This simply doesn’t follow unless you believe the person ‘ought’ to live.

Now, to show that I don’t misunderstand Sam, I’m going to steelman his position as is done in the rationalist community.

We start from a naturalist claim. Consciousness is a natural phenomenon that each of us experiences and cannot really ignore. Once we acknowledge that consciousness exists and that we are conscious beings, we must acknowledge the reality that we are programmed to avoid suffering. To illustrate this point, Sam will note that we will pull our hand off a fire. In other words, consciousness is the proximate cause of human behaviour (as opposed to the root cause, which is the big bang or whatever happened at the beginning of the universe). That cause works in predictable ways that science can study. Therefore, we can posit that the subject of a science of morality is to figure out how to achieve the types of goals that are built into the structure of consciousness in the most effective way.

The only axiom needed is that navigating away from the worst misery and suffering is a good place to start such a science.

Sam compares this field to the study of medicine, which most acknowledge is a science. The goal of medicine is to figure out what substances will cause a human to live a healthier life. So medicine generally concerns itself with efficacy of taking pain away from living things.

The only axiom underpinning medicine is that it is worthwhile to study how to keep living things, specifically human beings, healthy.

Therefore, there is nothing more special about the science of morality than the science of medicine.

Now, I will show you why Sam is wrong. What Sam seems to miss is that the ‘ought’ itself is the moral claim and is not part of the science. Simply put, medicine does not tell you that you ‘ought’ to give the dying man this pill that will save him. It only tells you that doing so ‘will’ save his life. This explains why we need the hippocratic oath in addition to the study of medicine. It also explains how Nazi doctors, who performed extremely immoral scientific studies on people, were in fact practicing a form of science. If Sam wants to study what will cause the greatest well being in conscious minds, that’s fine. There is nothing that his science will compel us to do, until we bring our values to the table.

For instance, if the person in the original syllogism who was dying was a ‘bad’ person, we arguably ought not to give her the medicine. However, the scientific fact that medicine would save her life remains. Or suppose the person is really old and wants to die, she might choose not to take the medicine. Again the scientific fact about the medicine saving her life remains. The same is true of Sam’s science of morality. It will tell you what things maximize well being without telling you what to do about them. It might be true that acting in a way that causes humanity to suffer will indeed decrease the general well being of conscious agents (indeed this seems almost tautological) and is against the desire of each agent. However, it does make a rational agent compelled to act one way or another. For instance, we can easily imagine a situation where one conscious agent wants to hurt another, because they are a psychopathic serial killer. We can imagine putting the psychopathic serial killer on drugs that will cause them to stop wanting to kill the victim. This will add to the well being of the victim and, if the drugs are really good, they might also add to the well being of the killer. However, during that intervention, forcing the drugs down the throat of the killer, will certainly add to the suffering of the killer, who wants nothing more than to strangle his victim. I am sure what the moral answer should be, but the moral science will permit me no such claims. It will only be able to measure all of the well being of all the agents and tell me how all the agents respond to different treatments.

Sam might be right, that we generally understand that the goal of medicine is helping people lead healthier lives. However, that doesn’t acknowledge where the science is a science and where it is just the overwhelming social consensus of what to do with the knowledge. He can even claim that such a distinction is not useful in medicine. although the entire field of bioethics would seem to discredit such a claim. It is also true, that any study of morality must rely on a solid foundation of facts. Those facts might belong to the field of science of morality, which will tell you the consequences of actions on conscious beings. You cannot make an informed moral decision without the facts. So the facts are a necessary, but insufficient condition for moral claims.

If Sam were right, then a science of Sadism would compel me to be a sadist. Yet, we might want to study what causes suffering and how to cause the greatest amount. This field might spawn other useful subfields such as dentistry. The choice of the field of study is in itself a value judgement, in so far as it prioritizes time across an infinite array of fields and focuses on some particular domain. For example, we can agree that the government should sponsor basic research in astronomy, but not astrology. People can disagree with that statement in many ways, but none of those claims and statements are about facts. The facts remain, that astrology studies occult things and astronomy studies the cosmos. Choosing between these disciplines is a valid choice and a sufficiently functional society can choose to allocate its resources into either field.

There is a separate argument to have with Sam’s choice of axiom. We can imagine a drug that will give everyone the conscious feeling of well being, and yet it might be immoral to force everyone to take it.

I know that Sam is very smart and so I have tried as hard as possible to defend his position in a strong way. If anyone can help me make his case stronger, that is welcome.


Optimal Churn

There is a new approach that studies systems as organisms and classifies them as super or sub linear.

The idea is simply to plot the growth against the rate of growth. In other words at each point what will the next increase look like. For instance, cities are systems that seem to have superlinear growth. That is once they start growing they keep growing. Because more people make create more opportunities and so this positive feedback cycle makes the city grow without dying. Of course any system with uncontrollable positive feedback will go out of control (like a petri dish where eventually the bacteria grow faster than the available food source and they all die mass extinction) luckily we have some negative feedback mechanisms namely prices. So when cost of living goes up near by areas become part of the City. And thus the boundary of the City expands. Though at times, it should be noted cities experience shrinkage (which the authors of this research seem to ignore )

However companies are sublinear. That is why they die. The claim is they usually they die because as an organization gets bigger its tolerance for diversity decreases and the administrative tasks don’t scale. These combined forces cause the company to become less competitive in their industry, especially when combined with an ecological shift. That is all the advantage of being large is lost when the competition can be nimble and this is highlighted when the landscape changes.
This article talks about how scaling works.

Another system entirely ignored in these studies, which I believe is revealing are universities. They tend not to die and they tend to not grow all that much. One of the ways that they maintain a steady state is that they have a constant stream of new students who want to contribute to the institution this keeps the institution alive and relevant.

Companies are often wary of churn,  but it can be a good thing. Especially when combined with the right incentives. If young employees come in work really hard get promoted and then retire but pass on their experience to the next generation and leave. That is actually a good thing. The faster you can train employees, the less bloated your bureaucracy can become. Also an additional benefit is that you get highly motivated employees who stay highly motivated until they leave.  Furthermore, adding to the work force becomes easier since jobs are well defined and adding people happens often.

An example of this is: the classical trading job. Most people fall into tracks from this job. Rise and retire or burn out. Few would rise and become senior managers. The knowledge that spots on top are constantly being vacated motivates employees to work hard to get those spots. The commmon practice of retiring or leaving in general provides some incentive to pass along experience to the next generation. The constant flow through the system provides feedback and molds it to be efficient at training and self maintaining the flow.
In fact, one possible causal mechanism for failure to adapt to technology by the banks was that the average age of traders rose during the 80s because of several trends. There was economic uncertainty and low birth rate during the 1970s. That meant that there wasn’t a significant enough flow through the companies so instead of adapting these companies, became conservative and static.

St Petersburg Paradox:

I learned about this paradox recently through an interview question.

The paradox comes from the following game. more here at wiki:

The casino flips a coin until it gets heads. The number of tails is squared and payed to the player. How should they price this game?


Having never seen this question, I proceeded to take the expectation. That is the weighted average of the payouts. Well the answer is infinity, this can be seen intuitively from the fact that the payout grows exponentially at the same rate as the diminishing probability of the event happening.

The paradox is that no one will place huge sums of money to play this game, even though theoretically, they should – since it has an unlimited expected payoff.

The variance of this game is also infinite which stems from the fact that the payouts are finite but the expectation is infinite. E(X) = (X-E(X))^2

There are several resolutions:

A utility function approach which says we need to discount the payoffs by the utility function. In other words, the first million dollars brings me more utility then each next million. However, if this is not bounded, you can simply keep increasing the speed of payouts given any unbounded utility function.

Another approach suggests that people discount the probability of negligible events. However, lottery ticket sales undermine this argument, since those seem to be low probability events that people pay too much for. However, this counter argument neglects to mention that certain events are discounted completely if they are below a certain probability. As an example, the chance that all the air will decide to stay in one side of my tire, nobody will pay any amount of money for that event. Same goes for the law of gravity to stop applying, there is some negligible probability for that event, but no matter how large the payoff no one will by that ticket.

An experimental approach, suggests that you should pay around 10 dollars. Having played the game 2048 times.

Another approach suggests that you would need the casino to be good for an infinite sum of cash and since they aren’t no one would place that money.

A combination of utility and the previous reason, gives an answer that is close to the experimental result. Suppose you would be willing to play and suppose it takes a minute to flip a coin. You have a magic genie that has guaranteed that the coin will flip tails until you say heads after which it will be heads. How long will you play?

Most likely, you will stop after you are the richest person in the world, but that only will take an hour. After that you apparently have more money than the value of earth by three orders of magnitude. If you discount to that best case scenario, you get no paradox at all, in fact the most you would then pay is 1/4*60 = 15 dollars. If you understand, that casino can’t possibly guarantee more than a billion in winnings, that brings the value down to 29.8973529 ~ 30, which says it’s closer 7.5 dollars. If you are playing against another person you can’t expect more than a million dollar payout so you shouldn’t bet more than 1/4*20, unless you are playing against Harry Kakavas.

One last way to think about this problem. What is the expected value of the game itself. The answer to this is 1. That is the total number of flips will be 2 but you will only expect one tail. In which case, you expect 1 dollar. So perhaps you should simply pay 1 dollar because that’s how the game will play out.This is called the median value of the game and is in fact what many people bet.

The fact is, the more money you have the more valuable your time becomes, and it makes less and less sense to keep playing the game. So you will tell your genie to stop, because now that you have earned all this money you want to go out and spend it.


A response to Peter Norvig – Programing is also a Tool: Learning Programming Through Composition

I recently came across a blog posted several years ago (can’t find a date on the page)

The blog post is basically a combination of two things:

  • A straw-man argument against how programming books and skills are marketed.
  • An excellent guide on how to master programming. (not sure about the two bullets concerning language standardization efforts) 

Dr. Norvig’s main point is that programming is a skill that takes a long time to master.  (read: years)

To the extent that we ever believe marketing hype, like made from the “best stuff on earth”, the argument is strong. In other words, books like Master x in 24 hours. are obviously marketing hype. But we didn’t need Peter Norvig to tell us and if we did, it wouldn’t help. So of course, I concede that programming cannot be learned overnight.

However, much of what we call programming is simply the art of putting working blocks together to create useful tools. Programming is, in a way, more similar to Legos than it is to piano.

A child can use Lego blocks and follow a booklet to create a city. They can even create interesting variations on  that city without much experience. By over emphasizing the idea that programming is some kind of deep craft, you miss out on the fact that many projects can be completed with very limited knowledge of programming principles.

I would argue that articles that emphasize how difficult programming is actually turn away many people who could otherwise benefit from even basic knowledge of the craft. It would be like saying

If you aren’t going to build the tower of Dubai with Lego, why bother?

Instead, a few simple principles can actually make a person modestly competent at getting the job done and often little else is required. When it is, more significant resources can be marshaled.  This is the essence of Just In Time  (JIT).  JIT is a principle that has found uses in many fields of engineering and optimization in general.

So yes, Dr. Norvig, no one is going to build the next ZeroMQ overnight, by reading Learn C++ in 24 hours or in a week. But plenty of people can learn how to use ZeroMQ to build a thin service layer around  a node.js rules engine in a day using exactly those types of resources, books and tutorials. (If you don’t know what any of that meant, don’t worry. It is not important and that’s my point.)

What follows are the minimum principles you need to program.

(I’m sure I’ll refine this list)

Teach yourself programming through Composition:


(OED 1.1) The action of putting things together; formation or construction:

(OED 1.2) A thing composed of various elements

  • Programming  is composition
  • Every program is a black box with an input and  an output.
  • This is recursive, that is, every program itself is a composite of black boxes.
  • View everything in the world this way.
  • Imagine what sorts of tools you would need to get the job done
  • Find those tools
  • Combine them (glue them together using whatever means you have)
  • Fill in the missing pieces
  • Iterate.
  • When in doubt ask someone who has more experience? (or search stackoverflow it’s probably already been asked.)

That is the essence of programming as a pragmatic tool to get the job done.

There is no need to become a master programmer. If that happens along the way, and you create the next Pandas or Beautiful Soup, great!

If not, join the millions of people who have made their own and other’s lives easier by automating something.

I think the field of programming, and people in general, would benefit if the attitude toward programming was more similar to the way people approach cellphones (everyone uses them at different skill levels, to do a wide array of tasks) instead of the way people approach quantum gravity (not at all, for most people).


Object Oriented Programing and Plato


The idea of object oriented programming was new when it first came out in Smalltalk in 1972. However, any literate philosopher, would have immediately recognized it as Plato’s Forms.

Briefly, Plato believed fundamentally what we know around us truly are only the ideal forms of an object, and that real world things are actually an implementation detail on those forms. In fact, this idea is pretty powerful and allows one to reason about circles and perfect geometric objects without ever encountering such things.

Object oriented programming, says that we can model these real world interactions by exposing methods that this form would have. The implementation details are left to the developer. Which is very powerful, because on large project other developers can reason about the objects they interact with, without always reasoning about the underlying implementation.

Sometimes though the world disappoints. And those perfect circles do not end up having exactly a 2*Pi*R circumference. And that list which should have had O(1) time for poping the top, ended up being O(n). The nice thing is that developers can fix that bug and make it conform to make a more perfect object.

Why IABDB? | why it’s so daunting to write your first post.


I decided to start a blog.


  1. It’s a good way to keep track of my thoughts and solutions to problems.
  2. It always surprised me that my problems (however obscure), had already been written about.

Those two reasons made me want to share my experiences with challenging issues, whatever they are, and what I learned. This blog will allow me to formally go over those experiences but also allow me to speculate as to how to approach problems. I hope,(though I’m wary of promising) a cohesive methodology might emerge.

The blog is named IABDB. Because in some ways, I feel like It’s All Been Done Before. That is, in some form or another everything I say will have been studied by someone far more qualified than me. Yet, an important corollory, I believe is that my own experience with the problem and the random events in  my life, will sometimes lead me in a unique direction to solving and approaching the problems.

So, my goal then, is to renew it all.

nihil sub sole novum – There is nothing new under the sun – אֵין כָּל חָדָשׁ תַּחַת הַשָּׁמֶשׁ

renovo – renew – תתחדש