• PCBoard v16 (Pre-Alpha Experience)

    From Ozz Nixon@21:1/144 to All on Sun Apr 21 19:12:10 2019
    See www.saltairbbs.com

    PCBoard v16 (currently) is online so people can see how far we are in
    the rewrite. Attempts were made to migrate from MSC to GCC without
    success. Stepping back and looking at the project, and our other
    efforts, the decision was made to port the code to a different language
    and framework. v16 is now written using Modern Pascal, and designed
    using the Modern Pascal Coderunner framework. Modern Pascal is
    available as a command line compiler and interpreter, along with an
    Apache Mod, allowing you to code web scripts. Coderunner is a socket
    server that processes your code. Coderunner is self-threading and
    manages memory allocation per thread. Allowing developers to focus on
    their code, somewhat like a modern DOOR-KIT.

    PCBoard v16 file structures are being revised also. v15 and older were
    limited in scope. For example, having an array in the USERS for
    LastRead means the larger your site the slower and bulkier your USERS
    file was and the memory requirement also increased. With this said, we
    have migrated v16 to using the JAM message base. It has a superior
    design from other message bases, while keeping the flexability
    introduced by PCBoards MSGS extended headers. Currently we have build a
    NNTP (Newsgroup Server) as part of PCBoard v16 Registered Suite. It
    allows the sysop and users to access the message areas using their
    logon credentials, from Desktop and Mobile devices. * It also allowed
    us to seriously stress test the JAMmb engine before swapping MSGS for
    JAM sturctures. JAM also tracks per user per message area the LAST READ
    - reducing the memory requirements that previous PCBoard USERS records introduced.

    PCBoard v16 is being released as Open Source. We are doing this as it
    is a complete rewrite from scratch. NO previous code is used for this
    new design. Opening the rights so we can release as Open Source. Note
    Open Source does not mean we wave the rights to the source in any way.
    PCBoard v16 is (c) Modern Pascal Solutions, LLC. PCBoard v16 is still
    marketed as a commercial product. The source is being offered to help third-party developers produce new PCBoard modifications. We have
    removed the kludge script engine PPE. Instead the whole produce is now
    a Coderunner script. So if, for example, you had written a replacement
    for the prompt... you can do it again replacing doPrompt.inc with your fancy/ANSI version.

    PCBoard v16 uses the built-in features of TStringList to extend
    PCBTEXT. A previous limitation was PCBTEXT allowed up to 60 characters
    per prompt. This meant fancy/ANSI animations or color sequences for
    prompts had to fit into 60 bytes. For some this was impossible, so they
    had to embed PPE links for prompt. In the modem age, the latency was
    not notable, in todays gigabit Internet age, it was noticable. So.
    v16's PCBTEXT is BYTE 1 = FG color (1 to 15) (0=last color or no color
    change), followed by as many characters you want and terminated with
    EOL (Carriage Return and/or Line Feed - depending upon your Operating
    System). This change in itself truly extends the capability of making
    an iCE or ACiD looking BBS... while reducing all of the overhead of PPE
    scripts as prompts. What if you want to replace a prompt with a script
    for even more control? You simply modify the associate *.inc file with
    your requirements. Coderunner uses a JIT (Just In Time) compiler, and
    will merge your code change on the next connection it handles.

    *** What if their is a bug in my new mod? ***

    Simply start Coderunner in a terminal - using a different terminal
    telnet to your BBS - the error will show on the previous terminal. We
    have tried to make sure all error messages include the line number
    (even relative to the *.inc file(s)), and character position on that
    line - with a description of what is wrong with said line. Example:
    * Invalid evaluation at line 133, column 1 in file "/var/www/BBS/pcboard/main.p"

    Usually that means you forgot to put a semicolon at the end of the
    previous line, or you have a stray character/invalid syntax at the
    start of this line.

    *** Uptime/Downtime Schedule ***

    SaltAirBBS.com is linking right to our in-house source code. So, there
    will be periods where you are unable to connect. Or you may be
    disconnected while we rollout a change. We work on the source code 7
    days a week. Once we achieve Beta status, we will move pre-alpha to a
    different port on the servers. This way (like the old modem days) you
    can access the stable release, or the cutting edge release - depending
    where you connect on our servers.

    * IF YOU DO NOT HAVE ACCESS TO A TERMINAL - WWW.EXCHANGEBBS.COM
    DEFAULTS TO THE ALPHA CODE IN A BROWSER *

    --
    .. Ozz Nixon
    ... Author ExchangeBBS (suite)
    .... Since 1983 BBS Developer

    --- ExchangeBBS NNTP Server v3.1/Linux64
    * Origin: nntp://bbs.exchangebbs.com:119/ (21:1/144.0)
  • From apam@21:1/125 to Ozz Nixon on Mon Apr 22 13:29:14 2019
    See www.saltairbbs.com

    I had a look :)

    So is this a continuation of ExchangeBBS? or a new project? I went to exchangebbs.com but it says it's running pcboard 16.

    Are you working on this with others?

    Andrew


    --- MagickaBBS v0.12alpha (Linux/x86_64)
    * Origin: The Fat Sandwich - sandwich.hopto.org:2023 (21:1/125)
  • From Ozz Nixon@21:1/144 to Ozz Nixon on Tue Apr 23 01:28:48 2019
    On 2019-04-21 19:12:10 +0000, Ozz Nixon -> All said:

    How does this compare to speeds others are getting with their tosser?

    A few people have asked, why am I designing PCBoard 16 to run
    interpreted instead of compiled. So, I turned off the Fidonet and
    USENET Tosser mid-morning today. Added a couple variables so I could
    generate the following stats:

    21.09.39.342 * Tossed 824 PKTs, 63271 MSGs, 3 MSGs to Ozz Nixon
    21.09.39.342 * Summary processed 180599194 bytes in 234 seconds.
    21.09.39.342 * Speed 771791 bytes read a sec. 270 msgs a second.
    21.09.39.342 * Speed 459980 bytes written a sec. 107635526 bytes written.

    So in 234 seconds (4 minutes), it was able to open and parse 824 PKT
    files, which is 63,271 messages coming into PCBoard 16.
    That is 180.5MB read, and 107.6MB written (the variance being fields
    that do not need to be stored in the BBS as it is the final destination
    for these messages (SEEN-BY mainly)).
    The hardware was capable of reading 771kb a second, and concurrently
    writing 459kb a second. Averaging 270 messages read per second, and 270 written per second.
    * Now yes, a binary would be even faster - but, these numbers show you
    Modern Pascal can easily outperform Python (2 or 3) or any other script language. And in interpreted mode, I can code all day without having to compile - occasionally stopping to test my changes have not broken
    anything.

    270msgs good? (the averge message size processed in this batch was 2,854
    bytes)

    --- ExchangeBBS NNTP Server v3.1/Linux64
    * Origin: nntp://bbs.exchangebbs.com:119/ (21:1/144.0)