When people perceive legitimate channels (courts, elections, peaceful protest) as closed off or ineffective, and when state violence continues without accountability, some portion of a movement tends to radicalize. The basic lesson from history here, and risk to national security, is that if the U.S. immigration authorities crack down further on dissent, and kill additional protesters, and the legal forms of grievance prove ineffective in the face of impunity for crimes committed against the American public, dissent might drive radicalization, and devolve from protests to become an insurgency with guerrilla tactics of the kind seen in insurgencies from Northern Ireland to Vietnam. This is not a prediction; I am not calling for violence; it's a risk assessment.

YouTube embeds now work, check it out:

I also added custom url previews for links to bsky.app, so they look more like quoted posts and less like article previews.

I don't understand how anyone can watch how blatantly Grok is manipulated to answer the way ownership desires it to and then act like the other LLM chatbots couldn't possibly be similarly but less obviously compromised to produce responses in whatever way corporate interests and priorities dictate.

I will boycott every single company, organization, or individual that takes ICE money.

My primary critique of Abundance echoes this one from Sandeep Vaheesan: essentially, Democratic industrial policy is stuck in a rut. Democrats do not believe in the public production of goods. Instead, we give private producers of goods public dollars and pray they won't raise prices, because Democrats are also against price controls. From postsecondary education to healthcare and housing, it is painfully obvious to any American suffering for want of housing, healthcare, and education — and unwilling, or unable to pay additional rents in the form of interest on top of inflated prices — that this does not work. Or, to be more accurate: it delivers temporary benefits before making everything more expensive. Private interests in capitalism are profit seeking: if you give them money, they are required by the logic of the system to try to get more of it. The cronyism decried by libertarians and neoliberals is not an aberration, it is a competitive adaptive behavior inherent to the exigencies of the economic system itself.

This service is now... tertulia.social!

tertulia: f. Reunión de personas que se juntan habitualmente para conversar sobre algún tema.

It's getting late and I'm out of steam, but accomplishments: domain name ✅ big Apollo Auth refactor is mostly completed also, I should soon be able to override its templates by overriding the new ApolloTemplates case class:

case class ApolloTemplates(
auth: (String, String, Option[Flash]) => Html,
forgotPassword: (String, Option[Flash]) => Html,
resetPassword: (String, Option[String]) => Html
)

object ApolloTemplates {
def defaults: ApolloTemplates = ApolloTemplates(
auth = (csrf, focus, flash) =>
html.authForm(csrf, focus, flash.map(f => (f.cssClass, f.message))),
forgotPassword = (csrf, flash) =>
html.resetRequestForm(csrf, flash.map(f => (f.cssClass, f.message))),
resetPassword = (csrf, error) => html.changePasswordForm(csrf, error)
)
}

object Apollo {
def apply[F[_], U, I, E](
config: ApolloConfig[F],
services: ApolloServices[F, U, I, E]
): Apollo[F, U, I, E] = Apollo(config, ApolloTemplates.defaults, services)
}

I fixed a few bugs also where POSTs to Apollo endpoints would render immediately instead of redirect to GETs on error.

🎉

👀

click my profile photo ;)

Ah, before this becomes a question: yes, I'm using LLMs to work on this project. Apollo, the authentication framework for Http4s I used as the backbone of this application, has been written almost entirely by me personally. It is the result of years of studying functional programming and web application software, e.g. servers, frameworks, and protocols. It has cool, funky type signatures like `OptionT[F, Throwable, Option[Post]]`, and `Kleisli[F], Request[F], Response[F]]`, and I know exactly what problems they help to solve, how they work, and why they're there. However, recently I've been using Claude Opus 4.5. A lot of the code for this microblogging platform in particular was generated by Claude, although the application itself was my idea, and I've made the decisions about architecture and libraries, etc. Claude's a pretty good designer and UI/UX engineer. I've also written a non-trivial amount of its code too: Claude is good, but it still whiffs often enough and I have to intervene.

So, thanks for the help, Claude and Anthropic!

Why are young Americans rejecting the two major political parties?

A hypothesis:

The Republican Party doesn't reflect their values.

The Democratic Party doesn't meaningfully change anything: its preferred tools, supply-side handouts, predictably increase costs, invite regulatory capture and rent-seeking, and eventual political rollback. We find ourselves surviving from crisis to crisis because our ‘fixes’ are expensive, unstable stopgaps rather than durable, structural solutions.