link salad

Or, Five Things Make a Post.

The beginning of the year was fairly quiet, but things are starting to get busier again. Paradoxically, this may mean the frequency of posts here will increase, since I'm actually doing things so I have them to talk about. Or I might get hosed and disappear completely. We'll see.

I've been accumulating links I think other people might be interested in for a week or two. Here's what I've got:

Marian Churchland, who's apparently a comics artist of some note — and does demonstrably create excellent art — here describes The Crossing, an imaginary MMO she designed. It's a neat exercise in concept art, world-building and game design in six (seven?) short parts.

A sweet and beautiful three-page comic by one Emily Carroll which begins "The goddess Anu-Anulan was in love with the bright, silvery hair of Yir's daughter."

…which I found via someone else, but was then amused to discover linked off Robin Sloan's blog after finishing his novella Annabel Scheme, which I read in the Kindle edition on my phone on a couple long T rides, via a friend's recommendation. (You might remember Mr. Sloan as the author of "Mr. Penumbra's Twenty-Four-Hour Book Store", which I highly recommend.) Scheme is what happens when you cross Snow Crash with The Dresden Files, and though I was hoping for something a bit closer to the former I was still happy with what I got.

And now for something completely different, my friend Ed has an interesting blog post up on checked exceptions and proof obligations. I can't count the number of times where I've written some Java code like:

x.setNotAPrime(4);
try {
  x.factorizeNotAPrime();
}
catch (PrimeNumberException e) {
  throw new RuntimeException("the number is hard-coded non-prime; this code should never be reached", e);
}

Passing the PrimeNumberException to my caller is stupid — my caller likely doesn't care about my implementation details — but the RuntimeException is only useful when I screw up and change the 4 to a 5, and it's all boilerplate code anyway. It would even be tempting to just drop the exception on the floor — not throw a RuntimeException at all — and thereby miss the case where I change the 4 to 5. There should be a better way to express this constraint. I'd love to see Ed propose a syntax for dependent exceptions in Java. (Or I could just go finally learn Haskell. Copious spare time, &c.)

I'll leave you with this other thing I just now saw linked off Robin Sloan's blog, The Lost Books of the Odyssey, which Sloan's linked Snarkmarket blog post describes as

The Lost Books of the Odyssey manages a pretty impossible mix; somehow, it’s both mathematically precise and completely wacky. Like, you start reading it and, especially if you know its reputation (a combinatorial exploration/explosion of the classic myth, written by a computer scientist, etc.) you expect this cold, hard Borgesian puzzle-box. And the book does, in face, tickle your brain in that way, and with no word wasted in the process… but then it also surprises you with warmth, and real sadness, and a terrific storyteller’s voice all throughout. It’s one of my absolute favorites of the past few years.

I think I know what I'm reading next. šŸ™‚