Profile cover photo
Profile photo
Randall Munroe
This account is inactive.
This account is inactive.

Post has attachment
Here are some interesting charts I came across while browsing Google Ngrams (Google's database of historical word frequency based on the Google Books archive):
Add a comment...

Post has shared content
MIT continues to be pretty much the best place. Thank you! <3

If it's still up this evening or weekend, I might get a chance to see it in person.
Add a comment...

The current primary coverage has reminded me about my favorite political anecdote, told four years ago to Joel Stein by former Republican candidate Tom Tancredo:

In 2008, as now, the Ron Paul campaign attracted a pretty eccentric crowd. People would show up at campaign events in Revolutionary War getup, Guy Fawkes masks, or bikinis—and of course there was the famous Ron Paul blimp. After a debate in New Hampshire, one of Tancredo's staffers saw a guy standing around in a shark costume. "Are you a Ron Paul supporter?" asked the staffer.

"No," replied the shark. "Those people are crazy. I'm just a guy in a shark suit."
Add a comment...

Post has attachment
Add a comment...

Post has attachment
My uncle is a chess expert (rated somewhere in the neighborhood of 2350, last I heard) and I talked to him a little a few nights ago about whether you could really pin down a "last game" where a human defeated a top computer.

There have been relatively few public grandmaster vs. computer games. The last instance I could find of a human winning a game in a human/computer tournament under classical time controls was Ruslan Ponomariov's victory on the second day of the 2005 Man vs. Machine tournament in Bilbao, where Ponomariov scored a win against Deep Fritz:

This was followed a year later by Michael Adams playing a six-game match against Hydra (running on a laptop). Adams was absolutely crushed, with one loss and five draws. Although the magnitude of his loss may have been due to poor preparation, at that point interest in this sort of match faded.

This doesn't actually mean no human will ever defeat a computer again—in informal play, some probably have, and will do so again. The best computers currently have estimated ELO ratings somewhere in the neighborhood of 3150-3200, while the best humans occasionally break 2800. This suggests, based on tables of win probabilities, that a computer should win about 90% of its games against a top human.

My uncle said that if a top-rated human (with experience in anti-computer strategy, of course) played a 100-game match against a computer, he'd guess the human would probably manage 2-4 wins. He says the challenge would be for the human to avoid getting discouraged, as Adams did in 2006.

There are still areas of chess where humans are better than computers, and both humans and computers are constantly improving. If a human grandmaster, through their studies, develops a new line of moves, and springs it on a computer, the human could certainly still manage a win.

However, with the interest in Man vs. Machine matches fairly muted at this point, it's entirely possible that Ponomariov's 2005 game was the last human victory under tournament conditions.

If you're interested in game AIs, you might like this article about the development of the Overmind Starcraft bot:

Oh, and one last note: in my comic I was comparing the skill of the best algorithms currently in existence. Of course, not all games have had the same amount of R&D spent on developing algorithms for them. It's conceivable that if we'd spent 40 years intensively developing Go algorithms (as we have with chess) computers would be beating human Go champions by this point.
Add a comment...

Post has attachment
A number of people objected that was really the 999th comic, citing the absence of comic #404.

However, I have always been of the opinion that is an actual comic, if a slightly avant-garde one. I actually went out of my way to modify the 'random' button to include it, but that annoyed too many people—most of whom reasonably assumed it was a bug—and I eventually undid it.

Speaking of which, this is my new favorite comic:

I particularly like the video game.
Add a comment...

I can't believe it took me years of having an Android smartphone to think of setting the wallpaper to solid black. I immediately like it better than any background I've had.
Add a comment...

Thanks for all the nameserver suggestions! I'm reading the feedback, and it sounds like there's some confusion that it might be good to clear up. As +Kelly Buchanan observed, "it's positively surreal how many people are conflating hosting and DNS registration services here."

So, to clarify, we are looking for a new domain name registrar, not new hosting. For those not sure of the difference, here's a very rough overview: is hosted on a bunch of servers which we own (or rent) which sit at several different datacenters. This is a great system which davean, the xkcd sysadmin, has built from the ground up and fine-tuned with the sort of obsessive perfectionism usually reserved for nuclear launch protocols and Warhammer 40K. We are happy with this setup. (If anyone's looking for datacenter/CDN recommendations, we've had a particularly good experience with in NYC.)

The "" domain name, on the other hand, is registered with GoDaddy. GoDaddy handles none of the actual stuff on the website. They just (loosely speaking) maintain the master records of who owns the name "" and what servers it's associated with. (There's actually a second step there—GoDaddy doesn't keep the records of where to find It just has the records of where to find those records. But that's not important.)

So when we're trying to replace GoDaddy, we don't want to move the website to new servers. We just want to store the "" registration records with someone else.

Another clarification: a lot of people wrote in recommending registrars, but added, "I don't know if they support any of those advanced features you were talking about." Unfortunately, this is the crux of the problem—there are plenty of registrars out there, but there aren't very many that properly support IPv6 glue records and DNSSEC (this is a little weird, by the way, because both of those really should be universal at this point). DNSSEC prevents someone else from forging the records and impersonating, which would let them serve up viruses, hijack store payments, or replace xkcd strips with Garfield. IPv6 glue records needed for finding a website over IPv6, which is important because IPv6 is, as the version number indicates, 50% better than IPv4. The registrars which do offer these features either do so by support ticket (which means unpredictable delays in fixing problems) or are a little too high-priced for our fairly large number of domains.

A note to more technical readers: quite a few people wrote in to say IPv6 and DNSSEC are things we run on our own nameservers. It's true that IPv6 AAAA records go on DNS servers, but IPv6 glue records are added to the TLD nameservers by the registrar so people can find the DNS servers. As for DNSSEC, running it from your own nameservers kind of defeats the purpose. DNSSEC is designed to prevent site hijacking by providing certificates that prove that the nameserver is not being impersonated. If the nameserver is providing its own security credentials, when someone impersonates the nameserver to hijack your site, they'll simply serve up their own certificate guaranteeing themselves.

Anyway, all that said, thank you for all the suggestions, many of which were quite helpful! davean is still sifting through the options, but I will definitely let you know what we end up doing, hopefully saving some of you some time and effort in the future.
Add a comment... is registered with GoDaddy. This is an artifact of my registering my own domains nearly ten years ago, back when I was completely new to making websites.

I've always been a little uneasy about having all my domains with them, since they've got a long history of screwing over domain owners, but never got around to doing anything about it. A little while back, as the SOPA thing blew up, I poked davean, the xkcd sysadmin, about whether it was time to make switching to someone more geek-friendly a priority.

He's also wanted to switch away from GoDaddy for years (and recently met with the reddit folks to chat about SOPA stuff). He's periodically done surveys of the alternatives, but—strange as it sounds—he's actually had trouble finding an affordable registrar with the feature set we needed. In particular, he said he had trouble finding any that support IPv6 Glue and DNSSEC via a control system that doesn't rely on filing and waiting on support tickets, which he says (and I quote) "freaks me out" as a means of handling registrar stuff (he's very much an style of administrator). The ones that did offer those features tended to be a little too high-priced for our large number of domains.

We've had a number of alternatives recommended in the past week or two, though none have quite satisfied davean's criteria. If you know of any registrars that might work for us, you can email your recommendation to, and we'll take a look.

We're being cautious about how we handle this switch, since GoDaddy has seemingly been obstructing transfers in a way that can leave the sites trapped in limbo. But don't worry—it's in the works!
Add a comment...

Oops! I put this up the day after my last post, while I was on my way out the door, and only just went back and saw that it never posted—I'd limited it to just me. Here's the (month late) post.

I'm sad to see Community in limbo. I really enjoy that show.

Anyway, the answer to that puzzle! I'd totally forgotten that I shared yesterday's problem on my blog back in 2010 when I first heard it, but for those who didn't see it then, here's one possible correct answer (plus a bonus puzzle):

Call the number you saw "x". Use the logistic function to calculate p(x)=1/(1+e^-x). Choose a random real number between 0 and 1. If it's lower than p(x), guess "lower". Otherwise, guess "higher".

In other words, guess "lower" with probability p(x), and "higher" with probability 1-p(x).

This solution works because for any pair of numbers, your probability of switching is higher (if sometimes only slightly) for the lower of the two. There's no need to use the logistic function specifically—any monotonically increasing function with outputs between 0 and 1 over all real numbers will work.

To make up for the duplicate, here's a puzzle I got from Peter Winkler's excellent book, Mathematical Puzzles: A Connoisseur's Collection.

You have a rectangular chocolate bar marked into m × n squares, and you wish to break up the bar into its constituent squares. At each step, you may pick up one piece and break it along any of its marked vertical or horizontal lines. Prove that every method finishes in the same number of steps.

From the author's comments:

This ridiculously easy puzzle has been known to stump some very high-powered mathematicians for as much as a full day, until the light finally dawns amid groans and beatings of heads against walls.

Risking accusations of sadism, I omit the solution.

Although it may garner that same accusation, I will do so as well. (I'm sure someone in the comments will be kinder.)
Add a comment...
Wait while more posts are being loaded