Ambiance

You are dancing perfectly.

(This is unusual.)

There is no thought, only motion. You are exquisitely aware of each exquisite muscle you fire. You are a manifestation of the beat which is a manifestation of you. The song is a crystal in seven dimensions: frequency and amplitude are bound together with the configuration of your body into a single object extended through time. In each flash of the strobe light you are a new facet of this gem.

After an unspecifiable period of time you are again no longer the only dancer. There are many. You lock eyes with a dancer who is God. Neither God nor you falters in the dance. God’s gaze communicates the undiluted empathy of someone intimately familiar with you—not the facts about you, but the actual subjective experience of being you.

Stray thoughts

Shitting on labors of love

I write a review of every book I read. Occasionally, I dislike one of the books. This presents a distressing ethical dilemma. (Experiencing crises of conscience in response to mundane events is one of my core competencies.)

You see, I’ve heard that some authors read the Goodreads reviews of their books, and I imagine it’s not very pleasant to see a bunch of Internet dilettantes like myself denigrating something that you put your sweat and tears and heart and soul into. When I consider that an author could conceivably stumble across my review some day, I’m very torn between my desire to be authentic and my desire to never ever hurt anybody’s feelings.

(This is mainly an issue with fiction, and really doesn’t come up that often since it’s usually easy to filter out stuff I’m gonna hate before it even makes it onto my reading list. Out of the 140ish novels I’ve reviewed since 2022 I only marked three as ā€œdislikedā€. But I still worry whether I said unnecessarily harsh things in some of those!)

I’m particularly uncomfortable with how social media incentivizes extreme reviews. Popular reviews on Goodreads often take one of two tacks:

We reviewers want our reviews to be entertaining and attention-grabbing, and it’s easier to do that by hyperbole and caricature than by engaging earnestly and reasonably with the subject. But ā€œit let me write something funnyā€ isn’t really a good excuse for being mean to strangers.

Of course, when a book pushes bad ideas it’s good to push back, and if you can do so in a way that’s fun to read, all the better. But in the pursuit of being entertaining you shouldn’t lose sight of the humanity of the person you’re criticizing.

…I think it’s fine to make fun of dead authors though, they can’t be hurt any more

Don’t mistake the pursuit of truth for the pursuit of justice

I’ve complained before about a commonality between some conservative religious communities and some leftist political communities: the confidence that their beliefs are not only true, but so inarguably or obviously true that any disagreement must be a sign of moral failure, not sincere intellectual confusion. This leads, I think, to a toxic fixation on policing members’ beliefs, and a tendency to judge people first and foremost on the basis of whether they express allegiance to the correct dogma.

This fixation on beliefs can also function to conveniently distract our consciences from worrying about how we use our material resources. (And I do mean ā€œourā€; I think this is a mistake I’m particularly vulnerable to making.) Musa al-Gharbi’s work (see my review of We Have Never Been Woke) really drove this point home for me. He has an interesting anecdote on his blog about someone asking him for advice regarding the fact that she ā€œhires undocumented caregivers and pays them less than she would a citizenā€:

Ultimately, I stressed, economic decisions are not about money. They’re reflections of what people value and prioritize. … It’s a choice to prioritize one’s elite lifestyle and their family’s elite reproduction over taking care of the people who make your lifestyle possible. It’s a choice that people can make differently by adjusting their lifestyles and reallocating their resources.

When I said this to her, she replied, ā€œso I guess, what you’re saying is, I should tell my ā€˜friend’ to be more aware of her privileges and advantages.ā€ Shocked, I replied, ā€œNo. My advice is that your ā€˜friend’ should pay her workers more, and adjust other aspects of her lifestyle to make that possible if she’s going to keep relying on domestic labor… although another option also available to your ā€˜friend’ and her family is to make more radical reconsiderations of how she and her husband divide domestic responsibilities — and more fundamentally rethink their aspirations and lifestyle choices — so they can rely on less purchased domestic labor to begin with.ā€

She didn’t seem to love that answer. … What this woman seemed to be hoping for was a way that she could solve this labor issue through deeper awareness of social injustice, or by better purifying her heart and mind.

Perhaps it’s subconsciously tempting to think that the greatest moral decisions we face are about what to think, feel, or say, because adjusting those things tends to be less painful than adjusting our lifestyles. (Of course, if you feel driven by your conscience to express opinions which are severely punished by your society, then your lifestyle is at stake when deciding whether to speak your convictions. But an exaggerated view of the moral importance of beliefs is part of how such punishments, and the moral dilemmas they create for dissenters, come to exist in the first place!). Again, I think this temptation has remarkably similar manifestations on the right and the left. The kind of fundamentalist Christian communities I grew up in were extremely concerned with whether you had the correct beliefs about the Trinity but pretty chill about whether you were doing anything to help the poor. As Kierkegaard eloquently observed:

From generation to generation, while they continued the calm acquisition and possession of the things of this world, people kept on using this assurance: ā€œIf it were required of me, I would be willing to forsake everything, sacrifice everything, for the sake of Christianity.ā€ … Meanwhile, the world has seen an almost complete moral disintegration—but not one of the assurers found that it was now required of him; he merely went on giving the assurance ā€œthat if . . . . ā€¦ā€ That is, he continued to acquire, to seek, and to possess the things of this world. But he was also a hero; that it was not manifest was not his fault: If it were required . . . . . he would be perfectly willing; he gave the assurance ā€œthat if . . . . ..ā€ (Kierkegaard, Judge For Yourself, emphasis added. Note: I haven’t read that book and have no idea where I encountered this quote.)

That’s hyperbole, of course. Lots of people of all sorts of ideological persuasions do make significant sacrifices to help other people—sometimes in dramatic ways, more often by giving time and energy day after day and year after year. So my point isn’t that humans are selfish. But even when we’re being selfless we have blind spots. When particular luxuries or practices are sufficiently ubiquitous among our peers that we think of them as just elements of an ordinary life, it can be very difficult to consider giving them up. And one way to avoid thinking about it is to invest our moral energy in ideological battles instead.

None of this is to deny that beliefs are important. Beliefs can have a significant impact on our behavior. They’re just often not the most important factor. No amount of right thinking can compensate for a fundamental unwillingness to make sacrifices for the sake of others. Conversely, habits of kindness and generosity often lead individuals to behave commendably in concrete situations even when they’ve fallen for bad ideas at the theoretical level.

Parenthephilia in practice

some hackers like to work close to the metal; some of us just like to work close to the AST

(This is only for the programmers in the audience.)

There was a moment at my first job, back in the bad old days before Java even had closures, when the team was discussing various alternative JVM languages we might adopt to ease the pain. When someone floated the Lisp dialect Clojure, my boss just said: ā€œwith all those parentheses?ā€ It never had a shot.

Which was a bummer for me, because I’d been infatuated with Lisp since childhood (thanks in part to Paul Graham’s book on it). The way it allows you to construct almost any language feature you want out of a few simple building blocks makes other languages look inelegant or even gimmicky by comparison. Nevertheless, my time in corporate America gradually gave me an appreciation for the benefits of boring technology—even that most boring of technologies, the Blub Java programming language. And outside work, I was preoccupied with other things. My dreams of coding in Lisp fell by the wayside.

…until I joined a company this year that uses Clojure heavily. Now I’m unexpectedly revisiting a passion that I hadn’t given much thought to for, like, over a decade. (Brb, experiencing some existential horror about how old I am.) And finally getting to see how the technology I ideologically idolized holds up in the real world. So far—which admittedly isn’t very far, I only started this job a couple months ago—the answer is ā€œit holds up quite wellā€, and I really love working with it. Some initial thoughts:

I love immutability

Avoiding mutation is widely regarded as a good default practice, yet in most popular languages this can only be a convention, or you have to jump through extra hoops to enforce it. (I know Java has record classes now, but you’re still gonna want to generate builders when they have lots of fields.) I find it really refreshing to work in a language where all the basic data structures are immutable.

I don’t love dynamic typing

I wish some way of declaring types were more tightly integrated in the language and pervasive in the community. This is less about getting compiler guarantees, and more about pressuring developers to thoroughly document expectations. Clojure does have spec which definitely helps in this regard, but it’s not as syntactically convenient as e.g. Python type hinting.

The syntax is fine just the way it is

As a long-time fan of Python’s use of syntactically-significant indentation, I used to think Lisp could be improved by inferring some parentheses from indentation. Now I have a more visceral awareness that this would break an aspect of Lisp which I’m finding very convenient in practice: the syntactic homogeneity decreases the odds that cutting/pasting an expression from one place to another will require editing the expression.

On the other hand, once you’re using structural editing anyway, I guess the editor could just handle converting between implicit and explicit parentheses as necessary. If I were going to try to use indentation as part of a Lisp dialect’s syntax, I think the best way to do it would be just to reserve one character to mean ā€œstart a list that continues until the next form that’s indented to the same or earlier column as this characterā€. E.g., if we used the pipe character, this:

|cond (= (mod i 15) 0) |print "FizzBuzz"
      (= (mod i 3) 0) |print "Fizz"
      (= (mod i 5) 0) |print "Buzz"
      :else |print i

would be equivalent to this:

(cond (= (mod i 15) 0) (print "FizzBuzz")
      (= (mod i 3) 0) (print "Fizz")
      (= (mod i 5) 0) (print "Buzz")
      :else (print i))

This is a pretty simple transformation, so it doesn’t make it any harder to see exactly what forms the text will be parsed into, and it significantly cuts back on trailing parens.

Namespaced keywords are an interesting idea

Clojure typically just uses maps where other languages might use structs / class instances. The keys of such maps are usually ā€œkeywordsā€ (interned strings that evaluate to themselves; analogous to symbols in Ruby). These can optionally be namespaced; e.g. you can have a map like:

{:my.app/foo "abc", :your.library/foo "xyz"}

There’s syntax to make this more concise when you’ve imported the namespaces, but it still adds some verbosity and I’m undecided as to how often the risk of naming conflicts would be enough to justify that verbosity.

One nice thing is that you can tie the namespaced keywords to specs (schemas): if you define a spec for how, say, a :my.app.customer/id should be formatted, then list that key as required or optional in the specs for several other entities, it’s implicit that the values for that key in all those entities must adhere to the spec.

Babashka is cool

The JVM has infamously slow startup time, which sucks for scripts and CLI tools, and Clojure inherits this problem. Babashka supports a subset of Clojure but starts up fast. It seems to be easy to write code that works in both runtimes, at least for tasks that don’t need Java dependencies beyond what Babashka has built-in, so it’s a nice option for writing complex scripts within a Clojure codebase without having to introduce additional languages.

I like the import conventions

The style guide by bbatsov encourages you to access the namespaces your code depends on by giving each one an alias. I think this is a nice balance between clarity (which would be maximized by using fully-qualified names everywhere) and conciseness (which would be maximized by using unqualified names, as e.g. from foo import X, Y, Z enables in Python).

This is a fairly common practice in Python too, but one aspect works slightly better in Clojure. In Python you access members of a namespace using the same syntax you use to access attributes on an object: container.member. In Clojure, namespace access uses a slash like some.ns/name and that syntax isn’t used for anything else. Which means you can use short or even single-letter names as namespace aliases and they’re still fairly greppable. For example., if you alias the clojure.spec.alpha namespace as s (a convention recommended in the style guide), you can find uses of that namespace by searching for s/; even if you also have variables named s, nothing you might be doing with them would match that search.

The stack traces are just as ugly as I remember

Java’s stack traces are noisy to begin with and Clojure’s extra layers of abstraction make it worse. This wastes just a little bit of time every time I need to interpret a crash in the repl or from the logs. I should probably set up some sort of keyboard shortcut for cleaning up a stack trace from the clipboard.

Admittedly, a preoccupation with programming language features feels like kind of a 2010s thing. (The Strange Loop conference ceasing in 2023 felt symbolic to me of the industry moving on from such concerns.) Does language design even matter any more, or will AI be handling all software development within a few years anyway? (Should we be designing languages that are optimized for use by LLMs?) I have no idea. But for now I’m having fun coding in such a well-crafted language.

Reviews

the 1984 cinematic masterpiece Voyage of the Rock Aliens

relationship goals?

I watched this from a forty-five degree angle on a wrinkled and wind-blown projector screen with a significant amount of alcohol in my system, and I have to assume that’s exactly how the directors intended it to be seen. The movie opens with a guitar-shaped spacecraft and transitions to a dreamy music video of some sort of stylish biker gang showdown. Later, a fire hydrant pees on a dog. There’s a bathroom stall dance scene. Perfection.

Michael Huemer’s introductory philosophy text Knowledge, Reality, and Value

After laying out the positions on an issue, my undergrad philosophy professor liked to remind us: there are people smarter than me on both sides.

The author of this book takes a more, let’s say, self-confident tone. He tries to give all sides a fair hearing but has no compunctions in guiding you toward his own preferred view. It’s a fun and thought-provoking read, though if it’s your first encounter with analytic philosophy, remember not to assume it’s an unbiased guide to the field. (Is any book ever?)

Part of what makes the book interesting is that Huemer has some unusual views. Most strange might be his argument that you should believe in either a creator or the existence of souls; he thinks the fine-tuning argument for a creator has some weight and that postulating a multiverse is only a good response to it if ā€œpersons have immaterial soulsā€ (p. 155).

There’s a lot here I’d like to respond to or think more about, but to start with, I wrote a reply to one of his arguments about free will.

Chapter 17 is a nice resource on the question of whether it’s ethical to eat meat; Huemer gives a rapid-fire discussion (and rejection) of 17 arguments defending the practice.

Rutger Bregman’s book Moral Ambition

I remember reading a book called Don’t Waste Your Life when I was a teenager. It was written by an evangelical and opened with a story about an old man converting to Christianity and then breaking down crying about how he’d spent his life: ā€œI’ve wasted it! I’ve wasted it!ā€ (Piper, p. 12). That story stuck in my memory mainly as an illustration of how misguided fundamentalist values can be: how tragic it is that the author would view a man’s life as wasted merely because he thinks the man had incorrect beliefs about stuff that happened 2000 years ago! But still, the message that wasting your life is not only a real risk, but something that might be likely to happen by default if you don’t take action to avoid it, is a powerful one.

Moral Ambition is the book I wish my younger self had encountered instead—one that tries to inspire its reader to pay attention to the concrete problems affecting large numbers of people (and animals) today and work to solve them. I particularly appreciate Bregman’s emphasis on the motivating power of surrounding oneself with likeminded people: he speaks of moral drive as a contagion you should infect yourself with by hanging around those already carrying it; he talks approvingly of the ā€œcultsā€ activists form; he recommends his readers join ā€œmoral ambition circlesā€ consisting of 5-8 members each. This last suggestion seems potentially quite powerful; there’s something special about a small, committed group of people keeping each other accountable.

various novelty flavors of Pop-Tartsā„¢

might stockpile these

Jake Tapper and Alex Thompson’s exposĆ© Original Sin

I found this pretty shocking. I know many on the left think it’s perverse to divert any attention away from Trump’s present activities onto the Democrats’ past failures, but I think a lot of the left’s attempts to manage/guide public discourse over the past 10-15 years have backfired, and I’m not sure stop talking about real problem X because real problem Y is bigger is a winning message. Anyway, it seems pretty likely that Biden’s delay in dropping out of the race made Trump’s victory easier. It was a huge mistake that may have had enormous consequences. We can’t learn to avoid such mistakes if we don’t talk about them.

Tom Chivers’s pop math/science book Everything Is Predictable

Other than basic arithmetic, I think probability and statistics are the areas of math with the most practical relevance to the average person. They’re also incredibly confusing topics. I think it’s a bit odd in retrospect that my education invested so much time in, say, geometry and calculus, and relatively little in prob & stat.

This book is about Bayes’ theorem, a key concept in probability. Chivers covers the history around its discovery; controversies around its use in science; its use in decision theory; how it might explain many facets of how the brain works; and other things. The most interesting part to me was chapter 2, on Bayesian vs frequentist approaches in science, because I’d never really been exposed to the frequentist perspective before and didn’t understand why there was a debate. Chivers gives a recommendation in that chapter for Daniel Lakens’s course ā€œImproving your statistical inferencesā€, which I might try to go through someday.

I found myself wishing for clearer explanations at some points, though the fault might lie with me not being sufficiently mentally engaged while reading it.

the 2025 Superman movie

Disney had mostly killed my interest in superhero movies through oversupply, but I was curious to see what Gunn would do to try to turn the DCU around. I think he nailed it. There’s nothing groundbreaking about this movie and it probably doesn’t have much rewatch value; it’s just fun and uplifting, and that’s all it needed to be. (Superman saving a squirrel probably clinched it for me.)

Brandon Sanderson’s The Well of Ascension (Mistborn #2)

I guess I’m one of those people who’s into Brandon Sanderson now. After I finished listening to The Way of Kings last month I was eager to read the rest of the series, but it seems like the standard advice is to read the Mistborn trilogy first. I had already read the first one several years ago, so I jumped to the second one.

Sometimes I struggle to get through fiction where characters make certain kinds of embarrassing or self-destructive mistakes. I had to pause Well of Ascension from time to time on that account, but Sanderson always ends up resolving the tension more quickly than I expected, keeping it a fundamentally light read. Anyway, it’s very enjoyable. And I loved the twist: that some malevolent force has been—apparently magically—changing the recorded text of prophecies in order to manipulate people.

The Hero of Ages (Mistborn #3)

A man is what he has passion about… if you give up what you want most for what you think you should want more, you’ll just end up miserable.

Some parts of this concluding volume irked me:

That said, it’s still fun and provides a very satisfying resolution. I continue to enjoy Sanderson’s fundamentally optimistic tone; I like that he has Spook, Yomen, and Elend all ultimately make the right choices.

The Oxford Handbook of Ethical Theory

I’m pretty sold on moral realism and consequentialism, but I also don’t feel like I’ve read as much in defense of other views as I have about those, so this was an attempt to broaden my knowledge. There was some interesting stuff, but also a lot of boring stuff and I didn’t often feel like it was really helping me get closer to truth.

My notes on each chapter are available here. A few books that were mentioned that I’d like to read: T. M. Scanlon’s Being Realistic about Reasons, Jonathan Dancy’s Ethics without Principles on particularism, and Nel Noddings’s Starting At Home on ethics of care.

the 1981 comedy film Polyester

ODORAMA!

Seattle’s Grand Illusion Cinema is trying to make the best of a bad situation—the termination of its lease in U-District—by hosting screenings at various spots around town. One of their ā€œSummer Campā€ selections was the exceedingly campy Polyester, remarkable for the scratch-and-sniff cards that accompanied the film and which, to my astonishment, Grand Illusion was still able to procure 44 years after the initial release. (It is unclear whether these were somehow newly-manufactured or if the cards have been in storage somewhere—Wikipedia mentions them being recreated for a 2011 screening. I like to imagine these cards are what all the other boxes are filled with in that warehouse holding the Ark of the Covenant.)

I could barely smell anything. I’m cursed and/or blessed with an extremely sub-par olfactory sense anyway, so my opinion doesn’t mean much, but the consensus among my friends seemed to be that their cards possessed fairly limited aromatic potency as well. Regardless, the movie is hilarious. But also sad: even with all the slapstick trappings, it’s rough to watch good-hearted Francine be relentlessly belittled, abused, and exploited by almost everyone around her.

Sierra Greer’s novel Annie Bot

Annie is a sex-bot with a cruel owner. This is a novel about domestic abuse and emotional manipulation, so be ready to spend a lot of time being frustrated that none of the characters are pointing out how fucked-up what’s happening is.

Since the story is told from Annie’s perspective, we take for granted that she’s conscious and has real feelings. It seems like there’s a decent chance that androids as sophisticated as Annie will exist in the real world within our lifetimes, and I doubt society will be so quick to attribute genuine consciousness to them. This raises a couple questions:

Here’s another question: is Doug’s abuse of Annie also essentially child abuse? Annie physically resembles an adult woman, and she’s preloaded with adult skills and knowledge in some areas. But psychologically she seems to start out much more like a child or teenager.

Arthur C. Clarke’s supposed classic Rendezvous with Rama

…he had a suspicion of plausible answers; they were so often wrong.

I made a few attempts at having ChatGPT draw the interior of Rama for me. It completely fucking failed, but here’s one of the outputs anyway.

Big Dumb Object is one of my favorite sci-fi tropes. I do want the object to eventually be explained, though. This novel’s plot is little more than a prologue, and the book certainly can’t stand on the strength of its prose or characters. Imagining its setting, with a ā€œCylindrical Seaā€ and unfathomable staircases and vast empty plains, can inspire a few flickers of awe, but if you want to feel dazzled by scale I suggest Ringworld instead.

I do like the captain’s rationale for intervening to stop the destruction of Rama: ā€œThe human race has to live with its conscience…. survival is not everything.ā€

Nigel Williams’s novel They Came from SW19

He has been known to hold boys upside down on the rugby pitch and swat the ball with their heads. He regards brain-damage as character-forming, which, for someone of his level of intelligence, is an entirely consistent position. (p. 88)

This is an out-of-print book from 1993 that only a few hundred people have shelved on Goodreads. I paid $7 for a used copy and the paperback I received appears to have been signed by the author. My point is that there’s every indication this title had been consigned to the mists of history, so I’m really not sure how it came to the attention of the friend who recommended it to me. And I’m not going to tell you it’s a lost classic that you have to rush out and buy, but I did find it pretty entertaining. It’s about a teen being raised in a quirky cult that styles itself the ā€œFirst Church of Christ the Spiritualistā€. The story is mostly farce, with some sobering moments. The ending takes a memorably dark turn. Having been let down by so many people in his life, the protagonist concludes the book with this promise to himself: ā€œFrom now on I’ll never let anyone under my guard. No one gets close to me. Not ever.ā€

After his father passes away the protagonist expresses a wistfulness for their routine interactions which—having lost my own father several years ago—resonated with me:

I wanted to talk to him so much. I wanted him to say the things he always used to say to me. Not big, important things but just those ordinary remarks… (p. 55)

Posted August 23, 2025 by Jacob Williams.
Feedback is very welcome: jacob@brokensandals.net.