DATE
Mirrored from my phlog. Source URI: see appendix.

I wrote a tiny open source 4-ch.net viewer that runs over Gopher.

The interesting part is the format.

It uses my gopher applet style: a README that is also a literate Haskell script. You run it directly:

./4_ch.md

No build system. No framework. Just runghc.

Writing it this way felt like a strange inversion of TDD. Instead of tests, the README comes first. The code exists to obey the explanation.

“README-driven design.”

This works especially well for:

  • small scripts
  • teaching Haskell
  • self-documenting infrastructure

It breaks down for large systems. That is a feature.

The applet plugs straight into Venusia, speaks RFC 1436 natively, and keeps dependencies close to zero.

A 2000s textboard, viewed like its the 90s, implemented like a literate essay.

Live here: gopher://gopher.someodd.zip:70/1/gateway/4_ch

Source: https://github.com/someodd/small-gopher-applets/blob/master/4_ch.md

Original content in gopherspace: gopher://gopher.someodd.zip:70/0/phlog/4_ch.gopher.txt