Moral truth in an empty cosmos

Ross Douthat’s recent writings on atheism and morality are excellent — almost maddeningly so, in that they are far more thoughtful than similar attempts by prominent atheists. Douthat, a Catholic, hits a number of great points, but I’d like to focus on his exposure of one of contemporary atheism’s many weaknesses: its refusal to grapple with the inherent tension between atheistic materialism and moral realism.

(I don’t think that this is a failing of atheism per se, but of specific atheisms with outsize influence on popular discourse — most notably the New Atheism espoused by Richard Dawkins, Sam Harris, et al.)

As an atheist myself, the paradox of moral truth in an empty cosmos is so on-its-face I can hardly believe we’re debating it at all. The real debate, the truly necessary conversation to be had, lies in exploring this tension and its implications in an increasingly secular liberal world. Such a conversation can only occur once the premise — that theism follows from moral realism; that moral skepticism follows from atheism — is accepted.

Now, formulating this premise in the way that I have implies a level of certitude I’m hesitant to claim. It’s one thing to say that I, an atheist, am a moral skeptic. It’s much bolder to say that moral skepticism necessarily follows from atheism. However, I think I can make a convincing argument.

While I am not a theologian or philosopher, I imagine most theists would agree that their epistemological approach to God and religion differs at least somewhat from their approach to other areas of knowledge. (Please correct me if I’m mistaken.) This is how you get evolutionary biologists who believe in Creation, and free-market capitalists with a Catholic concern for social justice. By contrast, most atheists are atheists because they are unwilling to make the leap of faith necessary to justify religious belief. Their epistemological approach is the same for God as it is for physics, biology, or anything else — including, I should think, morality.

But before we get to that, let’s back up: what is the atheistic approach to epistemology? The Mahers and Gervaises of the world would have you believe it’s simply “science” or “reason” or (my least favorite) “rationality,” with apparent disregard for the actual, seperate concepts those terms denote. Dawkins’s atheist advocacy group is named the “Richard Dawkins Foundation for Reason and Science,” the blantant implication being that religion precludes an appreciation for those faculties. The simple fact that both Ayn Rand-style libertarianism and the leftist egalitarianism of many (most?) New Atheists claim “reason” as the bedrock of their ideologies is compelling evidence that reason alone is insufficient as a means toward truth. Good reasoning from bad premises leads to bad conclusions. It is especially baffling that Dawkins, who by all accounts has made enormous contributions to evolutionary science, does such a poor job of making this point.

So if not “reason,” then what? I won’t pretend to have the definitive answer, but I’d argue for a form of constructivist epistemology. I’m thinking in particular of model-dependent realism, a view of scientific inquiry introduced by physicists Stephen Hawking and Leonard Mlodinow in their 2010 book, The Grand Design. Naturally, physics provides the best example of how model-dependent realism works and why it’s necessary. Physicists have long struggled to formulate a “theory of everything”: a single model of the universe that unifies the physics of the small, quantum mechanics, with the physics of the large, general relativity. Both models are elegant, coherent, and enable scientists to make extremely accurate predictions about the physical world. The problem is that they contradict one another — both cannot be true. A unifying model of physics, if one exists, not only needs to be elegant, but it must match (and presumably exceed) the existing models in explanatory and predictive power, the same way relativity upended Newtonian mechanics a century ago. That even the highly empiricism-driven field of physics is not immune to violent upheaval illustrates the problem with realism. If an objective reality does exist, our concept of reality is limited by our ability to model it:

There is no picture- or theory-independent concept of reality. Instead we adopt a view that we call model-dependent realism: the idea that a physical theory or world picture is a model (generally of a mathematical nature) and a set of rules that connect the elements of the model to observations. This provides a framework with which to interpret modern science. […]

A model is a good model if it:

  1. Is elegant
  2. Contains few arbitrary or adjustable elements
  3. Agrees with and explains all existing observations
  4. Makes detailed predictions about future observations that can disprove or falsify the model if they are not borne out.

This core principle can be applied more generally to truth in other domains. Consider economics. Few would argue that any economics theory represents an objective truth about reality. Captialism is great, but it’s not a law of the universe. Because economics makes significant assumptions about human behavior, which violates criterion two above, it’s not a good model of reality in the strictest sense. However, we can judge the “truth” of an economics model by its ability to explain past events and, crucially, its ability to make future predictions. This points to how a weaker form of model-dependent realism can be used outside the context of the physical sciences.

Now let’s turn to morality. Is it possible to contruct of model of morality that meets these four criteria? I say no. To my thinking, no set of moral laws can possibly be elegant and consistent (criteria 1, 2) while also being satisfactorily explanatory (3) or predictive (4). But even if you could contruct such a model, the larger problem is that it’s impossible to explain or predict anything about morality without first deciding what the aim of morality actually is. Is it to maximize happiness across as many people as possible? Is it to maximize happiness for the self? Is it to further the aims of your social ingroup? Is it to acheive oneness with God? Good luck searching for the solution in the bottom of your beaker. It seems to me that the only way to answer this question with any definitiveness is to assert a higher purpose, a grander scheme, a reality beyond our own. In other words, you must appeal to the authority of God.

If you’re unwilling to do that, the inescapable conclusion is that morals are a human invention: socially-constructed concepts that help us cope with our animal existence. There is truth to morality only to the extent that morality is useful. (Which isn’t nothing — morality is very useful!)

Does this mean atheists have nothing to say about morality? Absolutely not. Even as moral skeptics, we can preach the gospels of love, empathy, and freedom. We can still aim to improve the human condition. But it does mean we must be more humble in our moral assertions.


What I’ve just made (or at least attempted) is an intellectual argument for moral skepticism from the point of view of an atheist. But in fact, I suspect there are far fewer moral skeptics than there are atheists. Furthermore, nobody who calls themselves a moral skeptic truly behaves that way in the course of their lives. We are all moral realists in practice.

That’s because our moral behavior isn’t determined intellectually. There is an enormous disconnect between moral reasoning and the actual moral decisions we make every single moment of our lives. Moral psychologist Jonathan Haidt’s work on this subject is fascinating and thoroughly convincing. In his book The Righteous Mind, he explains how we process new ideas and information. Spoiler alert: we’re really bad at moral reasoning. “Intuitions come first, strategic reasoning second.” Haidt also explores the social and evolutionary basis of our moral values, and how interactions with others shape them over time.

I won’t go into detail here, as it exceeds the scope of this post. (I do encourage you to read The Righteous Mind. I honestly can’t recommend it enough.) But I bring this up because any moral system must reckon with the foundations of our morality and why and how we apply them in actual practice, not merely with carefully constructed arguments in the form of essays and opinion columns.

So when contemporary atheism (hopefully) moves beyond strident moral realism, it should be with a greater respect not only for the limits of our moral knowledge, but for the origins of our moral convictions.

WordPress finally adds native Markdown support

Actually, it’s only WordPress.com blogs that have been Markdown-enabled, though it looks like the feature will soon be available to self-hosted WordPress sites via the official Jetpack plugin.

Third-party Markdown plugins have existed for years, but now that Markdown will soon become a (semi-) native feature, it will reach a broader audience than ever before. This is great news. Markdown is beloved by the tech-oriented crowd that forms its base today, but non-techies should have reason to love it even more. I think it’s much easier to pick up than HTML, and harder to screw up.

This also makes me think it might be a good idea to package jQuery.sidenotes, which deals with Markdown content, as a WordPress plugin.

Apple can’t lower prices until it starts making more products, more quickly

As is often the case with Business Insider, if you look past the sensational headline, there’s some smart analysis. Henry Blodget wrote a piece today about how Apple’s current pricing strategy is hurting its growth in emerging markets.

The simple answer is NOT for Apple to make low-end gadgets that it considers crappy. It is for Apple to use its phenomenal profitability as a competitive weapon. Specifically, the answer is for Apple to sell some of its gadgets — not the latest, greatest ones, but some — at prices that are highly competitive with local alternatives.

Basically, Apple should sacrifice some of its profit share in exchange for more market share. I’ve been a supporter of this argument for a while now.

The thought occurred to me recently that Apple’s inability and/or unwillingness to target lower price points more aggressively is directly related to the pace of its manufacturing output, which — as Apple executives are first to admit — has had trouble meeting current demand. (Hence this week’s soft release of the Retina iPad mini.) The thought goes, if Apple can barely make enough products to satisfy current demand, then lowering prices would accomplish nothing. Increased demand is only beneficial if they have the manufacturing capacity to meet it.

So, if Apple wants to be more aggressive on pricing, it can’t do that without first ramping up its supply chain. This is just a theory, and it obviously doesn’t preclude Apple from doing things like lowering prices regionally, as Blodget suggests. But it’s something to keep in mind.

Transform Markdown footnotes into superpowered sidenotes with jQuery.sidenotes

Last night I pushed the initial release of jQuery.sidenotes to GitHub.

jQuery.sidenotes is a new plugin that transforms Markdown-generated footnotes into sidenotes. It works by cloning the original footnote element into a new aside element and injecting it into the DOM near its reference in the text. You can then toggle between footnotes and sidenotes. This makes it perfect for responsive designs.

Visit the project page for full details.

This is my first ever open source project. As someone who relies heavily on open source projects to do work (and play!) every single day, it’s nice to be able to give back to the community even in this smallest of ways. Hopefully someone will find this plugin useful.

In addition to being my first open source project, jQuery.sidenotes is the evolution of my very first programming project ever. Back in the summer of 2011, I hacked together a JavaScript “plugin” called Footnotes-to-Sidenotes.js. Although it went about the task in a completely different way, its intended purpose was largely the same: take some footnotes and turn them into sidenotes.

I went on to rewrite the script several times in the following two and a half years, each time improving it to the best of my abilities at that moment. I’ve managed to save some of the older versions (though not all of them, since they weren’t under source control). It’s nice to be able to look back and notice the glaring, downright embarrassing mistakes I made at each step along the way. To me it proves how much I’ve learned since I first started programming. I used to suck a lot, and now I suck much less.

How to remove the boilerplate from Wintersmith blog posts

Wintersmith is a really great static site generator for Node.js. I use it to build this site. It’s similar in spirit to Jekyll, the Ruby-based generator that powers GitHub Pages. One of the biggest reasons why Jekyll is so popular is that it’s very simple to set up out of the box without imposing too many constraints. You can modify it to fit your needs. But what I like about Wintersmith is that, if you can believe it, it’s even more amenable to hacking. Although it requires a bit more set-up than Jekyll, what you get in return is increased flexibility.

One of the things I’ve worked to do in my Wintersmith set-up is reduce the amount of boilerplate required to write blog posts. By default, a Wintersmith Markdown page looks like this:

---
title: Removing the boilerplate from Wintersmith blog posts
date: 8 November 2013 EST
template: article.jade
---

[Wintersmith](http://wintersmith.io) is a really great static site generator for Node.js...

Not bad… except I don’t want to have to put article.jade at the top of every one of my posts. But by default, Wintersmith doesn’t let you omit that piece of information. If you do, the page simply won’t render.

Similarly, if I want to customize the permalink for a blog post, I have two options: add an additional filename metadata property to the top of every post, or set a global default filenameTemplate in the site’s config. The former option is obviously out of the question, and the latter isn’t quite right for me either, since I don’t necessarily want all my pages to conform to the same permalink structure as my blog posts.

You might think this is a flaw of Wintersmith, but it’s really more a consequence of its get-out-of-your-way philosophy.

Indeed, extending the Wintersmith core to support this set-up is fairly simple. We can create a custom ContentPlugin, like so:

class BlogpostPage extends env.plugins.MarkdownPage
  # Set default template
  getTemplate: ->
    @metadata.template or env.config.blog.template or super()

  # Set default filename template
  getFilenameTemplate: ->
    @metadata.filenameTemplate or env.config.blog.filenameTemplate or super()

# Register the plugin
prefix = if env.config.blog.postsDir then env.config.blog.postsDir + '/' else ''
env.registerContentPlugin 'posts', prefix + '**/*.*(markdown|mkd|md)', BlogpostPage

The new class BlogpostPage is a subclass of MarkdownPage, which means it takes advantage of all Wintersmith’s built in functionality for Markdown pages. It overrides two methods, getTemplate and getFilenameTemplate, to add support for new options in the Wintersmith configuration. So, if I add this section to config.json

{
  "blog": {
    "postsDir": "articles",
    "template": "article.jade",
    "filenameTemplate": "/:year/:month/:day/:file/index.html"
  }
}

…every Markdown post within my articles directory will use the template article.jade and a permalink based on its date and filename. Now I can write posts like this:

---
title: Removing the boilerplate from Wintersmith blog posts
date: 8 November 2013 EST
---

[Wintersmith](http://wintersmith.io) is a really great static site generator for Node.js...

It’s a small change, but a practical one in my opinion.

If you’re curious, you can check see the full source at the site repo.


A quick story related to this post: until last week, the above snippets wouldn’t have worked in Wintersmith, because the methods getFilename and getFilenameTemplate didn’t exist. To make this work, I forked the project on GitHub, made the necessary patches, and submitted a pull request. A few days later, the changes were merged into the main repository.

I mention this rather mundane detail because this was my first ever pull request. Though it was a small contribution, I found the process to be extremely satisfying, like a rite of passage on my way to becoming a real programmer. I look forward to making more contributions to the open source community whenever I can.