A BBS-hálózat hackerolvasóterme: minden RFC, azok a dokumentumok, amelyekből az internet áll, az 1969-es RFC 1-től a legújabbig, az előttük írt Internet Experiment Note-ok és a Jargon File. Keresés szám, sorozat, a cím szavai vagy a teljes szöveg szerint, ugrás a régi és az új RFC között, hibajegyzék, olvasás úgy, ahogy kiadták, vagy Commodore 64-re tördelve.
Élőben:
teletypegames.org:2334, böngészőben a bbsweben, és a TTG Gate BBS-en át
Ruby-alkalmazás a rubbs gemre építve, mint a Scriptorium BBS és a Starbase BBS.
Egy porton két arca van:
A hívás a rubbs BBS::Terminal kérdésével indul (a RETURN elfogadja a tippet, az 1 a modern, a 2 a C64-es arc), utána jön a TTG-logó. A TTG Gate BBS-en át egyik sem jön kétszer.
| Mi | Forrás |
|---|---|
| Az index: minden RFC címe, szerzői, dátuma, oldalszáma, státusza, streamje, kulcsszavai, kivonata, mit avultat el és mit frissít, az STD-, BCP- és FYI-sorozatok, a ki nem adott számok | az RFC Editor rfc-index.xml-je, kb. 14 MB, naponta újraolvasva |
| A szövegek | az RFC Editor rfcs-text-only rsync-modulja, naponta tükrözve (kb. 540 MB); ami még nincs meg, az első olvasáskor jön le |
| A hibajegyzék | errata.json, naponta az indexszel |
| Az IEN-ek (1977-1982) | az RFC Editor ien/ mappája: az ien-index.txt és a szövegek (209-ből 134; a többi csak szkennelt) |
| A Jargon File 4.4.7 | a boarddal együtt jön (config/jargon/jarg447.txt), közkincs |
Kb. 9850 RFC. Az index SQLite-ba kerül, a címek, szerzők, kulcsszavak és kivonatok teljes szöveges indexével; egy import kb. tizenöt másodperc, és az új adatbázist cseréli be, így a hívók közben is olvasnak. A tükör szövegei (data/rfc/rfcN.txt, az IEN-ek ienN.txt) egy második, tartalom nélküli teljes szöveges indexbe kerülnek (kb. 135 MB) minden RFC minden szavával; a napi szinkron csak a változást indexeli. Az IEN-ek ugyanabban az indexben negatív számon vannak (az IEN 137 a -137).
Az RFC-k az IETF és a szerzőik munkái; a jogok az IETF Trusté és a megnevezett szerzőké. Minden adatlap feltünteti: „RFC N, IETF”, és az RFC Editorra hivatkozik, QR-kódként is (rubbs BBS::QR).
A könyvtár:
Keresés: szám (854, rfc 2119), sorozat (std 7, bcp 14), vagy szavak a címből, a szerzőkből, a kulcsszavakból és a kivonatból, szókezdetként (telnet window). A status:standard (proposed, draft, bcp, info, experimental, historic) és a year:1983 szűkít. A soha ki nem adott számról ezt mondja; az ien 137 egy IEN-t talál.
Keresés a szövegben (F9, C64-en 6): bármely szó bármely RFC és IEN szövegében, a legjobb találat elöl, mindegyiknél az első sor, amelyben a szó előfordul.
Az RFC adatlapja mutatja a szerzőket, a dátumot, az oldalszámot, a státuszt és a sorozatot, piros sort, ha egy újabb RFC leváltotta („Obsoleted by: RFC 9293”), az általa elavultatott és frissített, illetve az őt frissítő RFC-ket, és a kivonatot. A Links ezeket listázza, bármelyik megnyitható. Az Errata az RFC Editor hibajegyzékét mutatja: a szöveg, ahogy megjelent, és ahogy helyesen szólna, a megerősítettek elöl.
Az olvasóban a szövegben megnevezett RFC-k színesek; a Contents (Alt-O, C64-en t) a fejezetcímeket listázza ugráshoz, a References (Alt-R, f) a megnevezett RFC-ket.
Modern terminálon:
| Billentyű | Művelet |
|---|---|
| F2 | Classics |
| F3 | Keresés |
| F4 | Polcok |
| F7 | Legolvasottabbak |
| F8 | Legújabbak |
| Enter | Az RFC olvasása |
| F9 | Keresés minden RFC szövegében |
| Alt-L / Alt-E / Alt-Q | A kapcsolatai / a hibajegyzéke / a QR-kódja |
| Alt-O / Alt-R | Az olvasóban: tartalomjegyzék / a megnevezett RFC-k |
| PgUp/PgDn, Home/End | Mozgás az olvasóban; alatta a sor: „RFC 793 · page 3/91 · line 140/5247” |
| F10 | Menü |
| Alt-X | Kilépés |
Commodore 64-en a főmenü: 1 Classics, 2 Telnet, 3 April 1st, 4 minden polc, 5 keresés, 6 keresés a szövegben, J a Jargon File, 7 legolvasottabbak, A névjegy, Q kilépés. Az adatlap alatt: R olvasás, L kapcsolatok, E hibajegyzék, C QR-kód. Az olvasóban a RETURN lapoz, a B egyet vissza, a T tartalomjegyzék, az F a megnevezett RFC-k, a Q vissza az adatlaphoz.
A Jargon File 4.4.7 (2003. dec. 29.), a hackerszleng szótára, közkincs, és a boarddal együtt jön: 2308 szócikk és a 17 további rész (a bevezető, a Hacker Folklore a Story of Mellel és az MI-koanokkal, J. Random Hacker portréja, a bibliográfia). A Jargon menü (C64-en J): a nap szava (egy napon mindenkinek ugyanaz), a lexikon A-Z, keresés (a pontos címszó elöl), véletlen szócikk, és a fejezetek és a folklór olvasásra. A szócikk hivatkozásai színesek; a Links (Alt-L, L) listázza őket. Minden szócikk alján: „Jargon File 4.4.7 (public domain)”.
Így tördel a C64-es arc: a próza összeáll és újratördelődik (a felsorolás függő behúzást kap); az ábra, a táblázat és a cím megtartja a sorait, a túl hosszú sor a hasábjai közötti résnél törik; a képernyőnél szélesebb keretes ábra panelekben jön („(columns 39-72)”); a pontozott vezetősorok rövidülnek; a lapok fej- és lábléce elmarad, a laptörés kettévágta bekezdés újra összeáll. Az ékezetes betűk és a C64-ről hiányzó jelek ASCII-vé válnak.
| Változó | Alapérték | |
|---|---|---|
HACKERCAVE_BBS_SITE |
https://www.rfc-editor.org |
ahonnan az index és a szövegek jönnek |
HACKERCAVE_BBS_INDEX_TTL |
1 |
ennyi nap után importálja újra az indexet |
HACKERCAVE_BBS_SHELVES |
config/shelves.yml |
a board saját polcai |
HACKERCAVE_BBS_DB |
data/hackercave.sqlite3 |
az olvasások (a Most read lista) |
HACKERCAVE_BBS_INDEX_DB |
data/index.sqlite3 |
az index (gyorsítótár, a letöltésből épül újra) |
HACKERCAVE_BBS_TEXTS |
data/rfc |
a szövegek, ahogy kiadták őket (a tükör) |
HACKERCAVE_BBS_MIRROR |
on |
off: se tükör, se szöveges keresés |
HACKERCAVE_BBS_MIRROR_TTL |
1 |
két szinkron között eltelt napok |
HACKERCAVE_BBS_FULLTEXT_DB |
data/fulltext.sqlite3 |
a szövegek teljes szöveges indexe |
HACKERCAVE_BBS_JARGON_DB |
data/jargon.sqlite3 |
a Jargon File, a config/jargon-ból építve |
A boardnak nincsenek titkai.
A masterre pusholva a Woodpecker élesíti (RuboCop, tesztek, compose-ellenőrzés, ci-deploy hackercave-bbs); a konténer hackercave-bbs, a /srv/stacks/hackercave-bbs alatt, a data/ megmarad a deployok között (a tükörrel kb. 700 MB). A Ruby kb. 65 MB; a konténer 256 MB-ot kap, mert a cgroup a napi szinkron lap-gyorsítótárát is beszámítja.
A kód a házi rétegezést követi: a lib/domain (RfcModel, EntryModel, ShelfModel, DocumentModel; az IndexParser és az IndexBuilder az rfc-index.xml-hez, az index-, RFC Editor-, szöveg-, polc- és olvasás-repositoryk; LibraryService, ReadingService, ReflowService; a HackerCaveBBS kompozíciós gyökér) semmit nem tud a telnetről, a lib/ui pedig a UI::Modern és a UI::Petscii. Továbbá: ImportService (index, hibajegyzék, IEN-ek), MirrorService (rsync + FulltextRepository), JargonService (JargonParser, JargonRepository). A terv a meghozott döntésekkel a TTG workspace docs/HACKERCAVE_BBS.md fájlja.