Skip to main content


This is an Ansible playbook for provisioning a CentOS server with an SSL-enabled WordPress installation. The original motivation was to be able to quickly set up websites for friends and associates in the spirit of Brianna Laugher’s “Playing Sysadmin for my Activist Mates”. Feedback, testing, and pull requests are all very welcome.


Homebrew is an OS X package manager primarily focused on installing command-line tools, but you can import external collections of package formulae called “taps”. I forked Eric Davis’ tap of Emacs packages and expanded it, and I now use it instead of package.el and MELPA. It still doesn’t have as many packages as MELPA does, but you can help fix that!

Not Svbtle

I spent three years in the Philosophy Department at UCSB, and used my Svbtle blog to write about the highs and lows of academic philosophy, on such subjects as racism, sexism, ableism, and that famous law professor we all know who sends threats of legal action to people who make fun of him online.


If you use Emacs, you’re a big ’ol nerd. But you can still pretend to be cool by using emoji like the teens and moms do. All it takes is company-mode and company-emoji.el. Install them both (using MELPA or Homebrew or manually), then add something like this to your emacs.el:

(require 'company-emoji)
(add-to-list 'company-backends 'company-emoji)

Then B💥💥M.

UCSB Philosophy

The University of California, Santa Barbara has a Philosophy department, and the Philosophy department has a website. In 2014 I rewrote the website from the ground up (twice!), making it modern, responsive, and accessible.


libgen is a Node.js wrapper for the Library Genesis API, with search added on top of it. Install it in the root folder of your project with npm install libgen, then require it where it’s needed:

var libgen = require('libgen');

Your application then has access to search, random texts, and other methods.

How to Add Needless Complexity to Your Life

I used Apple Mail forever until recently, when my Exchange account starting causing it to blow itself up. Instead of installing Thunderbird and moving on with my life, I decided it was a good idea to start being a Serious Email User, and so I installed the Serious Email Client mutt. But since this is a piece of Serious Software, there wasn’t any easy-to-find, good documentation focused on actually sending and receiving email as opposed to Installing and Configuring mutt. (Even the hard-to-find ones didn’t go in-depth enough, and weren’t written for OS X.) So this my attempt to get everything necessary—and nothing more—written down in one place.

I remembered to post this on . See all the posts.

The Library Genesis API

Library Genesis has an API, but the only documentation is a forum thread in Russian. So this is an English-language guide to using the LibGen API.

(I don’t know Russian, and had to read the original thread using Google Translate, so corrections and additions are very welcome!)

I remembered to post this on . See all the posts.

Twitter bots

I’ve made enough Twitter bots now that I guess it’s something I can link to here. Follow them, or don’t, or follow just the good ones? (Are there any good ones?)


Baruffio is a blog for people who take silly things way too seriously. It’s where you can read ludicrously in-depth analyses of a single spell. It’s where the only argument against a conspiracy theory is that it’s not consistent. It’s where we’re still talking about Harry Potter, after all these years.


If you’re a scumbag analytic philosopher like me then this might actually come in handy, like when your “friend” suggests that chairs are ontologically innocent.

Cultural Appropriation at Lucidity

UPDATE (1 August 2013): Jonah Haas has published a reply on the Lucidity blog

Santa Barbara-based Lucidity Festival has a problem with cultural appropriation. Unfortunately, the organizers don’t seem to have a firm grasp on what ‘cultural appropriation’ means, and so they don’t see what the big deal is or why they should make changes to their festival.


Reading.js is a crummy bit of CSS and JavaScript that’s supposed to make it easier to read long documents online. (Like this one!)

Include two lines in the <head> of a plain HTML file—the kind produced by pandoc or by most Markdown-to-HTML converters—and gain nifty features like keyboard shortcuts, section folding, and color scheme switching:

<link rel="stylesheet" href="" />
<script type="text/javascript" src=""></script>

Students for Justice in Palestine at UC Berkeley

The Berkeley chapter of Students for Justice in Palestine is “a group of students, faculty, and community members working together at the University of California, Berkeley, in solidarity with the struggle of the indigenous Palestinian people against apartheid and occupation.”

In July of 2012, I redesigned their website,, making it more accessible (especially for mobile devices) and more maintainable.

Fountain CLM

Codeless Language Modules (CLMs) are plugins for TextWrangler and BBEdit that add syntax highlighting, code folding, and other capabilities for languages not natively supported by these programs.

Fountain is a plain-text syntax for writing screenplays. (The Fountain syntax is similar to that of Markdown, a general-purpose syntax.) Fountain files are designed to be very readable, but they can be easily converted to other formats (like PDF and FDX) using Fountain-compatible applications.

Modern Philosophy in plain text

Modern Philosophy is a free textbook created by Walter Ott. It combines public-domain primary sources with supplementary material and study questions. Everything not in the public domain is licensed under CC BY-NC-SA 3.0.

This modified version of the text is written in Markdown. Markdown is a plain-text syntax that allows for easy conversion to other file formats. Using pandoc, Modern Philosophy can be easily converted to HTML, PDF, EPUB, and many other formats.

This version of Modern Philosophy is kept in a public repository on GitHub.


A hip new version of Judith Jarvis Thomson’s violinist thought experiment. Maybe a little more realistic. But probably no more convincing.

Mr. Smith Goes to the Hospital

A super sad story about Bernard Williams and utilitarianism. The moral is that you really just shouldn’t bother visiting your friend in the hospital.