1. 13

  2. 5

    I did a Lobsters one, in which I learned:

    • I shut down the public instance because I’d need to redo the schema. One of those things you learn by implementing. Perhaps I’ll also switch from Mnesia to Pg.
    • NNTP as a protocol sucks. Beyond the usenet grognards getting overrun by spam and piracy, and it being a pain in the ass to get to, the clients all suck because of the protocol. Ironically, the least grognard clients of the time I tested (like Outlook Express) were better than the Usenet traditionalists. (There’s a reason it all ended up in the Unix Haters’ book.)
    1. 1

      Very cool! (Elixir too! nice)

      because I’d need to redo the schema

      Did you need the schema? Can’t you just translate the API into NNTP?

      the clients all suck because of the protocol

      Yeah it’s terrible. That’s why I use it with an email client otherwise it’s not remotely useful.

      1. 1

        I needed to map the object ID to an incremental count for NNTP, because the protocol heavily assumes that. (You could cheese it, but a client can also be relying on those assumptions.) You might as well cache from that, since I also don’t wanna be too hard on the site. However, I cached a transformed representation, which was kinda inflexible if I wanted to add more stuff.

        1. 1

          You can (stable) sort both stories and comments together on an immutable unique key like (creation_date, user, title/text) and compute it on startup; that way it can remain the same across runs/processes and then keep an in-RAM cache.

          1. 1

            The problem is if they aren’t consistent between runs, then it massively confuses the client because they retain a message-ID/nntp-ID mapping.

      2. 1

        I was a fan of knode, the KDE usenet client around 20 years ago. Then for some reason I thought I had to learn slrn, but I never really got used to it until I gave up on Usenet.

      3. 2

        Very cool! It would be super cool if you could post things.

        1. 2

          I’m writing an NNTP server library in python and plan to implement auth (it’s read-only for now). I will make a reddit bridge too, seems they have a well documented API.

          EDIT: Now that I think of it, you don’t need NNTP auth if you run the bridge locally.