Chosen links

Links - 17th December 2023

Emissions Test-Driven Development

(Opinions differ on whether this a universally sound approach for creating good software. But opinions also differ on whether good software is theoretically achievable by humans, whether there is such a thing as good software at all, and even on whether an empirical definition of “good software” can ever be reached. Be that as it may, unquestionably TDD is a real thing which real software developers practice.)

The birth & death of search engine optimization

But, the ability to just systematically churn out infinite amounts of information about radishes for next to nothing is a boon for content farms. The GPT-3.5 Turbo 16k API that was used to generate that article costs USD$0.0020 per 1000 tokens of output. That article is 2308 characters long and contains 357 words. According to the OpenAI tokenizer, that works out to 478 tokens. With the system prompt and the request of “write about how to make soap with radishes”, this means that producing that one article cost one tenth of a penny.

Now imagine how this would scale. Swap out radishes for other vegetables and make articles for all of them. Swap out soap making for steaming and make articles for all of them. Swap out vegetables for fruit and make articles for all of them. If your ads get you $1 per thousand views, then by definition any time an article gets one view it’s already paid for itself. Two hits and it’s profitable.

The hard parts of talking about open source

“All discussion is constructive”. While the previous two patterns were forms of outright attack on project maintainers, this pattern is more subtle. It is the attitude which ignores the negative externalities of discussion, the way that producing more discussion content can be harmful to the project’s goals. Sometimes it goes so far as to say that discussion containing negative behavioral patterns is still constructive because behind the attacks there might be good ideas.

Evan points out, rightly, that many of our discussion tools are not designed to encourage constructive outcomes: instead, they’re usually designed to encourage engagement by users, regardless of the outcome of that engagement for users (upsetting users is, in fact, a great way to keep them engaged). Evan proposes an alternative design which attempts to guide conversations toward positive outcomes. Setting aside whether or not this design would be good (I have no strong opinion), I believe that the talk would have been better rhetorically if the presentation had concluded in a different way.