Links, October 31, 2025

Today is the spooky links edition.

§Big-Ass-Data-Broker-Opt-Out-List

It’s scary how long this list is.

§CSS Classes considered harmful

Class names are an archaic system that serves as a poor proxy for your UI primitives, and worse they’re co-opted in awkward ways which results in combinatorial explosion of weird edge cases.

I’ve known more about CSS than I’ve really wanted to for over 20 years now (which is saying a lot, I have a print design background), and I can’t agree more with this author’s take.

CSS classes are scary in that they’re basically a global namespace for opting things into directives that are sometimes complementary and sometimes mutually exclusive, without any real guardrails. Practices for managing these have developed, sure, but they’re like the sort of rules one has for working with anything really dangerous — and we’d be better served by an option with less inherent danger.

The author settles on custom tags (which by spec browsers treat as span provided no components are registered), and html data- attributes and css selectors for styling hooks, resulting in selectors like my-card[data-size=big].

I like this for a number of reasons:

  1. data- attributes and selectors are much easier to search for in most codebases, especially given the connotations most programming languages foist upon the word class.

  2. This attribute method makes it both easier to understand and convenient to enforce style sets that are mutually exclusive. class="card-big card-small" might be dynamically created, and even then in this static example, it takes a trained eye or sophisticated linting process to prevent it from happening. While data-card="big" data-card="small" is still possible, it should be much harder to do this in dynamically generated markup, and in this static example I think it sticks out much more clearly as being wrong.

  3. This method opens up the full power of attribute selectors which allow for much more sophisticated matching patterns than do class names. Using them may bring their own set of problems, but I think those problems are better suited for the tools we have for working with CSS.

As an experiment, I replaced my .sans, .serif and .links-textual and .links-apparent styles on this site with data-font-type and data-link-style attributes, and am pretty happy with how those work. It may be some time before I can dig into the rest of the styles to fully take advantage of this sort of facet-based styling, but I’m keeping this in mind for any new projects I start.

§Hi, It’s Me, Wikipedia, and I Am Ready for Your Apology

McSweeny’s, with how scary our information environment has gotten.

Listen, in some ways, I get it. When I came on the scene in 2001, I probably seemed pretty unsavory compared to the competitors. But that was when academic research happened in libraries and George W. Bush was considered the stupidest president.

§The world is something that we make

In many ways, the choices we make about the world we want to have are quite scary.

The poisonous tumour installed in my brain by a decade of reading about Silicon Valley always thinks ‘this is a business that can never scale’ and it’s like well yes that is the fucking point actually.

§I’m giving up — on open source

It’s also quite scary how we don’t really think about how software is funded:

It may seem to you that open source is great because it’s free to use. Truth is, it certainly is not free. Someone is paying a price for it, and if it’s not the user, it’s the maintainer.

§Parents Fell in Love With Alpha School’s Promise. Then They Wanted Out

(Wired article, archive dot org link)

Trying to get your child educated in this day and age is incredibly scary.

For the first few days, Barrios says, her daughter ate her snacks. Then one afternoon she returned with them still in her backpack, uneaten. Barrios, alarmed, asked if Alpha was providing different food instead. No, the 9-year-old answered. She told her mom that staff at the school said she didn’t earn her snacks and wouldn’t get them until she met her learning metrics.

§We should all be Luddites

It’s kinda scary how well anti-worker propaganda has worked.

It’s time to rehabilitate the Luddites as guides for the present. They understood that the future is not written by the machine, but by those who wield it. To be a Luddite today is to refuse the fatalism of techno-inevitability and to demand that technology serve the many, not just the few. It is to assert that questions of labor, agency, and justice must come before speed, efficiency, and scale.