Date: Sunday January 12th, 2025
Time: 07:37:22 PM MST
From: @vga256
Groups: tomo.dev
Subject: ay ay, answering full impulse
Time: 07:37:22 PM MST
From: @vga256
Groups: tomo.dev
Subject: ay ay, answering full impulse
> after nearly an 18-month pause on development, tomoBBS has been back to full-time development for the past week. big changes:
+ the default skin has been mostly implemented, and now matches the cozy Datatrain Amber monochromatic styling you see on tomo's site.
+ rewriting any ancient front-end html generation code that relied on very old html standards like hardcoded tables, so the site properly displays on almost any kind of device, from 640x480 monitors to tablets and mobile phones. this is an old holdover from using old RSLight code. i still have tons of old code to strip out and replace.
+ defining standard nomenclature for tomoBBS:
       > a tomo is a specific discussion group or forum, e.g. /tomonet/pets/dogs/spaniels
       > a tomo can be public tomo or a private tomo. public tomos can exchange posts with other BBSes; private tomos are located only on a particular tomoBBS.
       > tomoBBS instances can run in solo mode or sharded mode:
       > a shard is a server or "peer" that connects to other shards, and exchange tomo posts with one another. all shards share identical public tomos and posts.
       > solo BBSes do not network with other shards, so they cannot exchange posts.
       > tomoNet is a specific network of tomo shards that will have its own rules about content and moderation.
       > tomo.city is the first tomoNet shard. it will run in solo mode for the first few months while we iron out bugs and improve the user experience. when tomoBBS is in good enough shape, i'll open tomoNet up to the public for new shards/peers.
+ homepages for each tomo have been implemented. now you can go to /tomonet/pets/cats/voids/home and you'll see a wiki-like homepage for the tomo.
+ i added homepages because they remind me a bit of MySpace, and allow moderators to personalize each tomo to their liking. reddit makes good use of these.
? what I haven't figured out yet is how to deal with syncing homepages across the network. i don't want to run into sync/conflict issues by trying to have each shard exchange homepage data. that would overly complicate the protocol. right now, i'm leaning toward having one shard containing the homepage, and all other shards link out to the homepage. i.e. tomo.city carries the homepage for tomonet/animals/pets/cats/tabby, but tomo.andrewsplace.com carries the homepage for /tomonet/animals/pets/dogs/terrier. each tomoBBS just exchanges links to each page with one another when they sync, instead of exchanging all homepage data.
+ homepages can be written in raw html, or use any markup language that the shard supports
+ added plugin support for markup languages (written in php): you add a markup language plugin to the configuration, and homepages can be interpreted using that language.
! a conceptual change to tomos:
       > internally, because tomoBBS is NNTP at its heart, all tomos are stored as standard USENET-style newsgroups like animals.pets.cats.tabby. this ensures 100% backwards-compatibility with NNTP servers and clients.
       > externally, on the web interface, tomos are displayed in this format: /tomonet/animals/pets/cats/tabby
       > there are two important aspects of the external display:
       ! /tomonet/animals/pets/cats/tabby shows which network the tomo exists on
       ! /tomonet/animals/pets/cats/tabby is hierarchical in nature.
       > if you visit /animals/pets/ it will show you a list of all tomos and posts that exist below it, like dogs and cats and dolphins and reptiles.
       > similarly, going to /animals/pets/amphibians/ will show you only tomos and posts related to amphibians.
? all message deletion is done locally for the time being, if only because "Post Nuking" or NNTP CANCEL is not implemented in RSLight. at some point, i'll have to figure out how to implement real NNTP message cancels, so post cancellations can happen across the network.
.............................
+ the default skin has been mostly implemented, and now matches the cozy Datatrain Amber monochromatic styling you see on tomo's site.
+ rewriting any ancient front-end html generation code that relied on very old html standards like hardcoded tables, so the site properly displays on almost any kind of device, from 640x480 monitors to tablets and mobile phones. this is an old holdover from using old RSLight code. i still have tons of old code to strip out and replace.
+ defining standard nomenclature for tomoBBS:
       > a tomo is a specific discussion group or forum, e.g. /tomonet/pets/dogs/spaniels
       > a tomo can be public tomo or a private tomo. public tomos can exchange posts with other BBSes; private tomos are located only on a particular tomoBBS.
       > tomoBBS instances can run in solo mode or sharded mode:
       > a shard is a server or "peer" that connects to other shards, and exchange tomo posts with one another. all shards share identical public tomos and posts.
       > solo BBSes do not network with other shards, so they cannot exchange posts.
       > tomoNet is a specific network of tomo shards that will have its own rules about content and moderation.
       > tomo.city is the first tomoNet shard. it will run in solo mode for the first few months while we iron out bugs and improve the user experience. when tomoBBS is in good enough shape, i'll open tomoNet up to the public for new shards/peers.
+ homepages for each tomo have been implemented. now you can go to /tomonet/pets/cats/voids/home and you'll see a wiki-like homepage for the tomo.
+ i added homepages because they remind me a bit of MySpace, and allow moderators to personalize each tomo to their liking. reddit makes good use of these.
? what I haven't figured out yet is how to deal with syncing homepages across the network. i don't want to run into sync/conflict issues by trying to have each shard exchange homepage data. that would overly complicate the protocol. right now, i'm leaning toward having one shard containing the homepage, and all other shards link out to the homepage. i.e. tomo.city carries the homepage for tomonet/animals/pets/cats/tabby, but tomo.andrewsplace.com carries the homepage for /tomonet/animals/pets/dogs/terrier. each tomoBBS just exchanges links to each page with one another when they sync, instead of exchanging all homepage data.
+ homepages can be written in raw html, or use any markup language that the shard supports
+ added plugin support for markup languages (written in php): you add a markup language plugin to the configuration, and homepages can be interpreted using that language.
! a conceptual change to tomos:
       > internally, because tomoBBS is NNTP at its heart, all tomos are stored as standard USENET-style newsgroups like animals.pets.cats.tabby. this ensures 100% backwards-compatibility with NNTP servers and clients.
       > externally, on the web interface, tomos are displayed in this format: /tomonet/animals/pets/cats/tabby
       > there are two important aspects of the external display:
       ! /tomonet/animals/pets/cats/tabby shows which network the tomo exists on
       ! /tomonet/animals/pets/cats/tabby is hierarchical in nature.
       > if you visit /animals/pets/ it will show you a list of all tomos and posts that exist below it, like dogs and cats and dolphins and reptiles.
       > similarly, going to /animals/pets/amphibians/ will show you only tomos and posts related to amphibians.
? all message deletion is done locally for the time being, if only because "Post Nuking" or NNTP CANCEL is not implemented in RSLight. at some point, i'll have to figure out how to implement real NNTP message cancels, so post cancellations can happen across the network.