Here is the latest compilation of information we have discussed including in the new BBSINFO DataFile (whatever form it takes)..
BBSURI1 // FULL BBS URL W/PORT (telnet://bbs.domain.tld:23)
BBSURI2 // FULL BBS URL W/PORT (rlogin://bbs.domain.tld:513)
BBSURI3 // FULL BBS URL W/PORT (www://www.bbs.domain.tld:80)
BBSURI4 // FULL BBS URL W/PORT (ssh://bbs.domain.tld:22)
How 'bout something to identify the different othernets the bbs would carry?
I don't think this should be limited either, using any non ancient
format could simply list an array of urls, and a bbs could have 1 - how ever many.
Andrew
I don't think this should be limited either, using any non ancient
format could simply list an array of urls, and a bbs could have 1 - how ever many.
On 05 Jun 2020, apam said the following...
I don't think this should be limited either, using any non ancient format could simply list an array of urls, and a bbs could have 1 - h ever many.
So instead of having BBSURI1-BBSURI4 we could just have one BBSURI and perhaps format it like:
telnet://1.2.3.4:23;ssh://1.2.3.4:22;rlogin://1.2.3.4:513 - ?
Zone // BBS ZONE NUMBER (224)
Net // BBS NET NUMBER (10)
Node // BBS NODE NUMBER (0)
BbsName // BBS NAME (My New BBS)
City // BBS Location (City)
State // BBS Location (State)
Country // BBS Location (Country)
Language // BBS Language (ENG, SPN, FRC, GMN, etc) SysopName // SYSOP BBSURI1 // FULL BBS URL W/PORT (telnet://bbs.domain.tld:23)
BBSURI2... so on...
--- ENiGMA 1/2 v0.0.12-beta (linux; x64; 12.13.1)NuSkooler
Xibalba BBS @ xibalba.l33t.codes / 44510(telnet) 44511(ssh)
ENiGMA 1/2 BBS WHQ | Phenom | 67 | iMPURE | ACiDic
Consider the following JSON (could be: XML (ew!!!), TOML, whatever):
On 05 Jun 2020 at 06:26p, NuSkooler pondered and said...
Consider the following JSON (could be: XML (ew!!!), TOML,
whatever):
I think JSON is a good idea. Perhaps there may be other formats
some may think better?? Dunno, but yeah JSON seemed to me (as a
n00b) to be a way of sharing extensible data in a day that software
devs could find it useful.
I agree with JSON being a good idea :) YAML might also be a good choice due to it's readability and also that it supports comments.
Have a look at: https://www.json2yaml.com/ to compare the two formats
Here is the latest compilation of information we have discussed
including in the new BBSINFO DataFile (whatever form it takes). I am posting this to further the conversation about the standard:
BBSINFO:
Zone // BBS ZONE NUMBER (224)
Net // BBS NET NUMBER (10)
Node // BBS NODE NUMBER (0)
BbsName // BBS NAME (My New BBS)
City // BBS Location (City)
State // BBS Location (State)
Country // BBS Location (Country)
Language // BBS Language (ENG, SPN, FRC, GMN, etc)
SysopName // SYSOP NAME (Johnny SysOp)
Phone // BBS PHONE NUMBER (888-555-1212)
BBSURI1 // FULL BBS URL W/PORT (telnet://bbs.domain.tld:23)
BBSURI2 // FULL BBS URL W/PORT (rlogin://bbs.domain.tld:513)
BBSURI3 // FULL BBS URL W/PORT (www://www.bbs.domain.tld:80)
BBSURI4 // FULL BBS URL W/PORT (ssh://bbs.domain.tld:22)
Nodes // TOTAL # OF NODES SUPPORTED (DIALUP & TELNET)
Callers // AVERAGE DAILY CALLERS TO THIS BBS (25)
Online // BBS Operating Hours-GMT (0000-0000 or 0700-1800)
Software // BBS SOFTWARE (Mystic v1.12 a45)
Delete // FLAG FOR DELETION BY DOWNSTREAM SYSTEMS
Verified // DATE INFO WAS VERIFIED (20200605)
LognType // LOGIN TYPE (1=realname/2=handle/3=choic )
cType // BBS TYPE (1=dialup/2=telnet/3=both
I think JSON is a good idea. Perhaps there may be other formats some may think better?? Dunno, but yeah JSON seemed to me (as a n00b) to be a way of sharing extensible data in a day that software devs could find it useful.
On 04 Jun 2020 at 11:38p, stizzed pondered and said...
Here is the latest compilation of information we have discussed including in the new BBSINFO DataFile (whatever form it takes). I am posting this to further the conversation about the standard:
BBSINFO:
Zone // BBS ZONE NUMBER (224)
Net // BBS NET NUMBER (10)
Node // BBS NODE NUMBER (0)
BbsName // BBS NAME (My New BBS)
City // BBS Location (City)
State // BBS Location (State)
Country // BBS Location (Country)
Language // BBS Language (ENG, SPN, FRC, GMN, etc)
SysopName // SYSOP NAME (Johnny SysOp)
Phone // BBS PHONE NUMBER (888-555-1212)
BBSURI1 // FULL BBS URL W/PORT (telnet://bbs.domain.tld:23)
BBSURI2 // FULL BBS URL W/PORT (rlogin://bbs.domain.tld:513)
BBSURI3 // FULL BBS URL W/PORT (www://www.bbs.domain.tld:80)
BBSURI4 // FULL BBS URL W/PORT (ssh://bbs.domain.tld:22)
Nodes // TOTAL # OF NODES SUPPORTED (DIALUP & TELNET)
Callers // AVERAGE DAILY CALLERS TO THIS BBS (25)
Online // BBS Operating Hours-GMT (0000-0000 or 0700-1800)
Software // BBS SOFTWARE (Mystic v1.12 a45)
Delete // FLAG FOR DELETION BY DOWNSTREAM SYSTEMS
Verified // DATE INFO WAS VERIFIED (20200605)
LognType // LOGIN TYPE (1=realname/2=handle/3=choic )
cType // BBS TYPE (1=dialup/2=telnet/3=both
This is unstructured and basically a linear bag of fields;
but almost all structured formats can let you group things
together in more semantically meaningful ways. Consider
the following, in a sort of pseudo-EBNF style grammar:
Let a token be followed by a `?` be considered optional:
that is, zero or one of the token. Let tokens followed
by a `*` be considered repeated 0 or more times. Let
tokens followed by a `+` denote 1 or more. Let
`token1|token2` alternation, or either of those tokens.
ftnAddress := Zone? Net Node Point? Domain?
ftnMember := NetName ftnAddress+
Location := City State Country
Service := Name Host Port?
LoginType := (RealName|Handle|Either)
CharEncoding := (UTF-8|ASCII|ISOLATIN1|CP437)
BBSOtherData := NumNodes? AvgCallers? AvailTimes? LoginType?
BBS := Name SysOp Location? Language* ftnMember* (Phone|Service)+
BBSOtherData? LastVerifiedTime CharEncoding*
I wouldn't bake a "deleted" flag into the data format.
Rather, if one wants to delete, that should be part of
a "delete this entry" sort of thing.
Note that this will map well to something like JSON or
whatever, or even DNS. An example for my system might
be:
"FatDragon": {
"name": "The Fat Dragon",
"sysop": "Dan Cross",
"location": { "city": "New York City" },
"language": [ "English" ],
"charencoding": [ "ASCII", "UTF-8" ],
"ftn": [
{
"netname": "fsxnet",
"ftnaddress": {
"zone": 21, "net": 1, "node": 198, "domain": "fsxnet"
}
}
],
"service": [
{ "name": "ssh", "host": "fat-dragon.org", "port": 22 },
{ "name": "http", "host": "fat-dragon.org", "port": 80 },
{ "name": "binkp", "host": "trunk.fat-dragon.org", "port": 24554
} ],
"otherdata": { "numnodes": 1024 },
"lastverified": "2020-06-06T13:13:13Z"
}
Yes, yes it is. I was initially chastized for suggesting any kind of format. It is what it is though... :)
the following, in a sort of pseudo-EBNF style grammar:
Let a token be followed by a `?` be considered optional:
that is, zero or one of the token. Let tokens followed
by a `*` be considered repeated 0 or more times. Let
tokens followed by a `+` denote 1 or more. Let
`token1|token2` alternation, or either of those tokens.
ftnAddress := Zone? Net Node Point? Domain?
ftnMember := NetName ftnAddress+
Location := City State Country
Service := Name Host Port?
LoginType := (RealName|Handle|Either)
CharEncoding := (UTF-8|ASCII|ISOLATIN1|CP437)
BBSOtherData := NumNodes? AvgCallers? AvailTimes? LoginType?
BBS := Name SysOp Location? Language* ftnMember* (Phone|Service)+
BBSOtherData? LastVerifiedTime CharEncoding*
YES! And flat...
I wouldn't bake a "deleted" flag into the data format.
Rather, if one wants to delete, that should be part of
a "delete this entry" sort of thing.
Certainly, depending upon how the 'list' is maintained and distributed. As you may know, this has not been determined yet.
Perhaps I'm looking at this from the wrong end? Should we be deciding upon a format now, or the information we want to capture? Or both?
Fundamentally, you want to describe the data, but in a
structured and semantically meaningful way. The exact
serialization of that data into any particular format
is a secondary consideration.
That said, I would strongly recommend JSON. It's
lightweight, and it's available pretty much everywhere.
It does basically everything you need and can be
upwards compatible if you add things to the schema.
I would strongly recommend _against_ an ersatz format,
or an unstructured line-based thing a la the current
nodelist format.
ftnAddress := Zone? Net Node Point? Domain?
ftnMember := NetName ftnAddress+
Location := City State Country
Service := Name Host Port?
LoginType := (RealName|Handle|Either)
CharEncoding := (UTF-8|ASCII|ISOLATIN1|CP437)
BBSOtherData := NumNodes? AvgCallers? AvailTimes? LoginType?
BBS := Name SysOp Location? Language* ftnMember* (Phone|Service)
BBSOtherData? LastVerifiedTime CharEncoding*
YES! And flat...
Not flat, no; notice how the different data nest
within each other. The point is that this describes
the _structure_ of the data, but is independent of
how one _formats_ that structure.
I've found myself falling down the rabbit hole of wanting to look at how the data could / should be most usefully formatted first rather (e.g. JSON) rather than focus on what data would be good to allow for and it's structure and semantics. This is not an area of experience I've had much to do with. But I do take the point about trying to nail down the what before you look at the how. I hope I have understood this difference correctly.
What I'm trying to grapple with is how do we know when we think we have captured enough possible data fields of interest to then be able to move on to creating ways to store, share and modify it?
I'm also not clear if creating these data fields is a one shot deal or will what we use to store it all in and/or build other things from using the data, allow for new fields to be added e.g. let's say we 6 months later wanted to add a co-sysop field just as an example..
compatible way. That is, adding a field shouldn't break
existing software. Formats like JSON are great for
applications like that since each datum is labeled with
a key; things like CSV or other unstructured line-based
formats are terrible since inserting a field between
existing fields breaks all existing software.
Sysop: | altere |
---|---|
Location: | Houston, TX |
Users: | 66 |
Nodes: | 4 (0 / 4) |
Uptime: | 10:46:01 |
Calls: | 728 |
Calls today: | 1 |
Files: | 7,667 |
Messages: | 295,536 |