💾 Archived View for gem.hack.org › mc › log › bbs.gmi captured on 2024-05-10 at 10:53:10. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-07-16)
-=-=-=-=-=-=-
Time-stamp: <2022-05-04 08:55:10 MEST>
Location: Same kitchen table as last night.
Visual: Still messy, now with breakfast stuff as well.
State: Sleepy. In my dressing gown.
I'm slowly writing a BBS. Last time I did that was more than 30 years ago. Back then I didn't even have a database engine so I when I found a book at the local library that described B-trees I implemented that as the database. It's much easier this time.
The BBS is in the KOM tradition, which means a sort of command-based BBS that isn't as heavy on the ANSI graphics like some of the menu systems back in the day. The KOM family of BBS was more focused on discussion than file sharing.
I'm writing it in Go and using Postgres as the database. Postgres and SQL does all the heavy lifting, really.
At first I was going to write as a monolith: the user interface and the database access in one. Then I started thinking about editing the posts... I didn't want to implement my own editor, at least not right away, so I would have to call out to start an external editor. This probably means the user would execute some other program on my box as the BBS user and maybe even start other programs. Can't have that. So I redesigned the BBS into a client/server thing. This might be put some users off, but if they have a real user on my shellbox, which means I trust them to some degree, they can have the ordinary "telnet BBS experience".
I've been thinking about the BBS as an isolated node but reading about NNCP [1] got me thinking. Perhaps I'll make it possible to distribute the conferences as NNCP multicast areas? That would be kind of neat.
But first I want a real KOM, dammit!